Blame view

lib/pages/module/widgets/module_item_widget.dart 2.68 KB
60e47f7c   liangchengyou   feat:课程选择功能
1
2
  import 'package:flutter/material.dart';
  import 'package:flutter_screenutil/flutter_screenutil.dart';
8988aa69   liangchengyou   feat:首页+课程列表数据获取
3
  import 'package:wow_english/common/extension/string_extension.dart';
6f617434   liangchengyou   feat:磨耳朵/视频跟读列表页接口调整
4
  import 'package:wow_english/common/widgets/ow_image_widget.dart';
8988aa69   liangchengyou   feat:首页+课程列表数据获取
5
  import 'package:wow_english/models/course_module_entity.dart';
60e47f7c   liangchengyou   feat:课程选择功能
6
  
2187c85f   吴启风   feat:课程结构调整
7
  import '../../section/courese_module_model.dart';
68dd7ba8   liangchengyou   feat:首页主题颜色+已知问题修改
8
  
e620143b   吴启风   feat:单元&课程解锁状态蒙层ui
9
  ///阶段(模块)item布局
2187c85f   吴启风   feat:课程结构调整
10
11
  class ModuleItemWidget extends StatelessWidget {
    const ModuleItemWidget({super.key, required this.isSelected, this.model, this.onClickEvent});
60e47f7c   liangchengyou   feat:课程选择功能
12
13
    ///是否被选中
    final bool isSelected;
8988aa69   liangchengyou   feat:首页+课程列表数据获取
14
15
    final CourseModuleEntity? model;
    final Function()? onClickEvent;
60e47f7c   liangchengyou   feat:课程选择功能
16
17
18
  
    @override
    Widget build(BuildContext context) {
8988aa69   liangchengyou   feat:首页+课程列表数据获取
19
20
21
22
23
24
25
26
27
      return GestureDetector(
        onTap: () {
          if (!isSelected) {
            return;
          }
          onClickEvent?.call();
        },
        child: isSelected?_selectWidget():_unSelectWidget(),
      );
60e47f7c   liangchengyou   feat:课程选择功能
28
29
30
31
    }
  
    Widget _unSelectWidget() {
      return Container(
49787541   liangchengyou   feat:添加ios快速打包脚本
32
        padding: const EdgeInsets.all(20),
8988aa69   liangchengyou   feat:首页+课程列表数据获取
33
        decoration: BoxDecoration(
60e47f7c   liangchengyou   feat:课程选择功能
34
            image: DecorationImage(
8988aa69   liangchengyou   feat:首页+课程列表数据获取
35
                image: AssetImage('gendubeij'.assetPng)
60e47f7c   liangchengyou   feat:课程选择功能
36
37
            )
        ),
6f617434   liangchengyou   feat:磨耳朵/视频跟读列表页接口调整
38
39
        child: OwImageWidget(
          name: model?.picUrl??'',
8988aa69   liangchengyou   feat:首页+课程列表数据获取
40
        ),
60e47f7c   liangchengyou   feat:课程选择功能
41
42
43
44
45
46
47
      );
    }
  
    Widget _selectWidget() {
      return Container(
        padding: const EdgeInsets.all(10),
        decoration: BoxDecoration(
6f617434   liangchengyou   feat:磨耳朵/视频跟读列表页接口调整
48
49
50
51
52
53
            image: DecorationImage(
                image: AssetImage(
                    'gendubeij'.assetPng,
                ),
              fit: BoxFit.fill
            ),
60e47f7c   liangchengyou   feat:课程选择功能
54
55
56
57
58
        ),
        child:  Column(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            Expanded(
6f617434   liangchengyou   feat:磨耳朵/视频跟读列表页接口调整
59
60
              child: OwImageWidget(
                name: model?.picUrl??'',
60e47f7c   liangchengyou   feat:课程选择功能
61
62
63
64
              ),
            ),
            10.verticalSpace,
            Container(
6f617434   liangchengyou   feat:磨耳朵/视频跟读列表页接口调整
65
              decoration: BoxDecoration(
68dd7ba8   liangchengyou   feat:首页主题颜色+已知问题修改
66
                color: CourseModuleModel(model?.code??'Phase-1').color,
6f617434   liangchengyou   feat:磨耳朵/视频跟读列表页接口调整
67
68
69
70
71
72
                borderRadius: BorderRadius.circular(6.r),
                border: Border.all(
                  color: const Color(0xFF333333),
                  width: 1.0
                )
              ),
8988aa69   liangchengyou   feat:首页+课程列表数据获取
73
74
              padding: EdgeInsets.symmetric(horizontal: 10.w),
              child: Column(
60e47f7c   liangchengyou   feat:课程选择功能
75
                children: [
6f617434   liangchengyou   feat:磨耳朵/视频跟读列表页接口调整
76
77
78
79
80
81
82
                  Text(
                    model?.name??'',
                    style: TextStyle(
                        color: Colors.white,
                        fontSize: 12.sp
                    ),
                  ),
8988aa69   liangchengyou   feat:首页+课程列表数据获取
83
84
85
                  Text(
                    model?.des??'',
                    maxLines: 1,
6f617434   liangchengyou   feat:磨耳朵/视频跟读列表页接口调整
86
87
88
89
                    style: TextStyle(
                        color: Colors.white,
                        fontSize: 12.sp
                    ),
8988aa69   liangchengyou   feat:首页+课程列表数据获取
90
                  )
60e47f7c   liangchengyou   feat:课程选择功能
91
92
93
94
95
96
97
98
                ],
              ),
            )
          ],
        ),
      );
    }
  }