Просмотр исходного кода

fix: 修复在《密码登录》状态下输入了密码后,再使用《验证码登录》时还是使用密码登录逻辑的BUG

YuJing 2 месяцев назад
Родитель
Сommit
eff45906bf

+ 3 - 1
commons/basic/src/main/ets/models/LoginCollect.ets

@@ -10,6 +10,7 @@ export class LoginCollect {
   smsCode?: string; // 验证码(验证码登录/注册/重置时使用)
   confirmPassword?: string; // 确认密码(注册/重置时使用)
   isAgreePrivacy: boolean = false; // 是否同意隐私政策
+  isPassword: boolean = false; // 当前操作类型:密码登录/验证码登录
   private code?: string //华为登录code
   private operation: 'register' | 'reset' | 'login'; // 当前操作类型:注册/重置/登录
   private uuid?: string //验证码登录防伪标识
@@ -223,7 +224,8 @@ export class LoginCollect {
     }
 
     // 场景分支:密码登录 或 验证码登录
-    if (this.password) {
+    // 补充: 必须是在密码登录状态下才校验密码的合法性
+    if (this.isPassword && this.password) {
       // 密码登录:校验密码非空
       if (!this.password.trim()) {
 

+ 4 - 5
features/user/src/main/ets/views/LoginView.ets

@@ -9,7 +9,6 @@ import { CodeInputType } from '../models'
 @Component
 export struct LoginView {
   @State private loginCollect: LoginCollect = new LoginCollect('login')
-  @State private isPassword: boolean = false
   private inputCaptchaType: CodeInputType = {
     txt: '验证码',
     placeHolder: '请输入验证码'
@@ -53,7 +52,7 @@ export struct LoginView {
           this.loginCollect.phonenumber = value
         }
       })
-      if (this.isPassword) {
+      if (this.loginCollect.isPassword) {
         LoginInput({
           item: this.inputPasswordType,
           inputData: this.loginCollect.password,
@@ -84,13 +83,13 @@ export struct LoginView {
       })
 
       Row() {
-        if (!this.isPassword) {
+        if (!this.loginCollect.isPassword) {
           Text('密码登录')
             .fontColor($r('[basic].color.main_ac_color_dark'))
             .fontSize(12)
             .fontWeight(700)
             .onClick(() => {
-              this.isPassword = true
+              this.loginCollect.isPassword = true
             })
           Blank()
         } else {
@@ -99,7 +98,7 @@ export struct LoginView {
             .fontWeight(700)
             .fontSize(12)
             .onClick(() => {
-              this.isPassword = false
+              this.loginCollect.isPassword = false
             })
           Blank()
           Text('忘记密码?')