HaniBlindBox/docs/后台管理系统-Bug清单.md
2026-01-05 10:30:19 +08:00

156 lines
6.7 KiB
Markdown
Raw 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.

# 后台管理系统 Bug 清单
> 更新时间2026-01-05
> 涉及模块:角色管理、部门管理、管理员管理
> 状态:✅ 已全部修复
---
## 一、后端 API 缺失问题
### BUG-001部门菜单获取接口缺失 ✅ 已修复
- **严重程度**:🔴 高
- **模块**:部门管理
- **问题描述**:前端调用 `GET /api/admin/departments/{id}/menus` 获取部门已分配的菜单,但后端没有实现该接口
- **修复内容**
1.`IDepartmentService` 添加 `GetMenuIdsAsync(long departmentId)` 方法
2.`DepartmentService` 实现该方法
3.`DepartmentController` 添加 `[HttpGet("{id:long}/menus")]` 接口
---
## 二、前后端字段不匹配问题
### BUG-002管理员查询参数不匹配 ✅ 已修复
- **严重程度**:🔴 高
- **模块**:管理员管理
- **问题描述**:前端使用 `keyword` 字段进行模糊搜索,后端期望 `Username`、`RealName`、`Phone` 分开的字段
- **修复内容**
1.`AdminUserQueryRequest` 添加 `Keyword` 字段,移除 `Username`、`RealName`、`Phone`
2.`AdminUserService.GetListAsync` 实现对用户名、姓名、手机号的模糊搜索
### BUG-003管理员列表角色字段格式不匹配 ✅ 已修复
- **严重程度**:🔴 高
- **模块**:管理员管理
- **问题描述**:前端期望 `roles` 是对象数组,后端返回的是两个独立数组
- **修复内容**
1.`AdminUserDto` 添加 `Roles` 属性(`List<AdminUserRoleDto>`
2. 添加 `AdminUserRoleDto` 类(包含 Id 和 Name
3.`AdminUserService` 中填充 `Roles` 属性
### BUG-004管理员列表时间字段名不匹配 ✅ 已修复
- **严重程度**:🟡 中
- **模块**:管理员管理
- **问题描述**:前端期望 `lastLoginAt`,后端返回 `LastLoginTime`
- **修复内容**
1. 前端 `adminUser.ts` 接口定义 `lastLoginAt``lastLoginTime`
2. 前端 `user/index.vue` 表格列绑定 `lastLoginAt``lastLoginTime`
---
## 三、功能逻辑问题
### BUG-005权限编码不匹配导致按钮不显示 ✅ 已修复
- **严重程度**:🔴 高
- **模块**:角色管理、部门管理、管理员管理
- **问题描述**:多个页面的操作按钮因权限编码不匹配而不显示(前端用连字符,后端用下划线)
- **修复内容**:前端统一改为下划线格式
- `role/index.vue`: `role:assign-menu``role:assign_menu`, `role:assign-permission``role:assign_permission`
- `department/index.vue`: `department:assign-menu``department:assign_menu`
- `user/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"` 属性
---
## 五、修复清单
### 后端修改 ✅
1.**DepartmentController.cs** - 添加获取部门菜单接口 `GET /{id}/menus`
2.**IDepartmentService.cs** - 添加 `GetMenuIdsAsync` 方法声明
3.**DepartmentService.cs** - 实现 `GetMenuIdsAsync` 方法
4.**AdminUserQueryRequest.cs** - 添加 `Keyword` 字段,移除分开的字段
5.**AdminUserService.cs** - 修改查询逻辑支持 `Keyword` 模糊搜索
6.**AdminUserDto.cs** - 添加 `Roles` 属性和 `AdminUserRoleDto`
7.**AdminUserService.cs** - 修改映射逻辑填充 `Roles`
8.**DataSeeder.cs** - 添加 `user:assign_menu` 权限
### 前端修改 ✅
1.**role/index.vue** - 权限编码改为下划线格式
2.**department/index.vue** - 权限编码改为下划线格式,添加 `destroy-on-close`
3.**user/index.vue** - 权限编码改为下划线格式,时间字段名修改
4.**adminUser.ts** - 修改 `AdminUser` 接口,`lastLoginAt` → `lastLoginTime`
---
## 六、测试验证
修复完成后需要验证:
- [ ] 角色管理 - 分配菜单能正确加载已勾选项
- [ ] 角色管理 - 分配菜单能正确保存
- [ ] 角色管理 - 分配权限能正确加载和保存
- [ ] 部门管理 - 分配菜单能正确加载已勾选项
- [ ] 部门管理 - 分配菜单能正确保存
- [ ] 管理员管理 - 列表搜索功能正常
- [ ] 管理员管理 - 角色列正确显示
- [ ] 管理员管理 - 部门列正确显示
- [ ] 管理员管理 - 最后登录时间正确显示
- [ ] 管理员管理 - 分配角色能正确加载和保存
- [ ] 管理员管理 - 分配部门能正确加载和保存
- [ ] 管理员管理 - 分配专属菜单能正确加载和保存
- [ ] 新增管理员功能正常
- [ ] 编辑管理员功能正常