feat: 验证码倒计时
This commit is contained in:
parent
0ff873f6fa
commit
b4830ee0e2
@ -29,12 +29,15 @@
|
|||||||
placeholder="请输入验证码"
|
placeholder="请输入验证码"
|
||||||
>
|
>
|
||||||
</el-input>
|
</el-input>
|
||||||
|
|
||||||
<el-button
|
<el-button
|
||||||
|
:disabled="isDisabled"
|
||||||
size="large"
|
size="large"
|
||||||
class="send-email-button ml-12"
|
class="send-email-button ml-12"
|
||||||
@click="sendEmail"
|
@click="sendEmail"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
>获取验证码</el-button
|
>
|
||||||
|
{{ isDisabled ? `重新发送(${time}s)` : '获取验证码' }}</el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -89,6 +92,8 @@ const rules = ref<FormRules<CheckCodeRequest>>({
|
|||||||
code: [{ required: true, message: '请输入验证码' }]
|
code: [{ required: true, message: '请输入验证码' }]
|
||||||
})
|
})
|
||||||
const loading = ref<boolean>(false)
|
const loading = ref<boolean>(false)
|
||||||
|
const isDisabled = ref<boolean>(false)
|
||||||
|
const time = ref<number>(60)
|
||||||
|
|
||||||
const checkCode = () => {
|
const checkCode = () => {
|
||||||
resetPasswordFormRef.value
|
resetPasswordFormRef.value
|
||||||
@ -108,5 +113,16 @@ const sendEmail = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const handleTimeChange = () => {
|
||||||
|
if (time.value <= 0) {
|
||||||
|
isDisabled.value = false
|
||||||
|
time.value = 60
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
time.value--
|
||||||
|
handleTimeChange()
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scope></style>
|
<style lang="scss" scope></style>
|
||||||
|
|||||||
@ -62,11 +62,13 @@
|
|||||||
>
|
>
|
||||||
</el-input>
|
</el-input>
|
||||||
<el-button
|
<el-button
|
||||||
|
:disabled="isDisabled"
|
||||||
size="large"
|
size="large"
|
||||||
class="send-email-button ml-12"
|
class="send-email-button ml-12"
|
||||||
@click="sendEmail"
|
@click="sendEmail"
|
||||||
:loading="sendEmailLoading"
|
:loading="sendEmailLoading"
|
||||||
>获取验证码</el-button
|
>
|
||||||
|
{{ isDisabled ? `重新发送(${time}s)` : '获取验证码' }}</el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -183,6 +185,8 @@ const register = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const sendEmailLoading = ref<boolean>(false)
|
const sendEmailLoading = ref<boolean>(false)
|
||||||
|
const isDisabled = ref<boolean>(false)
|
||||||
|
const time = ref<number>(60)
|
||||||
/**
|
/**
|
||||||
* 发送验证码
|
* 发送验证码
|
||||||
*/
|
*/
|
||||||
@ -191,9 +195,22 @@ const sendEmail = () => {
|
|||||||
if (v) {
|
if (v) {
|
||||||
UserApi.sendEmit(registerForm.value.email, 'register', sendEmailLoading).then(() => {
|
UserApi.sendEmit(registerForm.value.email, 'register', sendEmailLoading).then(() => {
|
||||||
MsgSuccess('发送验证码成功')
|
MsgSuccess('发送验证码成功')
|
||||||
|
isDisabled.value = true
|
||||||
|
handleTimeChange()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const handleTimeChange = () => {
|
||||||
|
if (time.value <= 0) {
|
||||||
|
isDisabled.value = false
|
||||||
|
time.value = 60
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
time.value--
|
||||||
|
handleTimeChange()
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scope></style>
|
<style lang="scss" scope></style>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user