3.8 KiB
3.8 KiB
RBAC权限管理前端设计方案
Date: 2026-03-21 Status: Approved Type: Frontend Design
整体架构:双层权限体系
| 层级 | 管理方式 | 说明 |
|---|---|---|
| 系统层 | 管理员手动配置 | 权限、角色、菜单分配 |
| 业务层 | 自动分配 | 用户加入项目时自动赋予对应角色权限 |
一、系统管理员功能(配置权限和角色)
1. 权限管理 /system/permissions
功能清单:
- 权限列表(按类型筛选:菜单MENU/按钮BUTTON/API)
- 新建权限(code, name, type, resource, method)
- 编辑权限
- 删除权限
- 权限与角色关联查看
数据结构:
interface Permission {
id: string;
code: string; // 权限标识,如 user:create
name: string; // 权限名称
type: 'MENU' | 'BUTTON' | 'API';
resource: string; // 资源路径
method: string; // HTTP方法
parentCode?: string; // 父级权限
sortOrder: number;
}
2. 角色管理 /system/roles
功能清单:
- 角色列表(按类型筛选:SYSTEM/PROJECT/DEPARTMENT)
- 创建角色:
- 角色代码(唯一)
- 角色名称
- 角色类型
- 数据权限范围(ALL/PROJECT/SELF)
- 关联权限(多选树)
- 编辑角色
- 删除角色
数据结构:
interface Role {
id: string;
code: string; // 角色标识
name: string; // 角色名称
type: 'SYSTEM' | 'PROJECT' | 'DEPARTMENT';
dataScope: 'ALL' | 'PROJECT' | 'SELF';
permissions: Permission[];
status: 'ENABLED' | 'DISABLED';
}
3. 用户角色分配 /system/users
功能清单:
- 用户列表(分页、搜索)
- 查看用户角色
- 分配/移除用户角色
- 查看用户项目参与情况
4. 操作审计日志 /system/audit
功能清单:
- 权限变更日志
- 角色分配日志
- 日志筛选(操作类型、时间范围、操作用户)
二、业务自动授权(基于项目角色)
项目成员管理 项目详情页 → 成员tab
功能清单:
- 成员列表(显示用户名、角色、项目角色)
- 添加成员:
- 选择用户
- 设置项目角色(leader/member/viewer)
- 自动分配对应权限
- 移除成员(自动回收权限)
- 修改成员角色
项目角色权限对照:
| 项目角色 | 自动获得权限 |
|---|---|
| leader | 项目全部操作权限 |
| member | 项目基础功能权限 |
| viewer | 项目只读权限 |
三、页面结构
/system
├── /permissions # 权限管理
│ └── /:id/edit # 编辑权限
├── /roles # 角色管理
│ ├── /:id/edit # 编辑角色
│ └── /new # 新建角色
├── /users # 用户管理
│ └── /:id # 用户详情/角色分配
└── /audit # 审计日志
/projects
└── /:id/members # 项目成员管理(在项目详情页)
四、技术实现
技术栈:
- Vue 3 + TypeScript
- Vite
- Ant Design Vue(复用现有组件库)
- Pinia(状态管理)
API对接:
- GET
/api/permissions- 权限列表 - POST/PUT/DELETE
/api/permissions - GET
/api/roles- 角色列表 - POST/PUT/DELETE
/api/roles - GET
/api/users- 用户列表 - GET
/api/users/{id}/roles- 用户角色 - POST
/api/users/{id}/roles- 分配角色 - GET
/api/users/{id}/projects- 用户项目参与 - POST
/api/users/{id}/projects- 添加到项目 - DELETE
/api/users/{id}/projects/{projectId}- 从项目移除
五、组件清单
| 组件 | 说明 |
|---|---|
| PermissionTree | 权限树形选择器 |
| RoleSelect | 角色下拉选择 |
| DataScopeSelect | 数据权限范围选择 |
| UserProjectList | 用户项目参与列表 |
| AuditLogTable | 审计日志表格 |