### REQ-USR-003 修改用户 **目标**: 用户可更新已有用户的基本信息(姓名、角色、状态等),修改实时生效 - **输入**: 选中目标 - **表1**: | 字段 | 类型 | 必填 | 输入方式 | 显示来源 | 预加载 | 默认值 | 业务规则 | | -------- | ---- | --- | ---- | ----------------- | --------- | --------- | ------------------- | | 创建时间 | 日期时间 | — | 系统生成 | — | 页面加载时 | 原值 | 保存后自动生成;只读 | | 制单人 | 文本 | — | 系统生成 | — | 页面加载时 | 原值 | 保存后自动生成;只读 | | 员工名 | 文本 | 否 | 下拉单选 | `职员表` | 页面加载时 | 原值 | 关联职员(可选) | | 用户号 | 文本 | 是 | 手工输入 | — | 页面加载时 | 原值 | 关联职员选择后自动输入员工姓名 | | 用户名 | 文本 | 是 | 手工输入 | — | 页面加载时 | 原值 | 关联职员选择后自动输入员工姓名 | | 类型 | 文本 | 是 | 下拉单选 | 普通用户/超级管理员 | 页面加载时 | 原值 | — | | 语言 | 文本 | 是 | 下拉单选 | 中文/英文/繁体 | 页面加载时 | 原值 | — | | 单据修改权限 | 布尔 | 否 | 复选框 | — | 页面加载时 | 原值 | — | | 密码 | 文本 | — | 系统生成 | 不显示 | 页面加载时 | 原值 | 保存后自动设为初始化 | - **表2** - 权限组: | 字段 | 类型 | 必填 | 输入方式 | 显示来源 | 预加载 | 默认值 | 业务规则 | | -------- | ---- | --- | ---- | ----------------- | --------- | --------- | ------------------- | | 复选框 | 布尔 | 否 | 复选框 | — | 页面加载时 | 原值 | 是否选择当前行的权限 | | 权限分类 | 文本 | — | — | — | 页面加载时 | — | — | - **输出**: - **表1**: | 字段 | 类型 | 显示来源 | | --- | --- | --- | | 用户 id | 文本 | `职员表` | - **跨字段规则**: 密码不在该接口修改;角色变更需具备相应权限 - **边界**: 必须传入有效用户 id;字段格式与新增一致 - **验收**: 修改角色或状态后立即反映在用户列表;被禁用账号无法登录并收到明确提示 - **依赖表**: `sys_user`(读 + 写: 更新非密码字段), `sys_employee`(读: 关联职员下拉), `sys_permission_category`(读: 权限分类列表), `sys_user_permission_category`(读 + 写: 增量增删授权差集) - **依赖接口**: `PUT /api/v1/users/{userId}`(本 REQ 提供);`GET /api/v1/users/{userId}`(详情回显,可在本 REQ 实现或复用 REQ-USR-004 列表点击进入);下游调用:`GET /api/v1/employees`、`GET /api/v1/permission-categories`(同 REQ-USR-002)