Blame view

lib/pages/user/information/user_information_page.dart 5.16 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
43
44
        }),
      );
    }
  }
  
  class _UserInformationContentView extends StatelessWidget {
    const _UserInformationContentView({super.key});
  
c9df43c8   Key   feat: 修改个人信息、接口
45
46
    void _openModifyPage(BuildContext context, ModifyUserInformationType type) {
      Log.d('_openModifyPage($type)');
01e73e19   Key   暂时关闭修改个人信息
47
48
      // 暂时关闭修改,修复后打开
      //ModifyUserInformationPage.push(context, type);
49e626e9   Key   feat: log_util.dart
49
50
    }
  
da82bd70   Key   feat: user_inform...
51
52
53
54
55
    @override
    Widget build(BuildContext context) {
      UserEntity user = UserUtil.getUser()!;
      return Scaffold(
        backgroundColor: Colors.white,
49e626e9   Key   feat: log_util.dart
56
57
58
        appBar: const WEAppBar(
          titleText: "个人信息",
        ),
da82bd70   Key   feat: user_inform...
59
60
61
62
        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
63
              _buildContentRow(
da82bd70   Key   feat: user_inform...
64
65
66
                  '头像',
                  CircleAvatar(
                    radius: 22.5.r,
49e626e9   Key   feat: log_util.dart
67
                    backgroundColor: const Color(0xFF140C10),
da82bd70   Key   feat: user_inform...
68
69
70
71
                    child: CircleAvatar(
                      radius: 21.r,
                      backgroundImage: ImageUtil.getImageProviderOnDefault(user.avatarUrl),
                    ),
da82bd70   Key   feat: user_inform...
72
73
                  )),
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
74
              _buildContentRow(
da82bd70   Key   feat: user_inform...
75
76
77
78
79
80
81
82
                  '名字',
                  Text(
                    user.name,
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      color: const Color(0xFF333333),
                      fontSize: 21.sp,
                    ),
49e626e9   Key   feat: log_util.dart
83
                  ),
c9df43c8   Key   feat: 修改个人信息、接口
84
                  onTap: () => _openModifyPage(context, ModifyUserInformationType.name)),
da82bd70   Key   feat: user_inform...
85
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
86
              _buildContentRow(
da82bd70   Key   feat: user_inform...
87
88
89
90
91
92
93
94
                  '年龄',
                  Text(
                    user.age.toString(),
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      color: const Color(0xFF333333),
                      fontSize: 21.sp,
                    ),
23b46e8e   Key   feat: 修改个人信息性别
95
96
                  ),
                  onTap: () => _openModifyPage(context, ModifyUserInformationType.age)),
da82bd70   Key   feat: user_inform...
97
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
98
              _buildContentRow(
da82bd70   Key   feat: user_inform...
99
100
101
102
103
104
105
106
                  '性别',
                  Text(
                    user.getGenderString(),
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      color: const Color(0xFF333333),
                      fontSize: 21.sp,
                    ),
23b46e8e   Key   feat: 修改个人信息性别
107
108
                  ),
                  onTap: () => _openModifyPage(context, ModifyUserInformationType.gender)),
da82bd70   Key   feat: user_inform...
109
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
110
              _buildContentRow(
da82bd70   Key   feat: user_inform...
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
                '账号',
                Text(
                  user.phoneNum,
                  style: TextStyle(
                    fontWeight: FontWeight.w500,
                    color: const Color(0xFF999999),
                    fontSize: 21.sp,
                  ),
                ),
                isHideEndIcon: true,
              ),
            ],
          ),
        ),
      );
    }
  
49e626e9   Key   feat: log_util.dart
128
    Widget _buildContentRow(String filedName, Widget contentWidget, {bool isHideEndIcon = false, Function()? onTap}) {
da82bd70   Key   feat: user_inform...
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
158
      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),
              )
            ]),
          ));
    }
  }