113 lines
5.0 KiB
Markdown
113 lines
5.0 KiB
Markdown
# 后台管理系统 - 功能缺失清单
|
||
|
||
> 更新时间:2026-01-05
|
||
> 说明:记录系统中尚未实现但需要的功能
|
||
|
||
---
|
||
|
||
## ~~FEATURE-001:缺少权限管理页面~~ ✅ 已完成
|
||
|
||
- **优先级**:🟡 中
|
||
- **模块**:系统管理
|
||
- **问题描述**:系统没有权限管理页面,无法可视化管理权限数据
|
||
|
||
### 完成状态
|
||
- ✅ 后端有 `PermissionController` 提供 API(已扩展CRUD接口)
|
||
- ✅ 后端有 `permissions` 表存储权限数据
|
||
- ✅ 权限数据通过 `DataSeeder.cs` 初始化(已添加权限管理相关权限)
|
||
- ✅ 前端权限管理页面已创建 (`views/system/permission/index.vue`)
|
||
- ✅ 前端API已更新 (`api/permission.ts`)
|
||
|
||
### 实现功能
|
||
1. 权限列表(按模块分组显示,支持折叠展开)
|
||
2. 新增权限(支持自定义模块)
|
||
3. 编辑权限(名称、模块、描述)
|
||
4. 删除权限(会同时删除角色关联)
|
||
5. 搜索过滤(按关键词、模块筛选)
|
||
|
||
### 新增文件
|
||
- `server/HoneyBox/src/HoneyBox.Admin/Models/Permission/CreatePermissionRequest.cs`
|
||
- `server/HoneyBox/src/HoneyBox.Admin/Models/Permission/UpdatePermissionRequest.cs`
|
||
- `server/HoneyBox/src/HoneyBox.Admin/admin-web/src/views/system/permission/index.vue`
|
||
- `server/HoneyBox/src/HoneyBox.Admin/Data/Migrations/add_permission_management.sql`
|
||
|
||
### 部署说明
|
||
对于已有数据库,需要执行 `add_permission_management.sql` 脚本添加权限管理相关数据。
|
||
|
||
---
|
||
|
||
## 权限编码对照表
|
||
|
||
### 当前系统已定义的权限(DataSeeder.cs)
|
||
|
||
| 模块 | 权限编码 | 权限名称 |
|
||
|------|----------|----------|
|
||
| **菜单管理** | `menu:list` | 菜单列表 |
|
||
| | `menu:detail` | 菜单详情 |
|
||
| | `menu:create` | 创建菜单 |
|
||
| | `menu:update` | 更新菜单 |
|
||
| | `menu:delete` | 删除菜单 |
|
||
| **角色管理** | `role:list` | 角色列表 |
|
||
| | `role:detail` | 角色详情 |
|
||
| | `role:create` | 创建角色 |
|
||
| | `role:update` | 更新角色 |
|
||
| | `role:delete` | 删除角色 |
|
||
| | `role:assign_menu` | 分配菜单 |
|
||
| | `role:assign_permission` | 分配权限 |
|
||
| **权限管理** | `permission:list` | 权限列表 |
|
||
| | `permission:detail` | 权限详情 |
|
||
| | `permission:create` | 创建权限 |
|
||
| | `permission:update` | 更新权限 |
|
||
| | `permission:delete` | 删除权限 |
|
||
| **管理员管理** | `user:list` | 管理员列表 |
|
||
| | `user:detail` | 管理员详情 |
|
||
| | `user:create` | 创建管理员 |
|
||
| | `user:update` | 更新管理员 |
|
||
| | `user:delete` | 删除管理员 |
|
||
| | `user:assign_role` | 分配角色 |
|
||
| | `user:assign_department` | 分配部门 |
|
||
| | `user:assign_menu` | 分配专属菜单 |
|
||
| | `user:reset_password` | 重置密码 |
|
||
| **部门管理** | `department:list` | 部门列表 |
|
||
| | `department:detail` | 部门详情 |
|
||
| | `department:create` | 创建部门 |
|
||
| | `department:update` | 更新部门 |
|
||
| | `department:delete` | 删除部门 |
|
||
| | `department:assign_menu` | 分配菜单 |
|
||
| **操作日志** | `log:list` | 日志列表 |
|
||
| | `log:detail` | 日志详情 |
|
||
|
||
### 权限控制流程
|
||
|
||
```
|
||
┌─────────────┐ ┌─────────────┐ ┌─────────────────┐
|
||
│ 用户登录 │ ──▶ │ 获取用户角色 │ ──▶ │ 获取角色关联权限 │
|
||
└─────────────┘ └─────────────┘ └─────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ 返回 permissions 数组给前端 │
|
||
│ 超级管理员返回 ["*"] 表示拥有所有权限 │
|
||
└─────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ 前端 v-permission 指令判断按钮是否显示 │
|
||
│ 如果 permissions 包含 "*" 或 指定权限码,则显示按钮 │
|
||
└─────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 相关数据库表
|
||
|
||
| 表名 | 说明 |
|
||
|------|------|
|
||
| `permissions` | 权限定义表 |
|
||
| `roles` | 角色表 |
|
||
| `role_permissions` | 角色-权限关联表 |
|
||
| `role_menus` | 角色-菜单关联表 |
|
||
| `admin_users` | 管理员表 |
|
||
| `admin_user_roles` | 管理员-角色关联表 |
|
||
| `admin_user_menus` | 管理员-专属菜单关联表 |
|
||
| `departments` | 部门表 |
|
||
| `department_menus` | 部门-菜单关联表 |
|