Blame view

lib/pages/home/widgets/BaseHomeHeaderWidget.dart 5.86 KB
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
1
2
3
  import 'package:flutter/material.dart';
  import 'package:flutter_bloc/flutter_bloc.dart';
  import 'package:flutter_screenutil/flutter_screenutil.dart';
28f20da9   吴启风   feat:针对apple审核对支付...
4
  import 'package:wow_english/common/core/app_config_helper.dart';
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
5
  import 'package:wow_english/common/extension/string_extension.dart';
025d8543   biao   首页gametime播放修改
6
  import 'package:wow_english/utils/audio_player_util.dart';
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
7
8
9
10
11
12
  
  import '../../../common/core/user_util.dart';
  import '../../../models/course_entity.dart';
  import '../../../route/route.dart';
  import '../../../utils/image_util.dart';
  import '../../user/bloc/user_bloc.dart';
6770c637   吴启风   feat: 动态配置客服联系方式
13
  import 'customer_service_qr_dialog.dart';
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
14
  
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
15
16
  typedef HeaderCallback = void Function(dynamic);
  
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
17
  class BaseHomeHeaderWidget extends StatelessWidget {
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
18
    const BaseHomeHeaderWidget({super.key, this.entity, this.callBack});
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
19
20
  
    final CourseEntity? entity;
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
21
    final HeaderCallback? callBack;
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
  
    @override
    Widget build(BuildContext context) {
      return BlocBuilder<UserBloc, UserState>(
        builder: (context, state) {
          return Container(
              height: 45,
              width: double.infinity,
              decoration: BoxDecoration(
                image: DecorationImage(
                  image: AssetImage('bg_header_sliver'.assetPng),
                  fit: BoxFit.cover,
                ),
              ),
              padding: EdgeInsets.symmetric(horizontal: 9.5.w),
              child: Row(
                children: [
                  ScreenUtil().bottomBarHeight.horizontalSpace,
                  GestureDetector(
                    onTap: () => {onUserClick()},
                    child: Container(
                      decoration: BoxDecoration(
                        border: Border.all(
                          width: 1.0,
                          color: const Color(0xFF140C10),
                        ),
                        borderRadius: BorderRadius.circular(21),
                      ),
                      child: CircleAvatar(
                        radius: 21,
                        backgroundImage: ImageUtil.getImageProviderOnDefault(
                            UserUtil.getUser()?.avatarUrl),
                      ),
                    ),
                  ),
                  GestureDetector(
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
58
                    onTap: () => {onUserClick()},
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
                    child: Container(
                      margin: const EdgeInsets.only(left: 7),
                      padding: const EdgeInsets.all(4.0),
                      decoration: BoxDecoration(
                        color: Colors.white,
                        borderRadius: BorderRadius.circular(2),
                        border: Border.all(
                            width: 1.0,
                            color: const Color(0xFF140C10),
                            style: BorderStyle.solid),
                      ),
                      child: Text(
                        UserUtil.getUser()?.name ?? '未登录',
                        style: TextStyle(
                            color: const Color(0xFF333333), fontSize: 16.sp),
                      ),
                    ),
                  ),
                  20.horizontalSpace,
                  const Expanded(
                      child: Text(
                    "WOW ENGLISH",
                    textAlign: TextAlign.left,
                    style: TextStyle(color: Colors.white, fontSize: 30.0),
                  )),
6770c637   吴启风   feat: 动态配置客服联系方式
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
                  FutureBuilder(
                    future: AppConfigHelper.getAppConfig(),
                    builder: (context, snapshot) {
                      final customerQr = snapshot.data?.customerQr?.trim() ?? '';
                      if (customerQr.isEmpty) {
                        return const SizedBox.shrink();
                      }
                      return GestureDetector(
                        onTap: () =>
                            showCustomerServiceQrDialog(context, customerQr),
                        child: Padding(
                          padding: EdgeInsets.only(right: 12.w),
                          child: Image.asset(
                            'ic_customer_service'.assetPng,
                            width: 90.w,
                            height: 28.h,
                            fit: BoxFit.contain,
                          ),
                        ),
                      );
                    },
                  ),
8d1f93b4   吴启风   feat:隐藏组件优化
106
                  Offstage(
ca0d27b6   吴启风   feat:会员有效期增加点击跳转&...
107
108
109
                      offstage: AppConfigHelper.shouldHidePay() ||
                          !UserUtil.isLogined(),
                      child: GestureDetector(
2d1ead53   吴启风   feat:背景音播放优化
110
111
                        onTap: () async => {
                          await AudioPlayerUtil.getInstance().pause(),
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
112
113
114
115
116
117
118
119
                          pushNamed(AppRouteName.shop).then((value) {
                            if (value != null) {
                              if (callBack == null) {
                              } else {
                                callBack!(value);
                              }
                            }
                          })
ca0d27b6   吴启风   feat:会员有效期增加点击跳转&...
120
                        },
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
121
                        child: Row(children: <Widget>[
ca0d27b6   吴启风   feat:会员有效期增加点击跳转&...
122
123
124
125
126
127
128
                          Image(
                              width: 20.0.w,
                              height: 20.0.h,
                              image: AssetImage('ic_countdown'.assetPng)),
                          // 替换为你的图片资源路径
                          const SizedBox(width: 6.0),
                          // 图片和文本之间的间隔
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
129
130
                          UserUtil.hasPermission()
                              ? Text('还剩${UserUtil.getRemainingValidity()}天')
64501762   biao   修复 忘记密码时可以输入手机号
131
                              : const Text('未购买'),
ca0d27b6   吴启风   feat:会员有效期增加点击跳转&...
132
133
                        ]),
                      )),
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
134
135
136
137
138
139
                  ScreenUtil().bottomBarHeight.horizontalSpace,
                ],
              ));
        },
      );
    }
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
140
  
2d1ead53   吴启风   feat:背景音播放优化
141
    Future<void> onUserClick() async {
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
142
      if (UserUtil.isLogined()) {
2d1ead53   吴启风   feat:背景音播放优化
143
        await AudioPlayerUtil.getInstance().pause();
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
144
145
146
147
148
149
150
151
152
153
154
        pushNamed(AppRouteName.user).then((value) {
          if (value != null) {
            if (callBack == null) {
            } else {
              callBack!(value);
            }
          }
        });
      } else {
        pushNamed(AppRouteName.login);
      }
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
155
156
    }
  }