2.4 KiB
2.4 KiB
Change: 新增当前用户修改密码弹窗
状态:用户已确认执行(2026-10-09),按本提案实施。
Why
当前顶部用户菜单只有“个人中心”和“锁定屏幕”,缺少当前登录用户修改密码的入口。统一认证接口已有 PUT /api/auth/password,但前端参数类型仍使用不符合接口约定的驼峰字段。
What Changes
- 在顶部用户菜单“个人中心”和“锁定屏幕”之间新增“修改密码”,点击后打开弹窗,并关闭用户菜单浮层。
- 弹窗包含旧密码、新密码、确认新密码;输入隐藏并允许切换可见,新密码及确认新密码长度为 8–32 位,确认密码必须一致。旧密码必填,不套用新密码长度限制,以兼容已有密码。
- 复用 Element Plus 表单、弹窗及主题,提供字段校验、取消、确认、提交中状态和重复提交保护,兼容窄屏及键盘操作。
- 复用
AuthService.changePassword,修正参数类型,仅发送old_password和new_password;确认密码不发送给后端,Bearer 认证沿用现有请求层。 - 成功后提示并关闭弹窗、清空密码和旧的记住密码凭证;不主动退出登录。失败时保持弹窗,由现有请求层展示后端错误,401 沿用现有认证过期处理。
- 补齐中文及英文菜单与表单文案,以及参数映射、密码长度边界、密码一致性、成功/失败与重复提交验证。
Impact
- Affected specs:
user-auth(当前无已归档的能力规范,本提案新增增量规范)。 - Affected code:
src/components/core/layouts/art-header-bar/index.vue、新增修改密码弹窗组件、src/types/api/auth.ts、src/api/modules/auth.ts、src/locales/langs/zh.json、src/locales/langs/en.json。 - 不涉及管理员给其他账号重置密码,不修改锁屏密码,不引入新依赖,不调用测试环境真实密码修改接口。
- 本次另行完成的资产实名时间修正属于现有展示问题修复:仅指定三个
real_name_at展示位置在现有逻辑基础上加 8 小时,不属于本提案的审批范围。
Validation
审批后验证 7、8、32、33 位新密码边界、确认密码不一致、旧密码为空、成功及失败响应、重复点击,以及菜单位置与重新打开后的密码清空。运行相关测试、类型检查和受影响文件的代码检查。