diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts
index be14e25..3582fc4 100644
--- a/src/locales/langs/en-us.ts
+++ b/src/locales/langs/en-us.ts
@@ -207,7 +207,8 @@ const local: any = {
registerSuccess:'Register successfully',
welcomeBack: 'Welcome back, {username} !',
checkCode: 'Please check the verification code',
- emailPlaceholder:'Please enter the email'
+ emailPlaceholder:'Please enter the email',
+ getCodeFailed: 'Failed to get verification code, please try again'
},
pwdLogin: {
title: 'Password Login',
@@ -218,7 +219,8 @@ const local: any = {
otherLoginMode: 'Other Login Mode',
superAdmin: 'Super Admin',
admin: 'Admin',
- user: 'User'
+ user: 'User',
+ loginFailed: 'Login failed, please check your username and password'
},
codeLogin: {
title: 'Verification Code Login',
@@ -278,8 +280,8 @@ const local: any = {
newPassword: 'New Password',
passwordSameAsOld: 'New password cannot be the same as current password',
passwordLength: 'Password must be at least 6 characters',
- byPassword: 'Reset by Password',
- byEmail: 'Reset by Email Code'
+ resetSuccess: 'Password reset successfully',
+ resetFailed: 'Password reset failed, please try again'
},
bindWeChat: {
title: 'Bind WeChat'
diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts
index f233d37..bd97905 100644
--- a/src/locales/langs/zh-cn.ts
+++ b/src/locales/langs/zh-cn.ts
@@ -207,7 +207,8 @@ const local:any = {
registerSuccess:'注册成功',
welcomeBack: '欢迎回来,{username} !',
checkCode: '请输入验证码',
- emailPlaceholder:'请输入邮箱'
+ emailPlaceholder:'请输入邮箱',
+ getCodeFailed: '获取验证码失败,请重试'
},
pwdLogin: {
title: '密码登录',
@@ -218,7 +219,8 @@ const local:any = {
otherLoginMode: '其他登录方式',
superAdmin: '超级管理员',
admin: '管理员',
- user: '普通用户'
+ user: '普通用户',
+ loginFailed: '登录失败,请检查用户名和密码'
},
codeLogin: {
title: '验证码登录',
@@ -279,7 +281,9 @@ const local:any = {
passwordSameAsOld: '新密码不能与原密码相同',
passwordLength: '密码长度不能小于6位',
byPassword: '通过原密码重置',
- byEmail: '通过邮箱验证码重置'
+ byEmail: '通过邮箱验证码重置',
+ resetSuccess: '密码重置成功',
+ resetFailed: '密码重置失败,请重试'
},
bindWeChat: {
title: '绑定微信'
diff --git a/src/service/api/auth.ts b/src/service/api/auth.ts
index 66dd6a7..9f677fb 100644
--- a/src/service/api/auth.ts
+++ b/src/service/api/auth.ts
@@ -190,6 +190,15 @@ export function uploadFile(file: File) {
data: formData
});
}
+/** Reset password */
+export function resetPassword(data: { oldPassword: string; newPassword: string }) {
+ return request({
+ url: `/u/user/profile/updatePwd`,
+ method: 'put',
+ params: data
+ });
+}
+
diff --git a/src/typings/auto-imports.d.ts b/src/typings/auto-imports.d.ts
index 26a5a37..8bc83f7 100644
--- a/src/typings/auto-imports.d.ts
+++ b/src/typings/auto-imports.d.ts
@@ -194,6 +194,7 @@ declare global {
const refThrottled: typeof import('@vueuse/core')['refThrottled']
const refWithControl: typeof import('@vueuse/core')['refWithControl']
const removeEmptyChildren: typeof import('../utils/menu')['removeEmptyChildren']
+ const resetPassword: typeof import('../service/api/auth')['resetPassword']
const resolveComponent: typeof import('vue')['resolveComponent']
const resolveRef: typeof import('@vueuse/core')['resolveRef']
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
diff --git a/src/views/userInfo/resetpwd/index.vue b/src/views/userInfo/resetpwd/index.vue
index eb108d8..928db69 100644
--- a/src/views/userInfo/resetpwd/index.vue
+++ b/src/views/userInfo/resetpwd/index.vue
@@ -13,6 +13,7 @@ import {
Radio,
} from 'ant-design-vue';
import { useRouter } from 'vue-router';
+import { resetPassword } from '@/service/api/auth';
const AInputPassword = Input.Password;
const ARadioGroup = Radio.Group;
@@ -98,10 +99,23 @@ async function handleCaptcha() {
async function handleSubmit() {
try {
await formRef.value?.validate();
- //
- window.$message?.success(t('common.success'));
+
+ if (resetType.value === 'password') {
+ // 通过原密码重置
+ await resetPassword({
+ oldPassword: formModel.oldPassword,
+ newPassword: formModel.password
+ });
+ } else {
+ // TODO: 通过邮箱验证码重置的接口
+ }
+
+ window.$message?.success(t('page.login.resetPwd.resetSuccess'));
+ // 重置成功后返回个人信息页面
+ router.push('/userInfo/usercard');
} catch (error) {
- console.error('Form validation failed:', error);
+ console.error('Reset password failed:', error);
+ window.$message?.error(t('page.login.resetPwd.resetFailed'));
}
}
@@ -123,7 +137,7 @@ const handleBack = () => {
{{ t('page.login.resetPwd.byPassword') }}
- {{ t('page.login.resetPwd.byEmail') }}
+