diff --git a/.workbuddy/memory/2026-07-24.md b/.workbuddy/memory/2026-07-24.md index 09b4ad8..62c3181 100644 --- a/.workbuddy/memory/2026-07-24.md +++ b/.workbuddy/memory/2026-07-24.md @@ -45,3 +45,11 @@ - `src/api/layout/index.ts`:`resetPassword(data)` → POST /resetPassword(带 X-Tenant-Skip:1);`src/api/layout/model/index.ts` 新增 `ResetPasswordParam`。 - 关键改动:`src/utils/request.ts` 请求拦截器在请求头含 `X-Tenant-Skip` 时跳过注入 TenantId/CompanyId/MerchantId/Domain(登录前找回密码场景,避免串租户)。`vite build --outDir dist-verify` 验证通过(真实 `vite build` 因沙箱 safe-delete 守卫删 dist 拦截,非代码问题)。 - 后端同址 server.websoft.top/api,与 website-admin 共用一套找回密码接口。 + +## 优化:忘记密码页发送验证码前 3 次免图形验证 +- 修改 `src/views/passport/forget/index.vue`:引入 `getCaptcha`,新增图形验证码弹窗(与 `register2/index.vue` 风格一致)。 +- 用 `localStorage` 按 `forget_send_count_${activeTab}_${account}` 记录每个邮箱/手机号的发送次数。 +- 同一个账号前 3 次点击「获取验证码」直接调用 `sendEmailCaptcha`/`sendSmsCaptchaByAdmin`;第 4 次起弹出图形验证码弹窗,输入正确并点击「立即发送」后才真正发送。 +- 失败时自动刷新图形验证码;弹窗关闭时重置 `codeLoading`。 +- 新增 i18n 键 `login.forgetPage.captchaTitle`、`captchaPlaceholder`、`sendNow`(zh_CN/en)。 +- `vue-tsc` 本次新增代码无类型错误;`vite build --outDir dist-verify-captcha` 编译通过。 diff --git a/src/i18n/lang/en/login.ts b/src/i18n/lang/en/login.ts index 5baf0ff..0d8e768 100644 --- a/src/i18n/lang/en/login.ts +++ b/src/i18n/lang/en/login.ts @@ -37,6 +37,9 @@ export default { confirmRule: 'The two passwords do not match', emailRule: 'Please enter a valid email address', phoneRule: 'Please enter a valid phone number', - codeRule: 'Please enter the code' + codeRule: 'Please enter the code', + captchaTitle: 'Send Code', + captchaPlaceholder: 'Please enter the captcha', + sendNow: 'Send Now' } }; diff --git a/src/i18n/lang/zh_CN/login.ts b/src/i18n/lang/zh_CN/login.ts index 5c7cb11..8b8dc1b 100644 --- a/src/i18n/lang/zh_CN/login.ts +++ b/src/i18n/lang/zh_CN/login.ts @@ -37,6 +37,9 @@ export default { confirmRule: '两次输入的密码不一致', emailRule: '请输入正确的邮箱地址', phoneRule: '请输入正确的手机号', - codeRule: '请输入验证码' + codeRule: '请输入验证码', + captchaTitle: '发送验证码', + captchaPlaceholder: '请输入图形验证码', + sendNow: '立即发送' } }; diff --git a/src/views/passport/forget/index.vue b/src/views/passport/forget/index.vue index ce480e0..91c8735 100644 --- a/src/views/passport/forget/index.vue +++ b/src/views/passport/forget/index.vue @@ -143,6 +143,39 @@ {{ t('login.forgetPage.backLogin') }} + + + +
+ + +
+ + {{ t('login.forgetPage.sendNow') }} + +
+