Blame view

lib/pages/user/information/user_information_page.dart 4.94 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
47
    void _openModifyPage(BuildContext context, ModifyUserInformationType type) {
      Log.d('_openModifyPage($type)');
      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
94
95
                  '年龄',
                  Text(
                    user.age.toString(),
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      color: const Color(0xFF333333),
                      fontSize: 21.sp,
                    ),
                  )),
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
96
              _buildContentRow(
da82bd70   Key   feat: user_inform...
97
98
99
100
101
102
103
104
105
106
                  '性别',
                  Text(
                    user.getGenderString(),
                    style: TextStyle(
                      fontWeight: FontWeight.w500,
                      color: const Color(0xFF333333),
                      fontSize: 21.sp,
                    ),
                  )),
              11.verticalSpace,
49e626e9   Key   feat: log_util.dart
107
              _buildContentRow(
da82bd70   Key   feat: user_inform...
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
                '账号',
                Text(
                  user.phoneNum,
                  style: TextStyle(
                    fontWeight: FontWeight.w500,
                    color: const Color(0xFF999999),
                    fontSize: 21.sp,
                  ),
                ),
                isHideEndIcon: true,
              ),
            ],
          ),
        ),
      );
    }
  
49e626e9   Key   feat: log_util.dart
125
    Widget _buildContentRow(String filedName, Widget contentWidget, {bool isHideEndIcon = false, Function()? onTap}) {
da82bd70   Key   feat: user_inform...
126
127
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
      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),
              )
            ]),
          ));
    }
  }