import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_logic.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassword_state.dart'; import '../../../appRouters.dart'; import '../../../app_settings/app_colors.dart'; import '../../../main/lockMian/lockMain/lockMain_logic.dart'; import '../../../tools/submitBtn.dart'; import '../../../tools/tf_loginInput.dart'; import '../../../tools/titleAppBar.dart'; import '../../../translations/trans_lib.dart'; class MinePersonInfoResetPasswordPage extends StatefulWidget { const MinePersonInfoResetPasswordPage({Key? key}) : super(key: key); @override State createState() => _MinePersonInfoResetPasswordPageState(); } class _MinePersonInfoResetPasswordPageState extends State { final MinePersonInfoResetPasswordLogic logic = Get.put(MinePersonInfoResetPasswordLogic()); final MinePersonInfoResetPasswordState state = Get.find().state; @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: F.sw( skyCall: () => TitleAppBar( barTitle: '重置密码'.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), xhjCall: () => TitleAppBar( barTitle: '重置密码'.tr, haveBack: true, backgroundColor: Colors.white, iconColor: AppColors.blackColor, titleColor: AppColors.blackColor, ), ), body: Container( margin: EdgeInsets.only(left: 30.w, right: 30.w), child: Column( children: [ loginView(), SizedBox(height: 50.w), Obx(() => SubmitBtn( btnName: '保存'.tr, fontSize: 30.sp, borderRadius: 20.w, isDisabled: state.canSub.value, padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: state.canSub.value ? () async { final bool isNetWork = await LockMainLogic.to()?.judgeTheNetwork() ?? false; if (!isNetWork) { return; } logic.changePasswordRequest(); } : null)), SizedBox(height: 40.w), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ GestureDetector( child: SizedBox( // width: 150.w, height: 60.h, // color: Colors.red, child: Center( child: Text('${'忘记密码'.tr}?', style: TextStyle( color: AppColors.mainColor, fontSize: 18.sp)), ), ), onTap: () { Get.toNamed(Routers.starLockForgetPasswordPage); }, ) ], ), ], ), )); } Widget loginView() { Widget view = Column( children: [ LoginInput( controller: state.oldPwdController, onchangeAction: (textStr) { logic.changeInput(state.oldPwdController); }, isPwd: true, leftWidget: Text( '${'原密码'.tr} ', style: TextStyle(fontSize: 22.sp), ), hintText: '', inputFormatters: [ LengthLimitingTextInputFormatter(20), ]), LoginInput( controller: state.newPwdController, onchangeAction: (textStr) { logic.changeInput(state.newPwdController); }, isPwd: true, leftWidget: Text( '${'新密码'.tr} ', style: TextStyle(fontSize: 22.sp), ), hintText: '', inputFormatters: [ LengthLimitingTextInputFormatter(20), ]), LoginInput( controller: state.surePwdController, onchangeAction: (textStr) { logic.changeInput(state.surePwdController); }, isPwd: true, // isHaveLeftWidget: false, leftWidget: Text( '${'确认密码'.tr} ', style: TextStyle(fontSize: 22.sp), ), hintText: '', inputFormatters: [ LengthLimitingTextInputFormatter(20), ]), Container( width: 1.sw, padding: EdgeInsets.only(top: 15.h, bottom: 10.h), child: Text('密码必须是8-20位,至少包括数字/字母/符号中的2种'.tr, style: TextStyle( fontSize: 18.w, color: AppColors.darkGrayTextColor))), ], ); view = F.sw( skyCall: () => view, xhjCall: () => Container( margin: EdgeInsets.only( top: 20.h, ), padding: EdgeInsets.all(16.r), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(20.r))), child: ClipRRect( borderRadius: BorderRadius.circular(20.r), child: view, ), )); return view; } }