hyzp_ybqx-Commit001:代码刚转换好,编译通过

This commit is contained in:
WinUser01
2021-12-09 20:24:36 +08:00
commit 8c74b14e5c
800 changed files with 66912 additions and 0 deletions
+283
View File
@@ -0,0 +1,283 @@
import 'package:flutter/material.dart';
import '../../components/commonFun.dart';
import '../../widget/JdText.dart';
import '../../widget/JdButton.dart';
import '../../config/Config.dart';
import 'package:dio/dio.dart';
import 'package:fluttertoast/fluttertoast.dart';
import '../../services/Storage.dart';
import 'dart:convert';
import '../../components/EncryptUtil.dart';
import '../../services/EventBus.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import '../../config/service_url.dart';
class ModifyPassword extends StatefulWidget {
ModifyPassword({Key key}) : super(key: key);
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<ModifyPassword> {
//监听登录页面销毁的事件
dispose() {
super.dispose();
eventBus.fire(new UserEvent('登录成功...'));
}
String oldPassword = '';
String newPassword1 = '';
String newPassword2 = '';
doModifyPw() async {
oldPassword = oldPassword.trim();
newPassword1 = newPassword1.trim();
newPassword2 = newPassword2.trim();
RegExp regNewPw = RegExp(r"^[a-zA-Z0-9\?_!@#\$\%\^&]+$");
if (g_userInfo.password.isNotEmpty && oldPassword != g_userInfo.password) {
Fluttertoast.showToast(
msg: '输入的旧密码错误!',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
);
} else if (newPassword1 != newPassword2) {
Fluttertoast.showToast(
msg: '两次输入的新密码不一致!',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
);
} else if (oldPassword == newPassword1) {
Fluttertoast.showToast(
msg: '新旧密码不能完全一样!',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
);
} else if (newPassword1.length < 6 || newPassword1.length > 12) {
Fluttertoast.showToast(
msg: '新密码位数不对,应在 6-12 位之间!',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
);
} else if (!regNewPw.hasMatch(newPassword1)) {
Fluttertoast.showToast(
msg: '新密码格式不对,应该由 6-12 位英文字母、数字和特殊符号组成!',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
);
} else {
doModifyPwDio().then((value) {
if (value) {
print(value);
//密码修改成,保存新密码
g_userInfo.password = newPassword1;
//加密保存新密码
Storage.setString('password', EncryptUtil.aesEncode(g_userInfo.password));
Fluttertoast.showToast(
msg: '密码修改成功!',
toastLength: Toast.LENGTH_LONG,
gravity: ToastGravity.CENTER,
);
Navigator.pop(context); // 返回上一个页面
}
});
}
}
Future doModifyPwDio() async {
var api = ServicePath.modifyPwUrl;
print(api);
bool ret = false;
try {
print('开始处理修改密码请求...');
print('username = ${g_userInfo.username}');
print('password = ${g_userInfo.password}');
Response response;
Dio dio = Dio();
String random = RandomBit(6); //flutter (dart)生成N位随机数
response = await dio.post(api, data: {
"username": g_userInfo.username,
"oldpassword": oldPassword,
"newpassword": newPassword1,
"sign": GenerateMd5(APPkey + random),
"random": random,
});
print('response = ${response.toString()}');
//response = {"ret":200,"data":"密码修改成功","msg":""}
//response = {"ret":200,"data":"原密码错误","msg":""}
if (response.statusCode == 200) {
if (response.data["data"].indexOf('成功') > 0) {
ret = true;
print('密码修改成功');
print('response.data["data"] = ${response.data["data"]}');
} else {
print('密码修改失败:${response.data["data"]}!');
Fluttertoast.showToast(
msg: '密码修改失败:${response.data["data"]}!',
toastLength: Toast.LENGTH_LONG,
gravity: ToastGravity.CENTER,
);
}
print('密码修改过程正常完成');
} else {
throw Exception('后端接口出现异常,请检测代码和服务器情况.........');
}
} catch (e) {
print('密码修改过程异常...');
print('ERROR:======>${e}');
Fluttertoast.showToast(
msg: 'ERROR:======>${e}',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
);
}
return ret;
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: PreferredSize(
preferredSize: Size.fromHeight(ScreenUtil().setHeight(173)), // 设置appBar高度
// 设置appBar高度
child: AppBar(
automaticallyImplyLeading: false,
centerTitle: true,
titleSpacing: 0.0,
//设置title的左边距
flexibleSpace: Container(
//SizedBox(height: ScreenUtil().statusBarHeight), //显示顶部状态栏
// SizedBox(height: ScreenUtil().setHeight(10)), //显示顶部状态栏
padding: EdgeInsets.only(top: ScreenUtil().statusBarHeight), //留出顶部状态栏高度
child: Container(
//height: ScreenUtil().setHeight(173),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.centerLeft,
end: Alignment.centerRight,
colors: [
Color.fromRGBO(12, 186, 156, 1),
Color.fromRGBO(39, 127, 235, 1),
],
),
),
// decoration: BoxDecoration(
// gradient: LinearGradient(colors: [
// Color(0xFF0018EB),
// Color(0xFF01C1D9),
// ], begin: Alignment.bottomCenter, end: Alignment.topCenter),
// ),
),
),
title: Padding(
padding: EdgeInsets.only(left: 0, right: 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
getIconAndTextButton(
iconColor: Colors.white,
iconData: Icons.chevron_left_outlined,
onPress: () {
Navigator.pop(context);
},
),
Expanded(
child: Text("修改密码",
style: TextStyle(color: Colors.white, fontSize: 20),
textAlign: TextAlign.center,
overflow: TextOverflow.ellipsis),
),
SizedBox(width: 50),
],
),
),
),
),
body: Container(
padding: EdgeInsets.only(top: 30, bottom: 20, left: 20, right: 20),
child: ListView(
children: <Widget>[
Center(
child: Container(
margin: EdgeInsets.only(top: 30),
height: ScreenUtil().setWidth(160),
width: ScreenUtil().setWidth(160),
//child: Image.asset('assets/images/user.png', fit: BoxFit.cover),
child: Image.asset('assets/images/ybsthbj.png', fit: BoxFit.fitHeight),
// child: Image.network(
// 'https://www.itying.com/images/flutter/list5.jpg',
// fit: BoxFit.cover),
),
),
SizedBox(height: 50),
JdText(
height: ScreenUtil().setHeight(300),
title: '旧密码:',
text: "请输入旧密码",
password: true,
onChanged: (String value) {
// print(value);
oldPassword = value;
},
endBtn: 'ShowHiddenBtn',
),
SizedBox(height: 20),
JdText(
height: ScreenUtil().setHeight(300),
title: '新密码:',
text: "请输入6-12位新密码",
password: true,
onChanged: (String value) {
// print(value);
newPassword1 = value;
},
endBtn: 'ShowHiddenBtn',
),
SizedBox(height: 20),
JdText(
height: ScreenUtil().setHeight(300),
title: '新密码:',
text: "请再次输入6-12位新密码",
password: true,
onChanged: (String value) {
// print(value);
newPassword2 = value;
},
endBtn: 'ShowHiddenBtn',
),
SizedBox(height: 20),
Container(
alignment: Alignment(0, 0),
height: ScreenUtil().setHeight(222),
//width: ScreenUtil().setWidth(142),
padding: EdgeInsets.only(
left: ScreenUtil().setWidth(25), right: ScreenUtil().setWidth(25)),
decoration: new BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(4.0)),
border: new Border.all(width: 1, color: Colors.grey),
),
child: Text('新密码需要6-12位,可以由大小写字母、阿拉伯数字,以及英文 ?、_、!、@、#、\$、%、^、& 等字符组成。',
style: TextStyle(fontSize: 15)),
),
SizedBox(height: 60),
JdButton(
height: ScreenUtil().setHeight(382),
//height: 126,
text: "确认",
color: Colors.blueAccent,
onTop: doModifyPw,
)
],
),
),
);
}
}