Blame view

lib/pages/home/widgets/BaseHomeHeaderWidget.dart 4.71 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
6
7
8
9
10
11
12
  import 'package:wow_english/common/extension/string_extension.dart';
  
  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';
  
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
13
14
  typedef HeaderCallback = void Function(dynamic);
  
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
15
  class BaseHomeHeaderWidget extends StatelessWidget {
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
16
    const BaseHomeHeaderWidget({super.key, this.entity, this.callBack});
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
17
18
  
    final CourseEntity? entity;
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
19
    final HeaderCallback? callBack;
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
20
21
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
  
    @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   修复兑换之后回到首页不刷新问题;修...
56
                    onTap: () => {onUserClick()},
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
                    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),
                  )),
8d1f93b4   吴启风   feat:隐藏组件优化
82
                  Offstage(
ca0d27b6   吴启风   feat:会员有效期增加点击跳转&...
83
84
85
86
                      offstage: AppConfigHelper.shouldHidePay() ||
                          !UserUtil.isLogined(),
                      child: GestureDetector(
                        onTap: () => {
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
87
88
89
90
91
92
93
94
                          pushNamed(AppRouteName.shop).then((value) {
                            if (value != null) {
                              if (callBack == null) {
                              } else {
                                callBack!(value);
                              }
                            }
                          })
ca0d27b6   吴启风   feat:会员有效期增加点击跳转&...
95
                        },
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
96
                        child: Row(children: <Widget>[
ca0d27b6   吴启风   feat:会员有效期增加点击跳转&...
97
98
99
100
101
102
103
                          Image(
                              width: 20.0.w,
                              height: 20.0.h,
                              image: AssetImage('ic_countdown'.assetPng)),
                          // 替换为你的图片资源路径
                          const SizedBox(width: 6.0),
                          // 图片和文本之间的间隔
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
104
105
                          UserUtil.hasPermission()
                              ? Text('还剩${UserUtil.getRemainingValidity()}天')
64501762   biao   修复 忘记密码时可以输入手机号
106
                              : const Text('未购买'),
ca0d27b6   吴启风   feat:会员有效期增加点击跳转&...
107
108
                        ]),
                      )),
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
109
110
111
112
113
114
                  ScreenUtil().bottomBarHeight.horizontalSpace,
                ],
              ));
        },
      );
    }
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
115
  
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
116
117
118
119
120
121
122
123
124
125
126
127
128
    void onUserClick() {
      if (UserUtil.isLogined()) {
        pushNamed(AppRouteName.user).then((value) {
          if (value != null) {
            if (callBack == null) {
            } else {
              callBack!(value);
            }
          }
        });
      } else {
        pushNamed(AppRouteName.login);
      }
6d61919a   吴启风   feat:增加过渡页&集成串联游戏
129
130
    }
  }