Files
one-pipe-system/openspec/changes/add-self-service-password-dialog/proposal.md
luo abd1467482
Some checks failed
构建并部署前端到测试环境 / build-and-deploy (push) Failing after 13m9s
fix: 实名时间+8和修改密码新增
2026-10-09 10:52:39 +08:00

2.4 KiB
Raw Blame History

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 位新密码边界、确认密码不一致、旧密码为空、成功及失败响应、重复点击,以及菜单位置与重新打开后的密码清空。运行相关测试、类型检查和受影响文件的代码检查。