6.7 KiB
6.7 KiB
后台管理系统 Bug 清单
更新时间:2026-01-05 涉及模块:角色管理、部门管理、管理员管理 状态:✅ 已全部修复
一、后端 API 缺失问题
BUG-001:部门菜单获取接口缺失 ✅ 已修复
- 严重程度:🔴 高
- 模块:部门管理
- 问题描述:前端调用
GET /api/admin/departments/{id}/menus获取部门已分配的菜单,但后端没有实现该接口 - 修复内容:
- 在
IDepartmentService添加GetMenuIdsAsync(long departmentId)方法 - 在
DepartmentService实现该方法 - 在
DepartmentController添加[HttpGet("{id:long}/menus")]接口
- 在
二、前后端字段不匹配问题
BUG-002:管理员查询参数不匹配 ✅ 已修复
- 严重程度:🔴 高
- 模块:管理员管理
- 问题描述:前端使用
keyword字段进行模糊搜索,后端期望Username、RealName、Phone分开的字段 - 修复内容:
- 在
AdminUserQueryRequest添加Keyword字段,移除Username、RealName、Phone - 在
AdminUserService.GetListAsync实现对用户名、姓名、手机号的模糊搜索
- 在
BUG-003:管理员列表角色字段格式不匹配 ✅ 已修复
- 严重程度:🔴 高
- 模块:管理员管理
- 问题描述:前端期望
roles是对象数组,后端返回的是两个独立数组 - 修复内容:
- 在
AdminUserDto添加Roles属性(List<AdminUserRoleDto>) - 添加
AdminUserRoleDto类(包含 Id 和 Name) - 在
AdminUserService中填充Roles属性
- 在
BUG-004:管理员列表时间字段名不匹配 ✅ 已修复
- 严重程度:🟡 中
- 模块:管理员管理
- 问题描述:前端期望
lastLoginAt,后端返回LastLoginTime - 修复内容:
- 前端
adminUser.ts接口定义lastLoginAt→lastLoginTime - 前端
user/index.vue表格列绑定lastLoginAt→lastLoginTime
- 前端
三、功能逻辑问题
BUG-005:权限编码不匹配导致按钮不显示 ✅ 已修复
- 严重程度:🔴 高
- 模块:角色管理、部门管理、管理员管理
- 问题描述:多个页面的操作按钮因权限编码不匹配而不显示(前端用连字符,后端用下划线)
- 修复内容:前端统一改为下划线格式
role/index.vue:role:assign-menu→role:assign_menu,role:assign-permission→role:assign_permissiondepartment/index.vue:department:assign-menu→department:assign_menuuser/index.vue:user:assign-role→user:assign_role,user:assign-department→user:assign_department,user:assign-menu→user:assign_menu,user:reset-password→user:reset_password
BUG-006:管理员专属菜单权限未定义 ✅ 已修复
- 严重程度:🟡 中
- 模块:管理员管理
- 问题描述:前端使用
user:assign_menu权限控制"专属菜单"按钮,但后端 DataSeeder 中没有初始化该权限 - 修复内容:在
DataSeeder.cs中添加权限user:assign_menu
BUG-007:部门管理 - 分配菜单功能异常 ✅ 已修复
- 严重程度:🔴 高
- 模块:部门管理
- 问题描述:同 BUG-001,由于后端接口缺失,无法获取部门已分配的菜单
- 修复内容:见 BUG-001
BUG-008:管理员管理 - 无法查看用户详情 ✅ 已修复
- 严重程度:🟡 中
- 模块:管理员管理
- 问题描述:列表页面无法直观看到用户的角色、部门信息
- 修复内容:依赖 BUG-003 修复
四、数据展示问题
BUG-009:管理员列表 - 角色标签不显示 ✅ 已修复
- 严重程度:🔴 高
- 模块:管理员管理
- 问题描述:角色列的
el-tag无法正确渲染 - 修复内容:见 BUG-003
BUG-010:管理员列表 - 部门名称可能为空 ✅ 已确认正常
- 严重程度:🟡 中
- 模块:管理员管理
- 问题描述:部门列可能显示为空
- 确认结果:后端
AdminUserService已正确 Include Department 并填充DepartmentName
BUG-011:管理员列表 - 表头与数据列错位 ✅ 已修复
- 严重程度:🔴 高
- 模块:管理员管理
- 问题描述:表格表头和实际内容对应不上
- 修复内容:依赖 BUG-003、BUG-004 修复
BUG-012:管理员表单 - 邮箱不应该是必填项 ✅ 已确认正常
- 严重程度:🟢 低
- 模块:管理员管理
- 问题描述:新增/编辑管理员时,邮箱字段不应该是必填的
- 确认结果:前端
formRules中email字段只有格式验证,没有required: true
BUG-013:部门表单 - 新增时残留上次数据 ✅ 已修复
- 严重程度:🟡 中
- 模块:部门管理
- 问题描述:点击"新增部门"按钮时,表单中会显示上一次新增/编辑的数据
- 修复内容:在
el-dialog添加:destroy-on-close="true"属性
五、修复清单
后端修改 ✅
- ✅ DepartmentController.cs - 添加获取部门菜单接口
GET /{id}/menus - ✅ IDepartmentService.cs - 添加
GetMenuIdsAsync方法声明 - ✅ DepartmentService.cs - 实现
GetMenuIdsAsync方法 - ✅ AdminUserQueryRequest.cs - 添加
Keyword字段,移除分开的字段 - ✅ AdminUserService.cs - 修改查询逻辑支持
Keyword模糊搜索 - ✅ AdminUserDto.cs - 添加
Roles属性和AdminUserRoleDto类 - ✅ AdminUserService.cs - 修改映射逻辑填充
Roles - ✅ DataSeeder.cs - 添加
user:assign_menu权限
前端修改 ✅
- ✅ role/index.vue - 权限编码改为下划线格式
- ✅ department/index.vue - 权限编码改为下划线格式,添加
destroy-on-close - ✅ user/index.vue - 权限编码改为下划线格式,时间字段名修改
- ✅ adminUser.ts - 修改
AdminUser接口,lastLoginAt→lastLoginTime
六、测试验证
修复完成后需要验证:
- 角色管理 - 分配菜单能正确加载已勾选项
- 角色管理 - 分配菜单能正确保存
- 角色管理 - 分配权限能正确加载和保存
- 部门管理 - 分配菜单能正确加载已勾选项
- 部门管理 - 分配菜单能正确保存
- 管理员管理 - 列表搜索功能正常
- 管理员管理 - 角色列正确显示
- 管理员管理 - 部门列正确显示
- 管理员管理 - 最后登录时间正确显示
- 管理员管理 - 分配角色能正确加载和保存
- 管理员管理 - 分配部门能正确加载和保存
- 管理员管理 - 分配专属菜单能正确加载和保存
- 新增管理员功能正常
- 编辑管理员功能正常