HaniBlindBox/docs/后台管理系统-功能缺失清单.md
2026-01-05 23:22:20 +08:00

113 lines
5.0 KiB
Markdown
Raw Permalink 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.

# 后台管理系统 - 功能缺失清单
> 更新时间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` | 部门-菜单关联表 |