Эх сурвалжийг харах

修复无法重新获取验证码的问题

cxmo 1 жил өмнө
parent
commit
fc2c8dfeea

+ 6 - 1
src/views/login/EmailModel.vue

@@ -29,15 +29,19 @@ let emailCode = ref('')
 const isEmailCountDown = computed(()=>{
     return codeCountDown.value<60&&codeCountDown.value>0
 })
+let isGetNewCode = ref(false)
 
 const emailPattern = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/
 function checkForm(){
     if(isEmailCountDown.value) return 
     //是否是重新获取验证码
-    if(codeStr.value==='重新获取'){
+    if(codeStr.value==='重新获取'&&!isGetNewCode.value){
         //清空图形验证码输入框,引导用户重新输入
+        showToast("重新获取需再次输入图形验证码")
         getPicCode()
         emailPicCode.value = ''
+        isGetNewCode.value = true
+        return
     }
     //检查邮箱和图形验证码是否正确
     if(!emailPicCode.value.length){
@@ -57,6 +61,7 @@ function checkForm(){
         email:email.value,
         picCode:emailPicCode.value
     },'email',1)
+    isGetNewCode.value = false
 }
 </script>
 

+ 7 - 1
src/views/login/MobileModel.vue

@@ -38,6 +38,8 @@ const isMobileCountDown = computed(()=>{
     return codeCountDown.value<60&&codeCountDown.value>0
 })
 
+let isGetNewCode = ref(false)
+
 //区号相关
 let mobileTelAreaCode=ref('86')
 let showMobilePicker = ref(false)
@@ -55,10 +57,13 @@ getTelAreaCode()
 function checkForm(){
     if(isMobileCountDown.value) return 
     //是否是重新获取验证码
-    if(codeStr.value==='重新获取'){
+    if(codeStr.value==='重新获取'&&!isGetNewCode.value){
         //清空图形验证码输入框,引导用户重新输入
+        showToast("重新获取需再次输入图形验证码")
         getPicCode()
         mobilePicCode.value = ''
+        isGetNewCode.value = true
+        return
     }
     //检查手机号和图形验证码是否正确
     if(!mobilePicCode.value.length){
@@ -77,6 +82,7 @@ function checkForm(){
               areaCode:mobileTelAreaCode.value,
               picCode:mobilePicCode.value
             },'mobile',1)
+    isGetNewCode.value = false
 
 }
 

+ 1 - 0
src/views/login/hooks/useLogin.js

@@ -29,6 +29,7 @@ export function useLogin(){
         if(res.Ret!==200) return 
         showToast('验证码已发送')
         //60秒倒计时
+        codeCountDown.value = 60
         countDown()
         timer = setInterval(()=>{
             countDown()