Blame view

lib/pages/user/information/user_information_page.dart 5.11 KB
da82bd70   Key   feat: user_inform...
1
2
3
4
5
6
7
  import 'package:flutter/material.dart';
  import 'package:flutter_bloc/flutter_bloc.dart';
  import 'package:flutter_screenutil/flutter_screenutil.dart';
  import 'package:wow_english/common/core/assets_const.dart';
  import 'package:wow_english/common/core/user_util.dart';
  import 'package:wow_english/common/widgets/we_app_bar.dart';
  import 'package:wow_english/models/user_entity.dart';
49e626e9   Key   feat: log_util.dart
8
  import 'package:wow_english/pages/user/bloc/user_bloc.dart';
da82bd70   Key   feat: user_inform...
9
  import 'package:wow_english/utils/image_util.dart';
c9df43c8   Key   feat: 修改个人信息、接口
10
  import 'package:wow_english/utils/log_util.dart';
da82bd70   Key   feat: user_inform...
11
  
49e626e9   Key   feat: log_util.dart
12
  import '../modify/modify_user_information_page.dart';
da82bd70   Key   feat: user_inform...
13
14
15
16
17
18
19
  
  class UserInformationPage extends StatelessWidget {
    const UserInformationPage({super.key});
  
    @override
    Widget build(BuildContext context) {
      return BlocProvider(
49e626e9   Key   feat: log_util.dart
20
        create: (context) => UserBloc(),
da82bd70   Key   feat: user_inform...
21
22
23
24
25
26
27
28
29
30
        child: const _UserInformationView(),
      );
    }
  }
  
  class _UserInformationView extends StatelessWidget {
    const _UserInformationView({super.key});
  
    @override
    Widget build(BuildContext context) {
49e626e9   Key   feat: log_util.dart
31
      return BlocListener<UserBloc, UserState>(
c9df43c8   Key   feat: 修改个人信息、接口
32
33
34
        listener: (context, state) {
          Log.d('UserInformationPage: $state');
        },
49e626e9   Key   feat: log_util.dart
35
        child: BlocBuilder<UserBloc, UserState>(builder: (context, state) {
c9df43c8   Key   feat: 修改个人信息、接口
36
          return _UserInformationContentView();
da82bd70   Key   feat: user_inform...
37
38
39
40
41
42
        }),
      );
    }
  }
  
  class _UserInformationContentView extends StatelessWidget {
da82bd70   Key   feat: user_inform...
43
  
c9df43c8   Key   feat: 修改个人信息、接口
44
45
    void _openModifyPage(BuildContext context, ModifyUserInformationType type) {
      Log.d('_openModifyPage($type)');
01e73e19   Key   暂时关闭修改个人信息
46
      // 暂时关闭修改,修复后打开
e5c9e98f   liangchengyou   feat:首页模块颜色
47
      // ModifyUserInformationPage.push(context, type);
49e626e9   Key   feat: log_util.dart
48
49
    }
  
da82bd70   Key   feat: user_inform...
50
51
52
53
54
    @override
    Widget build(BuildContext context) {
      UserEntity user = UserUtil.getUser()!;
      return Scaffold(
        backgroundColor: Colors.white,
49e626e9   Key   feat: log_util.dart
55
56
57
        appBar: const WEAppBar(
          titleText: "个人信息",
        ),
da82bd70   Key   feat: user_inform...
58
59
60
61
        body: SingleChildScrollView(
          padding: EdgeInsets.only(left: 17.w, right: 17.w, top: 10.h, bottom: 22.h),
          child: Column(
            children: [
49e626e9   Key   feat: log_util.dart
62
              _buildContentRow(
da82bd70   Key   feat: user_inform...
63
64
65
                  '头像',
                  CircleAvatar(
                    radius: 22.5.r,
49e626e9   Key   feat: log_util.dart
66
                    backgroundColor: const Color(0xFF140C10),
da82bd70   Key   feat: user_inform...
67
68
69
70
                    child: CircleAvatar(
                      radius: 21.r,
                      backgroundImage: ImageUtil.getImageProviderOnDefault(user.avatarUrl),
                    ),
da82bd70   Key   feat: user_inform...
71
72
                  )),
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
73
              _buildContentRow(
da82bd70   Key   feat: user_inform...
74
75
76
77
78
79
80
81
                  '名字',
                  Text(
                    user.name,
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      color: const Color(0xFF333333),
                      fontSize: 21.sp,
                    ),
49e626e9   Key   feat: log_util.dart
82
                  ),
c9df43c8   Key   feat: 修改个人信息、接口
83
                  onTap: () => _openModifyPage(context, ModifyUserInformationType.name)),
da82bd70   Key   feat: user_inform...
84
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
85
              _buildContentRow(
da82bd70   Key   feat: user_inform...
86
87
88
89
90
91
92
93
                  '年龄',
                  Text(
                    user.age.toString(),
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      color: const Color(0xFF333333),
                      fontSize: 21.sp,
                    ),
23b46e8e   Key   feat: 修改个人信息性别
94
95
                  ),
                  onTap: () => _openModifyPage(context, ModifyUserInformationType.age)),
da82bd70   Key   feat: user_inform...
96
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
97
              _buildContentRow(
da82bd70   Key   feat: user_inform...
98
99
100
101
102
103
104
105
                  '性别',
                  Text(
                    user.getGenderString(),
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      color: const Color(0xFF333333),
                      fontSize: 21.sp,
                    ),
23b46e8e   Key   feat: 修改个人信息性别
106
107
                  ),
                  onTap: () => _openModifyPage(context, ModifyUserInformationType.gender)),
da82bd70   Key   feat: user_inform...
108
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
109
              _buildContentRow(
da82bd70   Key   feat: user_inform...
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
                '账号',
                Text(
                  user.phoneNum,
                  style: TextStyle(
                    fontWeight: FontWeight.w500,
                    color: const Color(0xFF999999),
                    fontSize: 21.sp,
                  ),
                ),
                isHideEndIcon: true,
              ),
            ],
          ),
        ),
      );
    }
  
49e626e9   Key   feat: log_util.dart
127
    Widget _buildContentRow(String filedName, Widget contentWidget, {bool isHideEndIcon = false, Function()? onTap}) {
da82bd70   Key   feat: user_inform...
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
      return GestureDetector(
          onTap: onTap,
          child: Container(
            padding: EdgeInsets.only(left: 16.w, right: 16.w, top: 18.h, bottom: 18.h),
            decoration: BoxDecoration(
                image: DecorationImage(
                    image: ImageUtil.getImageProviderOnDefault(AssetsConst.bgUserInformationText), fit: BoxFit.fill)),
            child: Row(children: [
              Text(
                filedName,
                style: TextStyle(
                  fontWeight: FontWeight.w700,
                  color: const Color(0xFF999999),
                  fontSize: 21.sp,
                ),
              ),
              32.horizontalSpace,
              Expanded(
                  child: Container(
                alignment: Alignment.centerLeft,
                child: contentWidget,
              )),
              Offstage(
                offstage: isHideEndIcon,
                child: Image.asset(AssetsConst.icNext, width: 20.w, height: 25.h),
              )
            ]),
          ));
    }
  }