# 后台管理系统 - 功能缺失清单

> 更新时间：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` | 部门-菜单关联表 |
