|
|
@@ -0,0 +1,142 @@
|
|
|
+import 'package:flutter/material.dart';
|
|
|
+import '../widget/ITextInput.dart';
|
|
|
+import '../widget/LinearButton.dart';
|
|
|
+import '../net/HttpManager.dart';
|
|
|
+import '../net/Result.dart';
|
|
|
+import 'package:redux/redux.dart';
|
|
|
+import 'package:flutter_redux/flutter_redux.dart';
|
|
|
+import '../redux/AppState.dart';
|
|
|
+import '../model/UserInfo.dart';
|
|
|
+import '../styles/totast.dart';
|
|
|
+
|
|
|
+class ChangePassword extends StatefulWidget {
|
|
|
+ @override
|
|
|
+ _ChangePasswordState createState() => _ChangePasswordState();
|
|
|
+}
|
|
|
+
|
|
|
+class _ChangePasswordState extends State<ChangePassword> with WidgetsBindingObserver {
|
|
|
+ String password_old = '';
|
|
|
+ String password_new = '';
|
|
|
+ String password_se = '';
|
|
|
+
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext context) {
|
|
|
+ return StoreConnector<AppState, UserInfo>(
|
|
|
+ converter: (Store store) => store.state.userInfo,
|
|
|
+ builder: (context, userInfo) {
|
|
|
+ return Scaffold(
|
|
|
+ appBar: AppBar(
|
|
|
+ title: Text('修改密码'),
|
|
|
+ ),
|
|
|
+ backgroundColor: Color(0xFF23253C),
|
|
|
+ body: Column(
|
|
|
+ children: <Widget>[
|
|
|
+ Container(
|
|
|
+ height: 10,
|
|
|
+ ),
|
|
|
+ ITextField(
|
|
|
+ maxLength: 6,
|
|
|
+ keyboardType: ITextInputType.password,
|
|
|
+ prefixIcon: Container(
|
|
|
+ child: Image.asset(
|
|
|
+ 'images/list_icon_yanzhengma.png',
|
|
|
+ width: 20,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ hintText: '请输入您的原始密码',
|
|
|
+ hintStyle: TextStyle(
|
|
|
+ fontSize: 16,
|
|
|
+ color: Color(0xFF727785),
|
|
|
+ ),
|
|
|
+ textStyle: TextStyle(color: Colors.white),
|
|
|
+ fieldCallBack: (content) {
|
|
|
+ setState(() {
|
|
|
+ password_old = content;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ counterStyle: TextStyle(color: Color(0xFF000000), fontSize: 0),
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ height: 10,
|
|
|
+ ),
|
|
|
+ ITextField(
|
|
|
+ maxLength: 6,
|
|
|
+ keyboardType: ITextInputType.password,
|
|
|
+ prefixIcon: Container(
|
|
|
+ child: Image.asset(
|
|
|
+ 'images/list_icon_yanzhengma.png',
|
|
|
+ width: 20,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ hintText: '请设置您的新密码',
|
|
|
+ hintStyle: TextStyle(
|
|
|
+ fontSize: 16,
|
|
|
+ color: Color(0xFF727785),
|
|
|
+ ),
|
|
|
+ textStyle: TextStyle(color: Colors.white),
|
|
|
+ fieldCallBack: (content) {
|
|
|
+ setState(() {
|
|
|
+ password_new = content;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ counterStyle: TextStyle(color: Color(0xFF000000), fontSize: 0),
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ height: 10,
|
|
|
+ ),
|
|
|
+ ITextField(
|
|
|
+ maxLength: 6,
|
|
|
+ keyboardType: ITextInputType.password,
|
|
|
+ prefixIcon: Container(
|
|
|
+ child: Image.asset(
|
|
|
+ 'images/list_icon_yanzhengma.png',
|
|
|
+ width: 20,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ hintText: '请确认您的新密码',
|
|
|
+ hintStyle: TextStyle(
|
|
|
+ fontSize: 16,
|
|
|
+ color: Color(0xFF727785),
|
|
|
+ ),
|
|
|
+ textStyle: TextStyle(color: Colors.white),
|
|
|
+ fieldCallBack: (content) {
|
|
|
+ setState(() {
|
|
|
+ password_se = content;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ counterStyle: TextStyle(color: Color(0xFF000000), fontSize: 0),
|
|
|
+ ),
|
|
|
+ Container(
|
|
|
+ height: 52,
|
|
|
+ ),
|
|
|
+ Padding(
|
|
|
+ padding: EdgeInsets.symmetric(horizontal: 15),
|
|
|
+ child: LinearButton(
|
|
|
+ btnHeight: 48.0,
|
|
|
+ btntext: '确认修改',
|
|
|
+ textColor: (password_new == password_se && password_se != '' && password_old != '') ? Colors.white : Color(0xFF15151D),
|
|
|
+ colorList: (password_new == password_se && password_se != '' && password_old != '')
|
|
|
+ ? [Color(0xFFD4504B), Color(0xFFD4504B)]
|
|
|
+ : [Color(0xFF727785), Color(0xFF727785)],
|
|
|
+ onTapHomeMenu: (password_new == password_se && password_se != '' && password_old != '')
|
|
|
+ ? () async {
|
|
|
+ Toast.show(context, '加载中', -1, 'loading');
|
|
|
+ Result res = await HttpManager.post('userInfo/updatePassword',
|
|
|
+ data: {"userId": userInfo.id, "oldPassword": password_old, "newPassword": password_new});
|
|
|
+ Toast.hide();
|
|
|
+ if (res.success) {
|
|
|
+ Toast.show(context, '修改成功', 1500, 'success');
|
|
|
+ Navigator.of(context).pop();
|
|
|
+ } else {
|
|
|
+ Toast.show(context, res.error, 1500, 'info');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ : null,
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|