Blame view

lib/pages/unit/view.dart 3.38 KB
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
1
2
3
4
  import 'package:flutter/material.dart';
  import 'package:flutter_bloc/flutter_bloc.dart';
  import 'package:flutter_screenutil/flutter_screenutil.dart';
  import 'package:wow_english/pages/unit/state.dart';
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
5
  import 'package:wow_english/pages/unit/widget/course_unit_item.dart';
2187c85f   吴启风   feat:课程结构调整
6
  import 'package:wow_english/pages/unit/widget/home_tab_header_widget.dart';
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
7
8
9
10
11
12
13
14
  import 'package:wow_english/route/route.dart';
  
  import '../../models/course_module_entity.dart';
  import '../../models/course_unit_entity.dart';
  import '../../utils/toast_util.dart';
  import 'bloc.dart';
  import 'event.dart';
  
2187c85f   吴启风   feat:课程结构调整
15
  // 课程列表页(多unit,参考口语星球的框或分割标志)
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
16
  class UnitPage extends StatelessWidget {
2187c85f   吴启风   feat:课程结构调整
17
    const UnitPage({super.key, this.courseModuleEntity});
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
18
19
  
    /// 模块
2187c85f   吴启风   feat:课程结构调整
20
    final CourseModuleEntity? courseModuleEntity;
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
21
22
23
24
  
    @override
    Widget build(BuildContext context) {
      return BlocProvider(
2187c85f   吴启风   feat:课程结构调整
25
26
        create: (BuildContext context) => UnitBloc(courseModuleEntity)
          ..add(RequestUnitDataEvent(courseModuleEntity?.id)),
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
27
28
29
30
31
32
33
34
35
36
37
38
39
40
        child: Builder(builder: (context) => _buildPage(context)),
      );
    }
  
    Widget _buildPage(BuildContext context) {
      return BlocBuilder<UnitBloc, UnitState>(builder: (context, state) {
        final bloc = BlocProvider.of<UnitBloc>(context);
        return Scaffold(
          body: Container(
            color: Colors.white,
            child: Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
2187c85f   吴启风   feat:课程结构调整
41
42
43
44
45
46
                  HomeTabHeaderWidget(
                    courseModuleCode: bloc.getCourseModuleCode(),
                    actionTap: (HeaderActionType type) {
                      bloc.headerActionEvent(type);
                    },
                  ),
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
47
                  Expanded(
2187c85f   吴启风   feat:课程结构调整
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
                    child: Container(
                        margin: EdgeInsets.symmetric(horizontal: 12.w),
                        child: ListView.builder(
                            itemCount:
                                bloc.unitData?.courseUnitVOList?.length ?? 0,
                            scrollDirection: Axis.horizontal,
                            itemBuilder: (BuildContext context, int index) {
                              CourseUnitDetail? data =
                                  bloc.unitData?.courseUnitVOList?[index];
                              return GestureDetector(
                                onTap: () {
                                  if (data.lock == true) {
                                    showToast('当前unit暂未解锁');
                                    return;
                                  }
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
63
  
2187c85f   吴启风   feat:课程结构调整
64
65
66
                                  pushNamed(AppRouteName.courseSection,
                                      arguments: {
                                        'courseUnitEntity': bloc.unitData,
66a7e3e7   吴启风   feat:退出课堂和结束课堂优化
67
                                        'courseUnitId': data.id
2187c85f   吴启风   feat:课程结构调整
68
69
70
71
72
73
74
75
76
                                      });
                                },
                                child: CourseUnitItem(
                                  unitEntity: bloc.unitData!,
                                  unitLesson: data!,
                                ),
                              );
                            })),
                  ),
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
                  SafeArea(
                    child: Column(
                      children: [
                        6.verticalSpace,
                      ],
                    ),
                  )
                ],
              ),
            ),
          ),
        );
      });
    }
  }