|
|
# 权限管理
|
|
|
|
|
|
> 模块编码:permission
|
|
|
> 端侧:Web专属(仅超级管理员)
|
|
|
> 关联文档:01-模块划分 §8 / 02-功能清单-超级管理员 §2 / 03-业务流转逻辑-超级管理员 §4~6 / 05-接口规范 §4.2~4.3 / 06-项目技术要求 §4.2
|
|
|
|
|
|
## 功能概览
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 菜单名称 | 权限管理 |
|
|
|
| 子菜单 | 角色管理、权限配置注册、权限审计日志 |
|
|
|
| 功能编号 | SA-P-01 ~ SA-P-10 |
|
|
|
| 权限编码前缀 | permission:role:* / permission:config:* |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面1:角色管理列表页
|
|
|
|
|
|
**页面编号**:SA-P-01-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/permission/roles
|
|
|
|
|
|
### 界面布局
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ [面包屑] 权限管理 > 角色管理 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [查询条件区] │
|
|
|
│ 角色名称[____] 适用范围[▼] 状态[▼] [查询] [重置] │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [操作栏] [新增角色] │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [列表区] │
|
|
|
│ 序号 | 角色名称 | 适用范围 | 预设模板 | 关联账号数 | 状态 | 操作 │
|
|
|
│ 1 | 医院查看 | 医院 | 是 | 5 | 启用 | 编辑 停用│
|
|
|
│ 2 | 巡检主管 | 物业下属| 否 | 8 | 启用 | 编辑 停用│
|
|
|
│ 3 | 维修员 | 物业下属| 是 | 23 | 启用 | 编辑 停用│
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [分页] 共15条 每页[20▼] < 1 > │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### 查询条件
|
|
|
|
|
|
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|
|
|
|--------|----------|------|--------|------|
|
|
|
| 角色名称 | 文本输入 | 否 | — | 模糊匹配 |
|
|
|
| 适用范围 | 下拉单选 | 否 | 全部 | 医院账号/物业管理员/物业下属 |
|
|
|
| 状态 | 下拉单选 | 否 | 全部 | 启用/停用 |
|
|
|
|
|
|
### 列表字段
|
|
|
|
|
|
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|
|
|
|------|--------|------|----------|------|
|
|
|
| 1 | 序号 | 60px | — | 自增 |
|
|
|
| 2 | 角色名称 | 150px | 是 | — |
|
|
|
| 3 | 适用范围 | 120px | 否 | 医院账号/物业管理员/物业下属 |
|
|
|
| 4 | 预设模板 | 80px | 否 | 是/否标签 |
|
|
|
| 5 | 关联账号数 | 100px | 是 | 点击查看关联账号列表 |
|
|
|
| 6 | 状态 | 80px | 是 | 启用/停用 |
|
|
|
| 7 | 操作 | 220px | — | 编辑/权限预览/停用/删除 |
|
|
|
|
|
|
### 操作按钮
|
|
|
|
|
|
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|
|
|
|------|----------|------|----------|------|
|
|
|
| 新增角色 | permission:role:create | 操作栏 | 始终 | 跳转新增页 |
|
|
|
| 编辑 | permission:role:update | 行操作 | 始终 | 跳转编辑页 |
|
|
|
| 权限预览 | permission:role:view | 行操作 | 始终 | 弹窗展示完整权限清单 |
|
|
|
| 停用 | permission:role:update | 行操作 | 状态=启用 | 二次确认 |
|
|
|
| 删除 | permission:role:delete | 行操作 | 关联账号数=0 | 二次确认 |
|
|
|
|
|
|
### 角色差异化视图
|
|
|
|
|
|
| 角色 | 可见按钮 | 数据范围 | 备注 |
|
|
|
|------|----------|----------|------|
|
|
|
| 超级管理员 | 全部按钮 | 全部角色 | — |
|
|
|
|
|
|
### API端点
|
|
|
|
|
|
| 页面操作 | API路径 | 方法 | 说明 |
|
|
|
|----------|---------|------|------|
|
|
|
| 列表查询 | /api/v1/roles | GET | 分页查询 |
|
|
|
| 停用角色 | /api/v1/roles/{id}/disable | PUT | — |
|
|
|
| 删除角色 | /api/v1/roles/{id} | DELETE | 仅无关联账号时可删 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面2:角色新增/编辑页
|
|
|
|
|
|
**页面编号**:SA-P-01-P02
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/permission/roles/create 或 /permission/roles/:id/edit
|
|
|
|
|
|
### 界面布局
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ [面包屑] 权限管理 > 角色管理 > 新增角色 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ ── 基本信息 ── │
|
|
|
│ 角色名称:[____________] │
|
|
|
│ 角色描述:[____________________________] │
|
|
|
│ 适用范围:[▼] (医院账号/物业管理员/物业下属) │
|
|
|
│ 选择预设模板:[▼可选] 选择后自动填充权限,可微调 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ ── 权限分配(四级树形勾选)── │
|
|
|
│ ☑ 功能菜单:在线报修 │
|
|
|
│ ├── ☑ 页面:工单列表 │
|
|
|
│ │ ├── ☑ 功能点:工单管理 │
|
|
|
│ │ │ ├── ☑ 查看 ☑ 新增 ☑ 编辑 │
|
|
|
│ │ │ ├── ☐ 删除 ☐ 审批 ☑ 导出 ☑ 分配 │
|
|
|
│ │ └── ☑ 功能点:批量操作 │
|
|
|
│ │ ├── ☑ 查看 ☐ 新增 ☐ 编辑 │
|
|
|
│ │ └── ☐ 删除 ☐ 审批 ☐ 导出 ☐ 分配 │
|
|
|
│ ├── ☑ 页面:工单详情 │
|
|
|
│ │ ├── ☑ 功能点:延期审批 │
|
|
|
│ │ │ ├── ☑ 查看 ☐ 新增 ☐ 编辑 │
|
|
|
│ │ │ └── ☐ 删除 ☑ 审批 ☐ 导出 ☐ 分配 │
|
|
|
│ │ └── ☑ 功能点:工单验收 │
|
|
|
│ │ ├── ☑ 查看 ☐ 新增 ☐ 编辑 │
|
|
|
│ │ └── ☐ 删除 ☑ 审批 ☐ 导出 ☐ 分配 │
|
|
|
│ └── ☐ 页面:报修类型管理 │
|
|
|
│ ... │
|
|
|
│ ☐ 功能菜单:巡检管理 │
|
|
|
│ ... │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [取消] [权限预览] [保存] │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### 表单字段(基本信息)
|
|
|
|
|
|
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|
|
|
|--------|----------|------|--------|----------|----------|
|
|
|
| 角色名称 | 文本输入 | 是 | — | 自填 | 最大30字,全局唯一 |
|
|
|
| 角色描述 | 多行文本 | 否 | — | 自填 | 最大200字 |
|
|
|
| 适用范围 | 下拉单选 | 是 | — | 固定选项 | 医院账号/物业管理员/物业下属 |
|
|
|
| 预设模板 | 下拉单选 | 否 | — | 预设模板列表 | 选择后自动填充权限 |
|
|
|
|
|
|
### 预设模板选项
|
|
|
|
|
|
| 模板名称 | 适用对象 | 典型权限 | 文档来源 |
|
|
|
|----------|----------|----------|----------|
|
|
|
| 物业管理员模板 | 物业公司管理员 | 全部日常业务管理权限 | 01 §8.4 |
|
|
|
| 主管模板 | 主管 | 本班组管理+审批+查看+导出 | 01 §8.4 |
|
|
|
| 班组长模板 | 班组长 | 本班组查看+分配+导出 | 01 §8.4 |
|
|
|
| 维修员模板 | 维修人员 | 接单+完工+延期申请 | 01 §8.4 |
|
|
|
| 巡检员模板 | 巡检人员 | 巡检执行+打卡+异常上报 | 01 §8.4 |
|
|
|
| 保洁员模板 | 保洁人员 | 保洁执行+打卡确认 | 01 §8.4 |
|
|
|
| 医院查看模板 | 医院账号 | 全部日常数据查看+合同+招标 | 01 §8.4 |
|
|
|
|
|
|
### 操作按钮
|
|
|
|
|
|
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|
|
|
|------|----------|------|----------|------|
|
|
|
| 权限预览 | permission:role:view | 底部操作栏 | 始终 | 弹窗展示已勾选的完整权限清单 |
|
|
|
| 保存 | permission:role:create/update | 底部操作栏 | 始终 | 保存后权限审计日志+实时生效 |
|
|
|
|
|
|
### 通知触发
|
|
|
|
|
|
| 触发操作 | 通知对象 | 通知方式 | 消息模板 | 文档来源 |
|
|
|
|----------|----------|----------|----------|----------|
|
|
|
| 权限变更 | 关联账号用户 | Redis Pub/Sub | 毫秒级刷新权限缓存,无需重新登录 | 03-超级管理员 §6 |
|
|
|
| 权限变更 | 关联账号用户 | 小程序 | 下次接口请求时返回新权限集 | 03-超级管理员 §6 |
|
|
|
|
|
|
### API端点
|
|
|
|
|
|
| 页面操作 | API路径 | 方法 | 说明 |
|
|
|
|----------|---------|------|------|
|
|
|
| 新增角色 | /api/v1/roles | POST | — |
|
|
|
| 编辑角色 | /api/v1/roles/{id} | PUT | — |
|
|
|
| 获取权限树 | /api/v1/permissions/tree | GET | 四级权限树结构 |
|
|
|
| 权限预览 | /api/v1/roles/{id}/permissions | GET | 已分配的完整权限列表 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面3:权限预览弹窗
|
|
|
|
|
|
**页面编号**:SA-P-06-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:弹窗形式
|
|
|
|
|
|
### 界面布局
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ 权限预览 — 巡检主管 [×] │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ ☑ 在线报修 │
|
|
|
│ ├─ ☑ 工单列表 │
|
|
|
│ │ ├─ ☑ 工单管理:查看 ✓ 新增 ✗ 编辑 ✓ 删除 ✗ 审批 ✓ 导出 ✓ 分配 ✗│
|
|
|
│ │ └─ ☐ 批量操作 │
|
|
|
│ ├─ ☑ 工单详情 │
|
|
|
│ │ ├─ ☑ 延期审批:查看 ✓ 审批 ✓ │
|
|
|
│ │ └─ ☑ 工单验收:查看 ✓ 审批 ✓ │
|
|
|
│ └─ ☐ 报修类型管理 │
|
|
|
│ ☑ 巡检管理 │
|
|
|
│ ├─ ☑ 巡检计划:查看 ✓ 新增 ✓ 编辑 ✓ │
|
|
|
│ ... │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [关闭] │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### 说明
|
|
|
|
|
|
- 展示角色当前已分配的完整权限清单
|
|
|
- 四级展开:功能菜单→页面→功能点→动作
|
|
|
- 每个动作用 ✓/✗ 标识是否有权限
|
|
|
- 支持搜索功能菜单/页面名称
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面4:权限配置注册页
|
|
|
|
|
|
**页面编号**:SA-P-10-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/permission/registry
|
|
|
|
|
|
### 界面布局
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ [面包屑] 权限管理 > 权限配置注册 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [说明] 此页面展示系统自动注册的权限配置(来源:IModulePlugin), │
|
|
|
│ 开发新增功能时自动同步,超级管理员可查看但不可手动编辑 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [查询条件区] │
|
|
|
│ 模块名称[____] 页面名称[____] [查询] [重置] │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [列表区] │
|
|
|
│ 模块编码 | 模块名称 | 页面编码 | 页面名称 | 功能点 | 可用动作 │
|
|
|
│ repair | 在线报修 | repair_list| 工单列表 | 工单管理 | 查看,新增..│
|
|
|
│ repair | 在线报修 | repair_detail|工单详情| 延期审批| 查看,审批 │
|
|
|
│ ... │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [分页] 共120条 每页[20▼] < 1 2 3 ... 6 > │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### 查询条件
|
|
|
|
|
|
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|
|
|
|--------|----------|------|--------|------|
|
|
|
| 模块名称 | 文本输入 | 否 | — | 模糊匹配 |
|
|
|
| 页面名称 | 文本输入 | 否 | — | 模糊匹配 |
|
|
|
|
|
|
### 列表字段
|
|
|
|
|
|
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|
|
|
|------|--------|------|----------|------|
|
|
|
| 1 | 模块编码 | 100px | 否 | — |
|
|
|
| 2 | 模块名称 | 100px | 否 | — |
|
|
|
| 3 | 页面编码 | 130px | 否 | — |
|
|
|
| 4 | 页面名称 | 120px | 否 | — |
|
|
|
| 5 | 功能点编码 | 140px | 否 | — |
|
|
|
| 6 | 功能点名称 | 120px | 否 | — |
|
|
|
| 7 | 可用动作 | 200px | 否 | view,create,update,delete,approve,export,assign |
|
|
|
|
|
|
### 操作按钮
|
|
|
|
|
|
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|
|
|
|------|----------|------|----------|------|
|
|
|
| — | — | — | — | 此页面只读,数据由IModulePlugin自动注册 |
|
|
|
|
|
|
### API端点
|
|
|
|
|
|
| 页面操作 | API路径 | 方法 | 说明 |
|
|
|
|----------|---------|------|------|
|
|
|
| 列表查询 | /api/v1/permissions/registry | GET | 查看已注册的权限配置 |
|
|
|
| 刷新 | /api/v1/permissions/registry/refresh | POST | 手动触发权限重新扫描 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面5:权限审计日志页
|
|
|
|
|
|
**页面编号**:SA-P-08-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/permission/audit-log
|
|
|
|
|
|
### 界面布局
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ [面包屑] 权限管理 > 权限审计日志 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [查询条件区] │
|
|
|
│ 操作人[____] 操作类型[▼] 角色[____] 日期[起始]~[结束] [查询] [重置]│
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [列表区] │
|
|
|
│ 序号 | 操作时间 | 操作人 | 操作类型 | 目标角色 | 变更详情 | 操作 │
|
|
|
│ 1 | 14:00 | admin | 权限修改 | 巡检主管 | [+2项][-1项]| 查看│
|
|
|
│ 2 | 11:30 | admin | 角色创建 | 保洁主管 | — | 查看│
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [分页] 共80条 每页[20▼] < 1 2 3 4 > │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### 查询条件
|
|
|
|
|
|
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|
|
|
|--------|----------|------|--------|------|
|
|
|
| 操作人 | 文本输入 | 否 | — | 模糊匹配 |
|
|
|
| 操作类型 | 下拉单选 | 否 | 全部 | 角色创建/权限修改/角色分配/角色移除 |
|
|
|
| 角色 | 文本输入 | 否 | — | 模糊匹配角色名称 |
|
|
|
| 日期范围 | 日期范围 | 否 | — | 操作时间范围 |
|
|
|
|
|
|
### 列表字段
|
|
|
|
|
|
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|
|
|
|------|--------|------|----------|------|
|
|
|
| 1 | 序号 | 60px | — | 自增 |
|
|
|
| 2 | 操作时间 | 150px | 是 | 默认倒序 |
|
|
|
| 3 | 操作人 | 100px | 否 | — |
|
|
|
| 4 | 操作类型 | 100px | 否 | 标签样式 |
|
|
|
| 5 | 目标角色 | 120px | 否 | — |
|
|
|
| 6 | 变更详情 | 120px | 否 | [+N项][-M项],简洁展示 |
|
|
|
| 7 | 操作 | 80px | — | 查看详情 |
|
|
|
|
|
|
### 操作按钮
|
|
|
|
|
|
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|
|
|
|------|----------|------|----------|------|
|
|
|
| 查看详情 | audit-log:permission:view | 行操作 | 始终 | 弹窗展示变更前后对比 |
|
|
|
|
|
|
### 审计日志详情弹窗
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ 权限变更详情 [×] │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ 角色:巡检主管 │
|
|
|
│ 操作人:超级管理员(admin) │
|
|
|
│ 操作时间:2026-04-16 14:00:00 │
|
|
|
│ 操作类型:权限修改 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ 变更对比: │
|
|
|
│ [+新增] 在线报修 → 工单详情 → 延期审批 → 审批 │
|
|
|
│ [+新增] 在线报修 → 工单列表 → 工单管理 → 导出 │
|
|
|
│ [-移除] 巡检管理 → 巡检计划 → 计划管理 → 删除 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [关闭] │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### API端点
|
|
|
|
|
|
| 页面操作 | API路径 | 方法 | 说明 |
|
|
|
|----------|---------|------|------|
|
|
|
| 列表查询 | /api/v1/audit-logs/permission | GET | 分页查询 |
|
|
|
| 详情查询 | /api/v1/audit-logs/permission/{id} | GET | 含变更前后对比 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 需求追溯
|
|
|
|
|
|
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|
|
|
|------------|----------|----------|----------|----------|
|
|
|
| SA-P-01 | 角色定义 | 02-超级管理员 §2 / 03-超级管理员 §4 | 创建角色→权限分配 | 账号管理(角色绑定) |
|
|
|
| SA-P-02 | 角色权限分配 | 02-超级管理员 §2 / 03-超级管理员 §4 / 01 §8.1 | 权限变更→审计日志+实时生效 | 权限审计日志 / 权限实时生效 |
|
|
|
| SA-P-03 | 角色管理 | 02-超级管理员 §2 | 停用→关联账号权限失效 | 账号管理(角色绑定) |
|
|
|
| SA-P-04 | 权限预设模板 | 02-超级管理员 §2 / 01 §8.4 | 选择模板→自动填充权限 | 角色新增页(模板选择) |
|
|
|
| SA-P-05 | 账号角色绑定 | 02-超级管理员 §2 / 03-超级管理员 §4 | 在账号管理中操作 | 账号管理 / 物业组织架构(下属角色分配) |
|
|
|
| SA-P-06 | 权限预览 | 02-超级管理员 §2 | 预览→确认权限分配 | 角色新增/编辑页 |
|
|
|
| SA-P-07 | 权限自动同步 | 02-超级管理员 §2 / 03-超级管理员 §5 / 01 §8.2 | IModulePlugin注册→权限树自动更新 | 权限配置注册页 |
|
|
|
| SA-P-08 | 权限审计日志 | 02-超级管理员 §2 / 03-超级管理员 §8.2 / 01 §8.5 | 权限变更→自动记录 | 操作日志 |
|
|
|
| SA-P-09 | 权限实时生效 | 02-超级管理员 §2 / 03-超级管理员 §6 / 01 §8.3 | Redis Pub/Sub毫秒级生效 | — |
|
|
|
| SA-P-10 | 权限配置注册 | 02-超级管理员 §2 / 03-超级管理员 §5 | 查看IModulePlugin注册的权限 | 05-接口规范 §4.2 |
|
|
|
|
|
|
## 业务规则
|
|
|
|
|
|
1. **四级权限粒度**:功能菜单→页面→功能点→动作,7种动作类型(view/create/update/delete/approve/export/assign)(来源:01 §8.1 / 06 §4.2)
|
|
|
2. **权限自动同步**:新模块通过IModulePlugin.getPermissionDefinitions()自动注册,权限管理页面自动渲染新可勾选项(来源:01 §8.2 / 05 §4.2)
|
|
|
3. **权限实时生效**:权限变更后通过Redis Pub/Sub毫秒级生效,无需重新登录(来源:01 §8.3 / 03-超级管理员 §6 / 06 §3.1)
|
|
|
4. **权限审计日志**:记录操作人、时间、类型、变更前后对比(来源:01 §8.5 / 03-超级管理员 §8.2)
|
|
|
5. **角色删除条件**:仅关联账号数为0时才可删除(来源:02-超级管理员 SA-P-03)
|
|
|
6. **预设模板使用**:创建角色时选择模板→系统自动填充权限→管理员微调后保存(来源:01 §8.4)
|
|
|
7. **权限配置表只读**:权限配置注册页数据来源于IModulePlugin自动注册,超管只可查看不可手动编辑(来源:03-超级管理员 §5)
|