From 29562b0703c9c7f507179a6bd3c73395b2373c6d Mon Sep 17 00:00:00 2001 From: czl231 <3286836406@qq.com> Date: Mon, 10 Aug 2026 19:13:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=99=BB=E5=BD=95=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=B8=AD=E6=96=87=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/操作日志_登录失败提示中文化_20260810.md | 42 +++++++++++++++++++ .../src/views/login/components/login-form.vue | 9 +++- .../src/views/login/components/login-form.vue | 9 +++- .../src/views/login/components/login-form.vue | 9 +++- 4 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 docs/操作日志_登录失败提示中文化_20260810.md diff --git a/docs/操作日志_登录失败提示中文化_20260810.md b/docs/操作日志_登录失败提示中文化_20260810.md new file mode 100644 index 0000000..86334cb --- /dev/null +++ b/docs/操作日志_登录失败提示中文化_20260810.md @@ -0,0 +1,42 @@ +# 登录失败提示中文化操作日志 + +操作时间:2026-08-10 +操作类型:修改 +影响模块:平台后台、气站后台、配送后台登录页 + +## 操作前状态 + +三个后台的 `/login` 页面会直接展示登录接口返回的错误消息。后端 SDK 返回 `Password Incorrect`、`Account Disabled`、`Invalid Argument` 时,页面显示英文提示。 + +## 具体操作 + +在三个后台登录表单的异常处理逻辑中增加登录错误文案映射。匹配时忽略大小写和首尾空格: + +- `Password Incorrect`:账号或密码错误 +- `Account Disabled`:账号已禁用 +- `Invalid Argument`:登录参数错误 + +未命中的错误继续展示原消息,不改变全局 HTTP 错误处理行为。 + +## 操作后状态 + +三个后台的已知登录失败提示统一显示中文;其他服务端错误保持原有展示方式。 + +## 代码变更 + +- `frontend/platform_admin/src/views/login/components/login-form.vue`:修改 `handleSubmit` 的登录异常提示处理。 +- `frontend/gas_admin/src/views/login/components/login-form.vue`:修改 `handleSubmit` 的登录异常提示处理。 +- `frontend/delivery_admin/src/views/login/components/login-form.vue`:修改 `handleSubmit` 的登录异常提示处理。 + +## 验证结果 + +- 三个后台分别执行 `npm run type:check`,均通过。 +- 三个修改文件分别执行 Biome 定向 lint,均无错误;每个文件存在 3 个修改前已有的 Vue 模板变量误判警告。 +- 执行 `git diff --check`,未发现空白符错误。 +- 边界检查:映射支持大小写变化和首尾空格;未知错误仍保留原文。 + +## 风险评估 + +- 影响仅限三个登录表单的错误展示,不改变认证、路由、状态管理或全局请求逻辑。 +- 如果 SDK 后续调整英文文案,新的文案不会命中映射,将按约定保留原文;届时需同步扩展映射。 +- 仓库原有的 `backend/go.work.sum` 修改及后端日志文件未纳入本次操作,也未被改动。 diff --git a/frontend/delivery_admin/src/views/login/components/login-form.vue b/frontend/delivery_admin/src/views/login/components/login-form.vue index f944e10..55fb02f 100644 --- a/frontend/delivery_admin/src/views/login/components/login-form.vue +++ b/frontend/delivery_admin/src/views/login/components/login-form.vue @@ -116,7 +116,14 @@ const handleSubmit = async ({ loginConfig.value.username = rememberPassword ? username : ''; loginConfig.value.password = ''; } catch (err) { - errorMessage.value = (err as Error).message; + // 将登录接口的已知英文错误转换为中文,未知错误保持服务端原文。 + const message = (err as Error).message; + const loginErrorMessages: Record = { + 'password incorrect': '账号或密码错误', + 'account disabled': '账号已禁用', + 'invalid argument': '登录参数错误', + }; + errorMessage.value = loginErrorMessages[message.trim().toLowerCase()] || message; } finally { setLoading(false); } diff --git a/frontend/gas_admin/src/views/login/components/login-form.vue b/frontend/gas_admin/src/views/login/components/login-form.vue index d45c807..76ea302 100644 --- a/frontend/gas_admin/src/views/login/components/login-form.vue +++ b/frontend/gas_admin/src/views/login/components/login-form.vue @@ -116,7 +116,14 @@ const handleSubmit = async ({ loginConfig.value.username = rememberPassword ? username : ''; loginConfig.value.password = ''; } catch (err) { - errorMessage.value = (err as Error).message; + // 将登录接口的已知英文错误转换为中文,未知错误保持服务端原文。 + const message = (err as Error).message; + const loginErrorMessages: Record = { + 'password incorrect': '账号或密码错误', + 'account disabled': '账号已禁用', + 'invalid argument': '登录参数错误', + }; + errorMessage.value = loginErrorMessages[message.trim().toLowerCase()] || message; } finally { setLoading(false); } diff --git a/frontend/platform_admin/src/views/login/components/login-form.vue b/frontend/platform_admin/src/views/login/components/login-form.vue index c13b80c..498a20c 100644 --- a/frontend/platform_admin/src/views/login/components/login-form.vue +++ b/frontend/platform_admin/src/views/login/components/login-form.vue @@ -116,7 +116,14 @@ const handleSubmit = async ({ loginConfig.value.username = rememberPassword ? username : ''; loginConfig.value.password = ''; } catch (err) { - errorMessage.value = (err as Error).message; + // 将登录接口的已知英文错误转换为中文,未知错误保持服务端原文。 + const message = (err as Error).message; + const loginErrorMessages: Record = { + 'password incorrect': '账号或密码错误', + 'account disabled': '账号已禁用', + 'invalid argument': '登录参数错误', + }; + errorMessage.value = loginErrorMessages[message.trim().toLowerCase()] || message; } finally { setLoading(false); }