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

5.0 KiB
Raw Blame History

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

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