修复忘记密码时提示错误问题
This commit is contained in:
@@ -109,7 +109,7 @@ const handleCancel = () => {
|
|||||||
<style scoped>
|
<style scoped>
|
||||||
.order-info {
|
.order-info {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
background: #f8f8f8;
|
background: var(--text-color, var(--ant-text-color)); /* 使用主题变量 */
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-bottom: 24px;
|
margin-bottom: 24px;
|
||||||
}
|
}
|
||||||
@@ -127,12 +127,12 @@ const handleCancel = () => {
|
|||||||
|
|
||||||
.label {
|
.label {
|
||||||
width: 84px;
|
width: 84px;
|
||||||
color: #666;
|
color: var(--text-color, var(--ant-text-color)); /* 使用主题变量 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.value {
|
.value {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
color: #333;
|
color: var(--text-color, var(--ant-text-color)); /* 使用主题变量 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.value.highlight {
|
.value.highlight {
|
||||||
@@ -147,7 +147,7 @@ const handleCancel = () => {
|
|||||||
|
|
||||||
.payment-methods h4 {
|
.payment-methods h4 {
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
color: #333;
|
color: var(--text-color, var(--ant-text-color)); /* 使用主题变量 */
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
@@ -171,7 +171,7 @@ const handleCancel = () => {
|
|||||||
|
|
||||||
.method-item:hover {
|
.method-item:hover {
|
||||||
border-color: #1890ff;
|
border-color: #1890ff;
|
||||||
background: #f0f5ff;
|
background: rgba(6, 42, 77, 0.192);
|
||||||
}
|
}
|
||||||
|
|
||||||
.payment-icon {
|
.payment-icon {
|
||||||
@@ -190,7 +190,7 @@ const handleCancel = () => {
|
|||||||
.method-item.disabled {
|
.method-item.disabled {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
background: #f5f5f5;
|
background: var(--text-color, var(--ant-text-color)); /* 使用主题变量 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.balance-icon {
|
.balance-icon {
|
||||||
@@ -199,7 +199,7 @@ const handleCancel = () => {
|
|||||||
|
|
||||||
.balance-info {
|
.balance-info {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #666;
|
color: var(--text-color, var(--ant-text-color)); /* 使用主题变量 */
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -79,14 +79,19 @@ async function handleSubmit() {
|
|||||||
try {
|
try {
|
||||||
await validate();
|
await validate();
|
||||||
|
|
||||||
await resetPasswordByEmail({
|
|
||||||
|
const { error } = resetPasswordByEmail({
|
||||||
email: model.email,
|
email: model.email,
|
||||||
code: model.code,
|
code: model.code,
|
||||||
password: model.password
|
password: model.password
|
||||||
});
|
});
|
||||||
|
|
||||||
window.$message?.success(t('page.login.resetPwd.resetSuccess'));
|
if (!error) {
|
||||||
toggleLoginModule('pwd-login');
|
window.$message?.success(t('page.login.resetPwd.resetSuccess'));
|
||||||
|
toggleLoginModule('pwd-login');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Reset password failed:', error);
|
console.error('Reset password failed:', error);
|
||||||
window.$message?.error(t('page.login.resetPwd.resetFailed'));
|
window.$message?.error(t('page.login.resetPwd.resetFailed'));
|
||||||
@@ -97,34 +102,25 @@ async function handleSubmit() {
|
|||||||
<template>
|
<template>
|
||||||
<AForm ref="formRef" :model="model" :rules="rules">
|
<AForm ref="formRef" :model="model" :rules="rules">
|
||||||
<AFormItem name="email">
|
<AFormItem name="email">
|
||||||
<AInput v-model:value="model.email" size="large" :placeholder="t('page.login.common.emailPlaceholder')" autocomplete="off"/>
|
<AInput v-model:value="model.email" size="large" :placeholder="t('page.login.common.emailPlaceholder')"
|
||||||
|
autocomplete="off" />
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
<AFormItem name="code">
|
<AFormItem name="code">
|
||||||
<div class="w-full flex-y-center gap-8px">
|
<div class="w-full flex-y-center gap-8px">
|
||||||
<AInput v-model:value="model.code" size="large" :placeholder="t('page.login.common.codePlaceholder')" autocomplete="off"/>
|
<AInput v-model:value="model.code" size="large" :placeholder="t('page.login.common.codePlaceholder')"
|
||||||
<AButton
|
autocomplete="off" />
|
||||||
size="small"
|
<AButton size="small" :disabled="isCounting" :loading="loading" @click="handleCaptcha">
|
||||||
:disabled="isCounting"
|
|
||||||
:loading="loading"
|
|
||||||
@click="handleCaptcha"
|
|
||||||
>
|
|
||||||
{{ label }}
|
{{ label }}
|
||||||
</AButton>
|
</AButton>
|
||||||
</div>
|
</div>
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
<AFormItem name="password">
|
<AFormItem name="password">
|
||||||
<AInputPassword
|
<AInputPassword v-model:value="model.password" size="large"
|
||||||
v-model:value="model.password"
|
:placeholder="t('page.login.common.passwordPlaceholder')" />
|
||||||
size="large"
|
|
||||||
:placeholder="t('page.login.common.passwordPlaceholder')"
|
|
||||||
/>
|
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
<AFormItem name="confirmPassword">
|
<AFormItem name="confirmPassword">
|
||||||
<AInputPassword
|
<AInputPassword v-model:value="model.confirmPassword" size="large"
|
||||||
v-model:value="model.confirmPassword"
|
:placeholder="t('page.login.common.confirmPasswordPlaceholder')" />
|
||||||
size="large"
|
|
||||||
:placeholder="t('page.login.common.confirmPasswordPlaceholder')"
|
|
||||||
/>
|
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
<ASpace direction="vertical" size="large" class="w-full">
|
<ASpace direction="vertical" size="large" class="w-full">
|
||||||
<AButton type="primary" block size="large" shape="round" @click="handleSubmit">
|
<AButton type="primary" block size="large" shape="round" @click="handleSubmit">
|
||||||
|
|||||||
@@ -118,29 +118,40 @@ async function handleSubmit() {
|
|||||||
try {
|
try {
|
||||||
await formRef.value?.validate();
|
await formRef.value?.validate();
|
||||||
|
|
||||||
if (resetType.value === 'password') {
|
// if (resetType.value === 'password') {
|
||||||
// 通过原密码重置
|
// // 通过原密码重置
|
||||||
await resetPassword({
|
// await resetPassword({
|
||||||
oldPassword: formModel.oldPassword,
|
// oldPassword: formModel.oldPassword,
|
||||||
newPassword: formModel.password
|
// newPassword: formModel.password
|
||||||
});
|
// });
|
||||||
} else {
|
// } else {
|
||||||
// 通过邮箱验证码重置
|
// // 通过邮箱验证码重置
|
||||||
await resetPasswordByEmail({
|
// await resetPasswordByEmail({
|
||||||
email: formModel.email,
|
// email: formModel.email,
|
||||||
code: formModel.code,
|
// code: formModel.code,
|
||||||
password: formModel.password
|
// password: formModel.password
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
message.success({
|
const { error } = await (resetType.value === 'password' ? resetPassword({
|
||||||
content: t('page.login.resetPwd.resetSuccess'),
|
oldPassword: formModel.oldPassword,
|
||||||
duration: 2
|
newPassword: formModel.password
|
||||||
});
|
}) : resetPasswordByEmail({
|
||||||
|
email: formModel.email,
|
||||||
|
code: formModel.code,
|
||||||
|
password: formModel.password
|
||||||
|
}));
|
||||||
|
|
||||||
|
if (!error) {
|
||||||
|
message.success({
|
||||||
|
content: t('page.login.resetPwd.resetSuccess'),
|
||||||
|
duration: 2
|
||||||
|
});
|
||||||
|
// 延迟跳转
|
||||||
|
setTimeout(() => {
|
||||||
|
router.push('/userInfo/usercard');
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
|
|
||||||
// 延迟跳转
|
|
||||||
setTimeout(() => {
|
|
||||||
router.push('/userInfo/usercard');
|
|
||||||
}, 2000);
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Reset password failed:', error);
|
console.error('Reset password failed:', error);
|
||||||
@@ -169,51 +180,32 @@ const handleBack = () => {
|
|||||||
<a-radio value="email">{{ t('page.login.resetPwd.byEmail') }}</a-radio>
|
<a-radio value="email">{{ t('page.login.resetPwd.byEmail') }}</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
|
|
||||||
<a-form
|
<a-form ref="formRef" :model="formModel" :rules="formRules" :label-col="{
|
||||||
ref="formRef"
|
xs: { span: 24 },
|
||||||
:model="formModel"
|
sm: { span: 8 },
|
||||||
:rules="formRules"
|
md: { span: 6 }
|
||||||
:label-col="{
|
}" :wrapper-col="{
|
||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 8 },
|
sm: { span: 16 },
|
||||||
md: { span: 6 }
|
md: { span: 18 }
|
||||||
}"
|
}">
|
||||||
:wrapper-col="{
|
|
||||||
xs: { span: 24 },
|
|
||||||
sm: { span: 16 },
|
|
||||||
md: { span: 18 }
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<template v-if="resetType === 'password'">
|
<template v-if="resetType === 'password'">
|
||||||
<a-form-item name="oldPassword" :label="t('page.login.resetPwd.oldPassword')">
|
<a-form-item name="oldPassword" :label="t('page.login.resetPwd.oldPassword')">
|
||||||
<a-input-password
|
<a-input-password v-model:value="formModel.oldPassword"
|
||||||
v-model:value="formModel.oldPassword"
|
:placeholder="t('page.login.resetPwd.oldPasswordPlaceholder')" />
|
||||||
:placeholder="t('page.login.resetPwd.oldPasswordPlaceholder')"
|
|
||||||
/>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<a-form-item name="email" :label="t('page.login.register.email')">
|
<a-form-item name="email" :label="t('page.login.register.email')">
|
||||||
<a-input
|
<a-input v-model:value="formModel.email" :placeholder="t('page.login.common.emailPlaceholder')" />
|
||||||
v-model:value="formModel.email"
|
|
||||||
:placeholder="t('page.login.common.emailPlaceholder')"
|
|
||||||
/>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item name="code" :label="t('page.login.register.code')">
|
<a-form-item name="code" :label="t('page.login.register.code')">
|
||||||
<a-space>
|
<a-space>
|
||||||
<a-input
|
<a-input v-model:value="formModel.code" :placeholder="t('page.login.common.codePlaceholder')"
|
||||||
v-model:value="formModel.code"
|
style="width: 200px" />
|
||||||
:placeholder="t('page.login.common.codePlaceholder')"
|
<a-button type="primary" :loading="loading" :disabled="isCounting" @click="handleCaptcha">
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
<a-button
|
|
||||||
type="primary"
|
|
||||||
:loading="loading"
|
|
||||||
:disabled="isCounting"
|
|
||||||
@click="handleCaptcha"
|
|
||||||
>
|
|
||||||
{{ label }}
|
{{ label }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-space>
|
</a-space>
|
||||||
@@ -221,26 +213,20 @@ const handleBack = () => {
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<a-form-item name="password" :label="t('page.login.resetPwd.newPassword')">
|
<a-form-item name="password" :label="t('page.login.resetPwd.newPassword')">
|
||||||
<a-input-password
|
<a-input-password v-model:value="formModel.password"
|
||||||
v-model:value="formModel.password"
|
:placeholder="t('page.login.common.passwordPlaceholder')" />
|
||||||
:placeholder="t('page.login.common.passwordPlaceholder')"
|
|
||||||
/>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item name="confirmPassword" :label="t('page.login.register.confirmPassword')">
|
<a-form-item name="confirmPassword" :label="t('page.login.register.confirmPassword')">
|
||||||
<a-input-password
|
<a-input-password v-model:value="formModel.confirmPassword"
|
||||||
v-model:value="formModel.confirmPassword"
|
:placeholder="t('page.login.common.confirmPasswordPlaceholder')" />
|
||||||
:placeholder="t('page.login.common.confirmPasswordPlaceholder')"
|
|
||||||
/>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item
|
<a-form-item :wrapper-col="{
|
||||||
:wrapper-col="{
|
xs: { span: 24, offset: 0 },
|
||||||
xs: { span: 24, offset: 0 },
|
sm: { span: 16, offset: 8 },
|
||||||
sm: { span: 16, offset: 8 },
|
md: { span: 18, offset: 6 }
|
||||||
md: { span: 18, offset: 6 }
|
}">
|
||||||
}"
|
|
||||||
>
|
|
||||||
<a-button type="primary" block @click="handleSubmit">
|
<a-button type="primary" block @click="handleSubmit">
|
||||||
{{ t('common.confirm') }}
|
{{ t('common.confirm') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
@@ -268,7 +254,8 @@ const handleBack = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
:deep(.ant-form-item-label) {
|
:deep(.ant-form-item-label) {
|
||||||
white-space: normal; /* 允许标签文字换行 */
|
white-space: normal;
|
||||||
|
/* 允许标签文字换行 */
|
||||||
height: auto;
|
height: auto;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
padding-bottom: 8px;
|
padding-bottom: 8px;
|
||||||
|
|||||||
Reference in New Issue
Block a user