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
|
import 'package:wow_english/route/route.dart';
|
025d8543
biao
首页gametime播放修改
|
8
|
import 'package:wow_english/utils/audio_player_util.dart';
|
2a3621f8
吴启风
feat:课程层级调整(增加unit层)
|
9
10
11
12
13
14
15
|
import '../../models/course_module_entity.dart';
import '../../models/course_unit_entity.dart';
import '../../utils/toast_util.dart';
import 'bloc.dart';
import 'event.dart';
|
e620143b
吴启风
feat:单元&课程解锁状态蒙层ui
|
16
|
// 课程(单元)列表页(多unit,参考口语星球的框或分割标志)
|
2a3621f8
吴启风
feat:课程层级调整(增加unit层)
|
17
|
class UnitPage extends StatelessWidget {
|
2187c85f
吴启风
feat:课程结构调整
|
18
|
const UnitPage({super.key, this.courseModuleEntity});
|
2a3621f8
吴启风
feat:课程层级调整(增加unit层)
|
19
20
|
/// 模块
|
2187c85f
吴启风
feat:课程结构调整
|
21
|
final CourseModuleEntity? courseModuleEntity;
|
2a3621f8
吴启风
feat:课程层级调整(增加unit层)
|
22
23
24
25
|
@override
Widget build(BuildContext context) {
return BlocProvider(
|
2187c85f
吴启风
feat:课程结构调整
|
26
|
create: (BuildContext context) => UnitBloc(courseModuleEntity)
|
b1869cf8
biao
背景音乐添加
|
27
|
..add(UnitInitEvent())
|
2187c85f
吴启风
feat:课程结构调整
|
28
|
..add(RequestUnitDataEvent(courseModuleEntity?.id)),
|
2a3621f8
吴启风
feat:课程层级调整(增加unit层)
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
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:课程结构调整
|
43
44
|
HomeTabHeaderWidget(
courseModuleCode: bloc.getCourseModuleCode(),
|
e6a08b82
biao
修复兑换之后回到首页不刷新问题;修...
|
45
|
onBack: () {
|
b1869cf8
biao
背景音乐添加
|
46
47
|
AudioPlayerUtil.getInstance()
.playAudio(AudioPlayerUtilType.touch);
|
e6a08b82
biao
修复兑换之后回到首页不刷新问题;修...
|
48
49
|
popPage(data: {'exchange': bloc.exchangeResult});
},
|
2187c85f
吴启风
feat:课程结构调整
|
50
51
52
53
|
actionTap: (HeaderActionType type) {
bloc.headerActionEvent(type);
},
),
|
2a3621f8
吴启风
feat:课程层级调整(增加unit层)
|
54
|
Expanded(
|
2187c85f
吴启风
feat:课程结构调整
|
55
56
57
58
59
60
61
62
63
64
65
66
|
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) {
|
009cf00d
吴启风
feat:环节&单元解锁逻辑
|
67
|
showToast('当前单元课程暂未解锁');
|
2187c85f
吴启风
feat:课程结构调整
|
68
69
|
return;
}
|
b1869cf8
biao
背景音乐添加
|
70
|
AudioPlayerUtil.getInstance().pause();
|
2187c85f
吴启风
feat:课程结构调整
|
71
72
73
|
pushNamed(AppRouteName.courseSection,
arguments: {
'courseUnitEntity': bloc.unitData,
|
66a7e3e7
吴启风
feat:退出课堂和结束课堂优化
|
74
|
'courseUnitId': data.id
|
0cbdbb34
吴启风
feat:环节列表页返回单元列表页...
|
75
|
}).then((value) {
|
b1869cf8
biao
背景音乐添加
|
76
77
|
AudioPlayerUtil.getInstance()
.playAudio(AudioPlayerUtilType.inMyTummy);
|
0cbdbb34
吴启风
feat:环节列表页返回单元列表页...
|
78
|
if (value != null) {
|
e6a08b82
biao
修复兑换之后回到首页不刷新问题;修...
|
79
80
|
Map<String, dynamic> dataMap =
value as Map<String, dynamic>;
|
0cbdbb34
吴启风
feat:环节列表页返回单元列表页...
|
81
82
|
bool needRefresh = dataMap['needRefresh'];
if (needRefresh) {
|
e6a08b82
biao
修复兑换之后回到首页不刷新问题;修...
|
83
84
|
bloc.add(RequestUnitDataEvent(
courseModuleEntity?.id));
|
0cbdbb34
吴启风
feat:环节列表页返回单元列表页...
|
85
86
87
|
}
}
});
|
2187c85f
吴启风
feat:课程结构调整
|
88
89
90
91
92
93
94
95
|
},
child: CourseUnitItem(
unitEntity: bloc.unitData!,
unitLesson: data!,
),
);
})),
),
|
2a3621f8
吴启风
feat:课程层级调整(增加unit层)
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
SafeArea(
child: Column(
children: [
6.verticalSpace,
],
),
)
],
),
),
),
);
});
}
}
|