From 1b425df9adaa20c5af4cfc3c1640e3b73da7201d Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Mon, 21 Jul 2025 17:08:51 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=A6=96=E6=AC=A1=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/api/core/auth.ts | 1 + .../src/locales/langs/en-US/page.json | 3 +- .../src/locales/langs/zh-CN/page.json | 3 +- apps/web-antd/src/router/routes/core.ts | 9 + apps/web-antd/src/store/auth.ts | 5 + .../_core/authentication/reset-password.vue | 174 ++++++++++++++++++ .../common-ui/src/ui/authentication/index.ts | 1 + .../src/ui/authentication/reset-password.vue | 116 ++++++++++++ .../src/langs/en-US/authentication.json | 1 + .../src/langs/zh-CN/authentication.json | 1 + 10 files changed, 312 insertions(+), 2 deletions(-) create mode 100644 apps/web-antd/src/views/_core/authentication/reset-password.vue create mode 100644 packages/effects/common-ui/src/ui/authentication/reset-password.vue diff --git a/apps/web-antd/src/api/core/auth.ts b/apps/web-antd/src/api/core/auth.ts index ccb6da3..a2e0b0c 100644 --- a/apps/web-antd/src/api/core/auth.ts +++ b/apps/web-antd/src/api/core/auth.ts @@ -52,6 +52,7 @@ export namespace AuthApi { password: string; mobile: string; code: string; + username: string; } /** 社交快捷登录接口参数 */ diff --git a/apps/web-antd/src/locales/langs/en-US/page.json b/apps/web-antd/src/locales/langs/en-US/page.json index 00a8c90..546cbcd 100644 --- a/apps/web-antd/src/locales/langs/en-US/page.json +++ b/apps/web-antd/src/locales/langs/en-US/page.json @@ -4,7 +4,8 @@ "register": "Register", "codeLogin": "Code Login", "qrcodeLogin": "Qr Code Login", - "forgetPassword": "Forget Password" + "forgetPassword": "Forget Password", + "resetPassword": "Reset Password" }, "dashboard": { "title": "Dashboard", diff --git a/apps/web-antd/src/locales/langs/zh-CN/page.json b/apps/web-antd/src/locales/langs/zh-CN/page.json index 41d8fec..1551a55 100644 --- a/apps/web-antd/src/locales/langs/zh-CN/page.json +++ b/apps/web-antd/src/locales/langs/zh-CN/page.json @@ -4,7 +4,8 @@ "register": "注册", "codeLogin": "验证码登录", "qrcodeLogin": "二维码登录", - "forgetPassword": "忘记密码" + "forgetPassword": "忘记密码", + "resetPassword": "重置密码" }, "dashboard": { "title": "首页", diff --git a/apps/web-antd/src/router/routes/core.ts b/apps/web-antd/src/router/routes/core.ts index 22fd001..2628f2c 100644 --- a/apps/web-antd/src/router/routes/core.ts +++ b/apps/web-antd/src/router/routes/core.ts @@ -82,6 +82,15 @@ const coreRoutes: RouteRecordRaw[] = [ title: $t('page.auth.forgetPassword'), }, }, + { + name: 'ResetPassword', + path: 'reset-password', + component: () => + import('#/views/_core/authentication/reset-password.vue'), + meta: { + title: $t('page.auth.resetPassword'), + }, + }, { name: 'Register', path: 'register', diff --git a/apps/web-antd/src/store/auth.ts b/apps/web-antd/src/store/auth.ts index 3d9ca96..941f793 100644 --- a/apps/web-antd/src/store/auth.ts +++ b/apps/web-antd/src/store/auth.ts @@ -87,6 +87,11 @@ export const useAuthStore = defineStore('auth', () => { message: $t('authentication.loginSuccess'), }); } + } else if (type === 'username') { + router.push({ + name: 'ResetPassword', + query: { username: params.username }, + }); } } finally { loginLoading.value = false; diff --git a/apps/web-antd/src/views/_core/authentication/reset-password.vue b/apps/web-antd/src/views/_core/authentication/reset-password.vue new file mode 100644 index 0000000..72f5334 --- /dev/null +++ b/apps/web-antd/src/views/_core/authentication/reset-password.vue @@ -0,0 +1,174 @@ + + + diff --git a/packages/effects/common-ui/src/ui/authentication/index.ts b/packages/effects/common-ui/src/ui/authentication/index.ts index 868f002..3ce24f9 100644 --- a/packages/effects/common-ui/src/ui/authentication/index.ts +++ b/packages/effects/common-ui/src/ui/authentication/index.ts @@ -6,4 +6,5 @@ export { default as AuthenticationLoginExpiredModal } from './login-expired-moda export { default as AuthenticationLogin } from './login.vue'; export { default as AuthenticationQrCodeLogin } from './qrcode-login.vue'; export { default as AuthenticationRegister } from './register.vue'; +export { default as AuthenticationResetPassword } from './reset-password.vue'; export type { AuthenticationProps } from './types'; diff --git a/packages/effects/common-ui/src/ui/authentication/reset-password.vue b/packages/effects/common-ui/src/ui/authentication/reset-password.vue new file mode 100644 index 0000000..285b6bd --- /dev/null +++ b/packages/effects/common-ui/src/ui/authentication/reset-password.vue @@ -0,0 +1,116 @@ + + + diff --git a/packages/locales/src/langs/en-US/authentication.json b/packages/locales/src/langs/en-US/authentication.json index dfa211a..2967625 100644 --- a/packages/locales/src/langs/en-US/authentication.json +++ b/packages/locales/src/langs/en-US/authentication.json @@ -33,6 +33,7 @@ "passwordStrength": "Use 8 or more characters with a mix of letters, numbers & symbols", "forgetPassword": "Forget Password?", "forgetPasswordSubtitle": "Enter your email and we'll send you instructions to reset your password", + "firstLoginResetPassword": "Please reset your password on first login", "resetPasswordSuccess": "Reset password success", "emailTip": "Please enter email", "emailValidErrorTip": "The email format you entered is incorrect", diff --git a/packages/locales/src/langs/zh-CN/authentication.json b/packages/locales/src/langs/zh-CN/authentication.json index 6fd9826..d590e8d 100644 --- a/packages/locales/src/langs/zh-CN/authentication.json +++ b/packages/locales/src/langs/zh-CN/authentication.json @@ -33,6 +33,7 @@ "passwordStrength": "使用 8 个或更多字符,混合字母、数字和符号", "forgetPassword": "忘记密码?", "forgetPasswordSubtitle": "输入您的电子邮件,我们将向您发送重置密码的连接", + "firstLoginResetPassword": "首次登录请重置密码", "resetPasswordSuccess": "重置密码成功", "emailTip": "请输入邮箱", "emailValidErrorTip": "你输入的邮箱格式不正确",