From c8fa11aa25dc908584328fffb4d65c7203e82814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com> Date: Fri, 22 May 2026 13:36:51 +0800 Subject: [PATCH] 111 --- src/views/login/email-verify.vue | 27 ++++++---------------- src/views/login/login-dialog.vue | 32 ++++++++++++++++----------- src/views/login/retrieve-password.vue | 15 ++++++++----- 3 files changed, 35 insertions(+), 39 deletions(-) diff --git a/src/views/login/email-verify.vue b/src/views/login/email-verify.vue index fab31b7..f257c91 100644 --- a/src/views/login/email-verify.vue +++ b/src/views/login/email-verify.vue @@ -22,18 +22,14 @@ import { useI18n } from 'vue-i18n' const { t } = useI18n() const router = useRouter() - const emit = defineEmits(['submit-email-code']) + const emit = defineEmits(['submit-email-code', 'resend-email-code']) const props = defineProps({ email: { type: String, required: true }, - type: { - type: String as () => 'LOGIN' | 'REGISTER' | 'FORGET_PWD', - required: true - }, password: { type: String, default: '' }, isShowOtherLogin: { type: Boolean, default: true } }) const code = ref('') - const time = ref(60) + const time = ref(0) const timeStr = computed(() => CountDown(time.value)) const timeout = ref(null) const setTime = (s = 120) => { @@ -55,7 +51,8 @@ clearTime() }) onMounted(() => { - onSendCode() + // onSendCode() + setTime() }) const inputCodeRef = ref(null) const resetCode = () => { @@ -68,19 +65,9 @@ console.warn('请输入邮箱') return Promise.reject('请输入邮箱') } - // const data = { - // email, - // type: props.type - // } - // if (props.type === 'LOGIN') { - // data['password'] = md5(props.password) - // } - // const res = await SendVerificationCode(data) - // if (!res) { - // ElMessage.error(t('Login.sendCodeError')) - // return Promise.reject('发送验证码失败') - // } - setTime() + emit('resend-email-code', () => { + setTime() + }) return Promise.resolve() } const onResend = () => { diff --git a/src/views/login/login-dialog.vue b/src/views/login/login-dialog.vue index 9bc9d32..28169cf 100644 --- a/src/views/login/login-dialog.vue +++ b/src/views/login/login-dialog.vue @@ -43,11 +43,11 @@ @login="onLogin" @register="onRegister" @submit-email-code="onSubmitEmailCode" + @resend-email-code="onResendEmailCode" @back="onBack" :name="data.name" :email="data.email" :password="data.password" - type="FORGET_PWD" /> @@ -128,26 +128,24 @@ myEvent.remove('openLoginDialog', open) }) - const onLogin = (res: any) => { - AccountSendLoginCode({ + const onLogin = async (res: any) => { + await AccountSendLoginCode({ email: res.email, password: md5(res.password) - }).then((v) => { - data.value = res - data.value.type = TabNames.login - currentTab.value = TabNames.email_verify }) + data.value = res + data.value.type = TabNames.login + currentTab.value = TabNames.email_verify } - const onRegister = (res: any) => { + const onRegister = async (res: any) => { const value = { email: res.email, operationType: 'REGISTER' } - AccountSendVerifyCode(value).then((v) => { - data.value = res - data.value.type = TabNames.register - currentTab.value = TabNames.email_verify - }) + await AccountSendVerifyCode(value) + data.value = res + data.value.type = TabNames.register + currentTab.value = TabNames.email_verify } const onSubmitEmailCode = (code: string) => { const value = { @@ -167,6 +165,14 @@ }) } } + const onResendEmailCode = async (callback: () => void) => { + if (data.value.type === TabNames.login) { + await onLogin(data.value) + } else if (data.value.type === TabNames.register) { + await onRegister(data.value) + } + callback() + }