Files
nexus/Project/fonrey/UI_DESIGN/权限管理/权限管理_UI.md
2026-04-29 15:43:49 +08:00

223 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 权限管理 UI 设计文档
> **任务编号**08P0-C
> **覆盖范围**`US-PERMISSION-001 ~ US-PERMISSION-005`
> **输出文件**`UI_DESIGN/权限管理_UI.html`
> **设计基线**`UI_SYSTEM/UI_SYSTEM.md`后台壳层、筛选区、表格、分页、Modal/Drawer
> **需求依据**
> - `PRD/TASK.md`US-PERMISSION-001~005
> - `PRD/权限管理/权限管理模块PRD.md`
> - `DATA_MODEL/DATA_MODEL_PERMISSION.md`
> - `PRD/权限管理/首页.md`
> - `PRD/权限管理/客源.md`
> - `PRD/权限管理/房源-二手租赁.md`
> **竞品截图参考**
> - `screenshots/权限管理/权限管理-人员列表.png`
> - `screenshots/权限管理/权限管理-批量设置角色.png`
> - `screenshots/权限管理/权限管理-人员编辑特定权限.png`
> - `screenshots/权限管理/权限管理-修改个人权限-客源.png`
> - `screenshots/权限管理/角色管理-角色列表.png`
> - `screenshots/权限管理/角色管理-添加角色1.png`
> - `screenshots/权限管理/角色管理-修改角色.png`
---
## 1. 目标与范围
### 1.1 页面目标
本页用于完成权限管理模块 MVP 主链路:
1. **角色配置US-PERMISSION-001**
- 角色列表(预设 + 自定义)
- 新增自定义角色
- 预设角色不可删
- 可进入角色权限配置抽屉
2. **人员权限列表管理US-PERMISSION-002**
- 按姓名/工号、部门、角色、职务检索
- 列表展示角色、管理范围、不一致标记
3. **批量设置角色US-PERMISSION-003**
- 勾选员工后批量赋角色
- 覆盖个人权限提醒
4. **功能权限控制US-PERMISSION-004**
- 人员权限编辑页支持模块级开关 + 权限项配置
- 模块关闭时视为菜单隐藏
5. **数据权限控制US-PERMISSION-005**
- 范围型权限(本人/本组/本门店/本区域/本大区/全公司)
- 管理范围详情弹窗
### 1.2 任务边界
- ✅ 包含:权限管理 Tab、角色管理 Tab、批量角色弹窗、个人权限抽屉、权限项详情抽屉、角色新增弹窗、角色配置抽屉、范围详情弹窗、分页/空态/Toast
- ✅ 包含:必填校验、角色唯一性校验、预设角色删除限制、批量按钮禁用态
- ⛔ 不包含:真实权限后端、真实 Redis 失效、真实 403 路由拦截、真实日志系统
---
## 2. 信息架构
### 2.1 页面骨架
- **Top Bar**:系统一级导航(人事主入口高亮)
- **Sidebar**:组织人事二级菜单(权限管理高亮)
- **Main Content**
1. 面包屑:`人事OA / 组织人事 / 权限管理`
2. 主 Tab`权限管理`(人员维度)/ `角色管理`(角色维度)
### 2.2 权限管理 Tab人员维度
1. 筛选区
- 姓名/工号
- 员工部门
- 角色
- 职务名称
- 权限与角色权限不一致(快捷筛选)
2. 操作区
- 批量设置角色
- 导出
3. 人员表格
- 复选框、员工姓名、工号、部门、职务、角色、管理范围(详情)、操作
4. 行操作
- 修改权限
- 复制角色
- 扩充范围
- 范围
5. 分页区
### 2.3 角色管理 Tab角色维度
1. 筛选区
- 角色名称
- 角色类别
- 修改时间范围
2. 操作区
- 新增角色
- 批量删除角色
3. 角色表格
- 复选框、角色名称、角色类别、应用人数(查看)、引用角色、创建时间、修改时间、操作
4. 行操作
- 编辑(进入角色权限配置)
- 删除(预设角色禁删)
- 修改日志
### 2.4 关键弹层
- 批量设置角色 Modal
- 新增角色 Modal
- 人员权限编辑 Drawer
- 权限项详情 Drawer显示角色应用人数及名单
- 管理范围详情 Modal
- 角色权限配置 Drawer
---
## 3. 关键交互与校验
### 3.1 批量设置角色US-PERMISSION-003
- 未勾选员工时按钮禁用
- 打开弹窗后 `角色` 为必填
- 若选中员工存在个人覆盖权限,显示提示:
- `该操作将覆盖所选员工的个人自定义权限,请确认`
- 提交成功:
- 批量更新角色
- 清除个人不一致标记
- Toast 成功提示
### 3.2 新增角色US-PERMISSION-001
- 必填字段:
- 角色名称
- 角色类别
- 校验:
- 角色名称同租户唯一
- 成功后:
- 角色入列表
- 默认可进入权限配置抽屉
### 3.3 删除角色US-PERMISSION-001
- 预设角色 (`isBuiltin=true`) 禁止删除
- 应用人数 > 0 时禁止删除
- 删除成功后刷新列表并 Toast
### 3.4 人员权限编辑US-PERMISSION-004
- 左侧模块树切换,右侧权限项按分组展示
- 模块总开关关闭后,该模块权限项置灰(模拟菜单隐藏)
- 权限项支持三类控件:
- 开关型BOOLEAN
- 范围型SCOPE
- 数值型INTEGER
- 点击 `编辑` 打开单项详情抽屉
- 保存后:
- 标记该员工为“权限与角色不一致”
- 人员列表可被快捷筛出
### 3.5 数据范围与管理范围US-PERMISSION-005
- 人员列表 `管理范围` 列展示范围摘要
- 点击 `详情` 打开范围详情弹窗
- 范围项支持:`无 / 本人 / 本组 / 本门店 / 本区域 / 本大区 / 全公司`
---
## 4. 状态矩阵
| 状态 | 触发 | 页面反馈 |
|---|---|---|
| 默认态 | 页面初次进入 | 权限管理 Tab 默认选中 |
| 查询态 | 输入筛选后点击查询 | 列表按条件过滤 |
| 空结果 | 条件无匹配 | 表格空态文案“暂无匹配人员/角色” |
| 勾选态 | 勾选员工/角色 | 批量按钮启用 |
| 批量角色校验失败 | 角色未选 | 字段下错误文案 |
| 新增角色校验失败 | 名称/类别为空或重名 | 字段错误文案 |
| 删除受限 | 内置角色/有应用人数 | Toast 错误提示 |
| 权限保存成功 | 个人或角色权限保存 | 列表状态更新 + Toast |
| 主题策略 | 后台统一浅色体系 | 页面内不包含 Light/Dark/System 控件 |
---
## 5. 字段与数据模型映射DATA_MODEL_PERMISSION
| UI 字段 | 数据模型字段 |
|---|---|
| 角色名称 | `roles.name` |
| 角色类别 | `roles.category` |
| 角色来源模板 | `roles.template_role_id` |
| 是否内置角色 | `roles.is_system_builtin` |
| 员工角色关联 | `staff_roles.staff_id / role_id / is_primary` |
| 个人权限覆盖 | `staff_permission_overrides.*` |
| 权限定义 | `permission_defs.code / value_type / default_value` |
| 角色权限值 | `role_permissions.value` |
| 员工管理范围 | `staff_data_scopes.scope_type / org_unit_id` |
| 权限变更日志入口 | `permission_change_logs`(本页仅展示入口) |
---
## 6. 可访问性与实现规范
- 表格头部使用 `<th scope="col">`
- 弹窗可通过 `Esc` 关闭
- 必填错误使用明确文本,不仅依赖颜色
- 按钮禁用态提供 `disabled` + 视觉弱化
- 行内链接均保留可点击区域(>= 28px 高)
- 保持后台浅色设计,不加入主题切换组件
---
## 7. 验收清单任务08
- [x] 覆盖 US-PERMISSION-001角色列表 + 新增角色 + 预设角色不可删
- [x] 覆盖 US-PERMISSION-002人员权限列表筛选、分页、操作入口
- [x] 覆盖 US-PERMISSION-003批量设置角色弹窗 + 覆盖提醒
- [x] 覆盖 US-PERMISSION-004模块级开关 + 权限项编辑 + 保存
- [x] 覆盖 US-PERMISSION-005范围型权限 + 管理范围详情
- [ ] 控制台 0 报错(待本地预览验证)
---
## 8. 后续衔接
- 任务08评审后进入任务09系统配置
- 权限管理结果将与组织人事(员工/部门)及后续业务模块菜单展示联动