c9df43c8
Key
feat: 修改个人信息、接口
|
1
|
import 'package:flutter/cupertino.dart';
|
49e626e9
Key
feat: log_util.dart
|
2
|
import 'package:flutter/material.dart';
|
c9df43c8
Key
feat: 修改个人信息、接口
|
3
|
import 'package:flutter/services.dart';
|
49e626e9
Key
feat: log_util.dart
|
4
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
c9df43c8
Key
feat: 修改个人信息、接口
|
5
6
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:wow_english/common/core/assets_const.dart';
|
e6a4e63c
Key
fixed: 修改个人信息性别
|
7
|
import 'package:wow_english/common/core/user_util.dart';
|
c9df43c8
Key
feat: 修改个人信息、接口
|
8
|
import 'package:wow_english/common/widgets/textfield_customer_widget.dart';
|
49e626e9
Key
feat: log_util.dart
|
9
10
|
import 'package:wow_english/common/widgets/we_app_bar.dart';
import 'package:wow_english/pages/user/bloc/user_bloc.dart';
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
11
12
13
|
import 'package:wow_english/pages/user/modify/user_info_bloc/user_info_bloc.dart';
import 'package:wow_english/route/route.dart';
import 'package:wow_english/utils/toast_util.dart';
|
49e626e9
Key
feat: log_util.dart
|
14
15
|
enum ModifyUserInformationType {
|
c9df43c8
Key
feat: 修改个人信息、接口
|
16
17
18
19
|
avatar('头像'),
name('名字'),
age('年龄'),
gender('性别');
|
49e626e9
Key
feat: log_util.dart
|
20
21
22
23
24
25
26
27
28
29
30
|
const ModifyUserInformationType(this.title);
final String title;
}
class ModifyUserInformationPage extends StatelessWidget {
final ModifyUserInformationType type;
const ModifyUserInformationPage({super.key, required this.type});
|
c9df43c8
Key
feat: 修改个人信息、接口
|
31
32
33
34
35
36
|
static push(BuildContext context, ModifyUserInformationType type) {
Navigator.of(context).push(CupertinoPageRoute(builder: (context) {
return ModifyUserInformationPage(type: type);
}));
}
|
49e626e9
Key
feat: log_util.dart
|
37
38
|
@override
Widget build(BuildContext context) {
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
39
40
41
42
43
44
|
String text = '';
if (type == ModifyUserInformationType.age) {
text = UserUtil.getUser()!.age.toString();
} else if (type == ModifyUserInformationType.name) {
text = UserUtil.getUser()!.name;
}
|
49e626e9
Key
feat: log_util.dart
|
45
|
return BlocProvider(
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
create: (context) => UserInfoBloc()..add(InitControllerTextEvent(text)),
child: MultiBlocListener(
listeners: [
BlocListener<UserBloc,UserState>(listener: (context, state){
if (state is UserInfoUpdated) {
showToast('修改成功');
popPage();
}
})
],
child: Scaffold(
backgroundColor: Colors.white,
appBar: WEAppBar(
titleText: '修改${type.title}',
),
body: BlocBuilder<UserInfoBloc, UserInfoState>(
builder: (context, state) {
final bloc = BlocProvider.of<UserInfoBloc>(context);
return SingleChildScrollView(
child: Column(
|
c9df43c8
Key
feat: 修改个人信息、接口
|
66
|
children: [
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
Padding(
padding: EdgeInsets.only(left: 65.w, right: 55.w, top: 38.h),
child: Row(
children: [
Text(
type.title,
style: TextStyle(
fontWeight: FontWeight.w700,
color: const Color(0xFF333333),
fontSize: 21.sp,
),
),
20.horizontalSpace,
// 输入框 or 选择框
_buildTextFieldWidget(context),
// 占位
Expanded(
child: Container(),
),
// 按钮
GestureDetector(
onTap: () {
var text = '';
if (type == ModifyUserInformationType.name || type == ModifyUserInformationType.age){
if(bloc.modifyTextController.text.isEmpty) {
showToast('内容不能为空');
return;
}
text = bloc.modifyTextController.text;
}
if (type == ModifyUserInformationType.gender) {
text = bloc.gender.toString();
}
// 更新type类型的字段
context.read<UserBloc>().add(UserUpdate(type,text));
},
child: Container(
alignment: Alignment.center,
width: 90.w,
height: 44.h,
decoration: const BoxDecoration(
image: DecorationImage(image: AssetImage(AssetsConst.bgButtonBlue), fit: BoxFit.fill),
),
child: Text(
'确定',
style: TextStyle(fontSize: 17.sp, color: Colors.white),
),
),
)
],
)),
Stack(
alignment: Alignment.topRight,
children: [
Image.asset(
AssetsConst.bgEditUserInformation,
width: double.infinity,
|
c9df43c8
Key
feat: 修改个人信息、接口
|
125
|
),
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
126
127
128
129
|
Positioned(
right: 125.w,
top: 10.h,
child: Image.asset(AssetsConst.bgIcSteveWrite, width: 161.w, height: 249.w),
|
c9df43c8
Key
feat: 修改个人信息、接口
|
130
|
),
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
131
132
|
],
),
|
c9df43c8
Key
feat: 修改个人信息、接口
|
133
|
],
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
134
135
|
));
}),
|
49e626e9
Key
feat: log_util.dart
|
136
137
138
139
|
),
),
);
}
|
23b46e8e
Key
feat: 修改个人信息性别
|
140
141
|
Widget _buildTextFieldWidget(BuildContext context) {
|
23b46e8e
Key
feat: 修改个人信息性别
|
142
|
if (type == ModifyUserInformationType.gender) {
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
return BlocBuilder<UserInfoBloc, UserInfoState>(
builder: (context,state){
final bloc = BlocProvider.of<UserInfoBloc>(context);
return Row(
children: <Widget>[
GestureDetector(
onTap: () => bloc.add(ChangeGenderEvent(0)),
child: _buildSexWidget('男', bloc.gender == 0),
),
70.horizontalSpace,
GestureDetector(
onTap: () => bloc.add(ChangeGenderEvent(1)),
child: _buildSexWidget('女', bloc.gender == 1),
)
],
);
});
|
23b46e8e
Key
feat: 修改个人信息性别
|
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
}
var formatters = [
LengthLimitingTextInputFormatter(12),
FilteringTextInputFormatter.deny(RegExp('[ ]')),
];
var inputType = TextInputType.name;
// 当输入年龄时
if (type == ModifyUserInformationType.age) {
formatters = [
LengthLimitingTextInputFormatter(2),
FilteringTextInputFormatter.deny(RegExp('[ ]')),
];
inputType = TextInputType.number;
}
|
e6a4e63c
Key
fixed: 修改个人信息性别
|
175
|
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
return BlocBuilder<UserInfoBloc, UserInfoState>(
builder: (context,state){
final bloc = BlocProvider.of<UserInfoBloc>(context);
return TextFieldCustomerWidget(
height: 65.h,
width: 222.w,
textStyle: TextStyle(
fontWeight: FontWeight.w700,
color: const Color(0xFF333333),
fontSize: 21.sp,
),
bgImageName: 'Input_layer_up',
textInputType: inputType,
inputFormatters: formatters,
controller: bloc.modifyTextController,
/*onChangeValue: (String value) {
|
23b46e8e
Key
feat: 修改个人信息性别
|
192
193
|
bloc.add(CodeNumberChangeEvent());
},*/
|
c948a9ea
liangchengyou
feat:个人信息更改模块功能
|
194
195
|
);
});
|
23b46e8e
Key
feat: 修改个人信息性别
|
196
|
}
|
e5c9e98f
liangchengyou
feat:首页模块颜色
|
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
|
Widget _buildSexWidget(String title,bool isSelect) {
return Row(
children: [
Container(
width: 21.h,
height: 21.h,
padding: EdgeInsets.all(4.h),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(21.r),
border: Border.all(
color: const Color(0xFF140C10),
width: 1.5
)
),
child: Offstage(
offstage:!isSelect,
child: ClipRRect(
borderRadius: BorderRadius.circular(13.r),
child: Container(
color: Colors.blue,
),
),
),
),
5.horizontalSpace,
Text(title)
],
);
}
|
49e626e9
Key
feat: log_util.dart
|
227
|
}
|