diff --git a/lib/login/register/starLock_register_logic.dart b/lib/login/register/starLock_register_logic.dart index 5796d422..91580d43 100755 --- a/lib/login/register/starLock_register_logic.dart +++ b/lib/login/register/starLock_register_logic.dart @@ -149,6 +149,35 @@ class StarLockRegisterLogic extends BaseGetXController { state.pwdIsOK && state.phoneOrEmailStr.value.isNotEmpty; } + // 在 StarLockRegisterLogic 类中添加 + bool validatePhoneOrEmailFormat() { + final String input = state.phoneOrEmailStr.value; + + if (state.isIphoneType.value) { + // 手机号验证:纯数字,长度合理 + if (input.isEmpty) { + showToast('请输入手机号'.tr); + return false; + } + if (!RegExp(r'^[0-9]+$').hasMatch(input)) { + showToast('手机号只能包含数字'.tr); + return false; + } + } else { + // 邮箱验证:必须包含@,格式正确 + if (input.isEmpty) { + showToast('请输入邮箱地址'.tr); + return false; + } + if (!input.contains('@')) { + showToast('邮箱地址必须包含@符号'.tr); + return false; + } + } + + return true; + } + @override void onReady() { super.onReady(); diff --git a/lib/login/register/starLock_register_xhj_page.dart b/lib/login/register/starLock_register_xhj_page.dart index 038f85f6..94262b22 100755 --- a/lib/login/register/starLock_register_xhj_page.dart +++ b/lib/login/register/starLock_register_xhj_page.dart @@ -135,6 +135,17 @@ class _StarLockRegisterPageState extends State { Widget middleTFWidget() { return Column( children: [ + // Obx(() => LoginInput( + // controller: state.phoneOrEmailController, + // onchangeAction: (v) { + // logic.checkNext(state.phoneOrEmailController); + // }, + // leftWidget: SizedBox(), + // label: state.isIphoneType.value ? '请输入手机号'.tr : '请输入邮箱'.tr, + // keyboardType: TextInputType.number, + // inputFormatters: [ + // LengthLimitingTextInputFormatter(30), + // ])), Obx(() => LoginInput( controller: state.phoneOrEmailController, onchangeAction: (v) { @@ -142,9 +153,18 @@ class _StarLockRegisterPageState extends State { }, leftWidget: SizedBox(), label: state.isIphoneType.value ? '请输入手机号'.tr : '请输入邮箱'.tr, - keyboardType: TextInputType.number, + keyboardType: state.isIphoneType.value + ? TextInputType.number + : TextInputType.emailAddress, inputFormatters: [ LengthLimitingTextInputFormatter(30), + // 根据注册类型添加输入限制 + if (state.isIphoneType.value) + FilteringTextInputFormatter.digitsOnly // 手机号只能输入数字 + else + // 邮箱:只允许字母、数字、@、.、_、- + FilteringTextInputFormatter.allow( + RegExp(r'[a-zA-Z0-9@._-]')) ])), LoginInput( controller: state.pwdController, @@ -190,6 +210,10 @@ class _StarLockRegisterPageState extends State { Obx(() => GestureDetector( onTap: (state.canSendCode.value && state.canResend.value) ? () async { + if (!logic.validatePhoneOrEmailFormat()) { + return; + } + // Navigator.pushNamed(context, Routers.safetyVerificationPage, arguments: {"countryCode":"+86", "account":state.phoneOrEmailStr.value}); final result = await Get.toNamed( Routers.safetyVerificationPage, diff --git a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart index 7d6b4a65..3cef5958 100755 --- a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart +++ b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart @@ -563,8 +563,9 @@ class LockSetLogic extends BaseGetXController { .showIosTipWithContentDialog('删除锁后,所有信息都会一起删除,确定删除锁吗?'.tr, () { // 删除锁 state.showTipView.resetGetController(); - state.showTipView.showTFViewAlertDialog( - state.passwordTF, '请输入登录密码'.tr, '请输入登录密码'.tr, checkLoginPassword); + factoryDataResetAction(); + // state.showTipView.showTFViewAlertDialog( + // state.passwordTF, '请输入登录密码'.tr, '请输入登录密码'.tr, checkLoginPassword); }); } else if (state.lockBasicInfo.value.keyRight == 1) { // 授权管理员弹框提示