forgotpwd_controller.dart 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import '../../../../config/translations/strings_enum.dart';
  4. import '../../../controllers/api_controller.dart';
  5. import '../../../dialog/loading/loading_dialog.dart';
  6. class ForgotpwdController extends GetxController {
  7. final _apiController = Get.find<ApiController>();
  8. final usernameController = TextEditingController();
  9. final passwordController = TextEditingController();
  10. final usernameFocusNode = FocusNode();
  11. final passwordFocusNode = FocusNode();
  12. final _isChangePassword = false.obs;
  13. bool get isChangePassword => _isChangePassword.value;
  14. set isChangePassword(bool value) {
  15. _isChangePassword.value = value;
  16. }
  17. @override
  18. void onInit() {
  19. super.onInit();
  20. }
  21. @override
  22. void onClose() {
  23. usernameController.dispose();
  24. passwordController.dispose();
  25. usernameFocusNode.dispose();
  26. passwordFocusNode.dispose();
  27. super.onClose();
  28. }
  29. void checkLogin() {
  30. final username = usernameController.text;
  31. final password = passwordController.text;
  32. if (validatorInputValue(username) &&
  33. validatorInputValue(password) &&
  34. username == password) {
  35. isChangePassword = true;
  36. } else {
  37. isChangePassword = false;
  38. }
  39. }
  40. //6-20 characters (letters or numbers)
  41. bool validatorInputValue(String value) {
  42. // 只允许字母和数字并且是6-20位
  43. return value.length >= 6 &&
  44. value.length <= 20 &&
  45. RegExp(r'^[a-zA-Z0-9]+$').hasMatch(value);
  46. }
  47. bool validatorConfirmInputValue(String value) {
  48. // 只允许字母和数字并且是6-20位
  49. return value == usernameController.text;
  50. }
  51. // 处理修改密码
  52. Future<void> handleChangePassword() async {
  53. if (!isChangePassword) {
  54. return;
  55. }
  56. await LoadingDialog.show(
  57. context: Get.context!,
  58. loadingText: Strings.changingPassword.tr,
  59. successText: Strings.changePasswordSuccessful.tr,
  60. onRequest: () async {
  61. // 执行你的异步请求
  62. await _apiController.changePassword({
  63. "newPassword": passwordController.text,
  64. });
  65. },
  66. onSuccess: () {
  67. // 成功后的操作
  68. Get.back();
  69. },
  70. );
  71. }
  72. }