forgotpwd_view.dart 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_screenutil/flutter_screenutil.dart';
  3. import 'package:get/get.dart';
  4. import 'package:nomo/config/theme/theme_extensions/theme_extension.dart';
  5. import '../../../../config/translations/strings_enum.dart';
  6. import '../../../base/base_view.dart';
  7. import '../../../constants/iconfont/iconfont.dart';
  8. import '../../../widgets/ix_app_bar.dart';
  9. import '../../../widgets/ix_text_field.dart';
  10. import '../../../widgets/submit_btn.dart';
  11. import '../controllers/forgotpwd_controller.dart';
  12. class ForgotpwdView extends BaseView<ForgotpwdController> {
  13. const ForgotpwdView({super.key});
  14. @override
  15. PreferredSizeWidget? get appBar => IXAppBar(title: '');
  16. @override
  17. Widget buildContent(BuildContext context) {
  18. return SafeArea(
  19. child: Padding(
  20. padding: EdgeInsets.symmetric(horizontal: 14.w),
  21. child: SingleChildScrollView(
  22. child: Column(
  23. crossAxisAlignment: CrossAxisAlignment.start,
  24. children: [
  25. 10.verticalSpaceFromWidth,
  26. // 标题
  27. Text(
  28. Strings.changePassword.tr,
  29. style: TextStyle(
  30. fontSize: 28.sp,
  31. height: 1.2,
  32. color: Get.reactiveTheme.textTheme.bodyLarge!.color,
  33. ),
  34. ),
  35. 24.verticalSpaceFromWidth,
  36. // 描述文字
  37. Text(
  38. Strings.changePasswordDescription.tr,
  39. style: TextStyle(
  40. fontSize: 16.sp,
  41. color: Get.reactiveTheme.hintColor,
  42. height: 1.4,
  43. ),
  44. ),
  45. 20.verticalSpaceFromWidth,
  46. IXTextField(
  47. hintText: Strings.enterNewPassword.tr,
  48. prefixIcon: IconFont.icon11,
  49. controller: controller.usernameController,
  50. focusNode: controller.usernameFocusNode,
  51. isPassword: true,
  52. validator: controller.validatorInputValue,
  53. tipText: Strings.usernamePasswordRule.tr,
  54. errorText: Strings.usernamePasswordRule.tr,
  55. onChanged: (value) {
  56. controller.checkLogin();
  57. },
  58. ),
  59. 16.verticalSpaceFromWidth,
  60. IXTextField(
  61. hintText: Strings.enterConfirmPassword.tr,
  62. prefixIcon: IconFont.icon11,
  63. controller: controller.passwordController,
  64. focusNode: controller.passwordFocusNode,
  65. validator: controller.validatorConfirmInputValue,
  66. isPassword: true,
  67. tipText: Strings.usernamePasswordRule.tr,
  68. errorText: Strings.confirmPasswordMustBeTheSame.tr,
  69. onChanged: (value) {
  70. controller.checkLogin();
  71. },
  72. ),
  73. 156.verticalSpaceFromWidth,
  74. SubmitButton(
  75. text: Strings.yes.tr,
  76. enabled: controller.isChangePassword,
  77. onPressed: controller.handleChangePassword,
  78. ),
  79. ],
  80. ),
  81. ),
  82. ),
  83. );
  84. }
  85. }