ETest-Vue-FastAPI/工单菜单错误子菜单修复说明.md

150 lines
4.5 KiB
Markdown
Raw Normal View History

# 工单菜单错误子菜单修复说明
## 问题根源(已找到!)
在数据库菜单配置中,工单管理菜单下有一个**错误的子菜单**
```
菜单名称:进行中
上级菜单:工单管理
菜单类型菜单C
路由地址testOrder01 ❌ 错误!
组件路径system/test_order/index ❌ 错误!指向了订单页面
路由参数:{"page":"work_order","state":0} ❌ 错误!
```
这就是导致点击"测试中"按钮时跳转到错误URL的根本原因
```
http://127.0.0.1/test_work_order/testOrder01?page=work_order&state=0
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^
父菜单路径 子菜单路径 路由参数
```
## 为什么会触发跳转?
1. 工单管理菜单(父菜单)的 path 是 `test_work_order`
2. "进行中"子菜单的 path 是 `testOrder01`
3. 路由参数是 `{"page":"work_order","state":0}`
4. 当点击按钮时Vue Router 可能匹配到了这个子菜单的路由
5. 导致跳转到:`/test_work_order/testOrder01?page=work_order&state=0`
## 修复方案
### 方案1删除这个错误的子菜单强烈推荐
**原因:**
- 工单管理页面已经有"测试中"按钮了,不需要这个子菜单
- 这个子菜单的配置完全错误
- 组件路径指向了订单页面,而不是工单页面
**操作步骤:**
1. 在后台管理界面,进入"系统管理" -> "菜单管理"
2. 找到"工单管理"菜单,展开子菜单
3. 找到"进行中"子菜单
4. 点击"删除"按钮
5. 确认删除
6. 重新登录系统
### 方案2隐藏这个子菜单
如果暂时不想删除,可以先隐藏:
**操作步骤:**
1. 在当前的"修改菜单"对话框中
2. 找到"显示状态"选项
3. 选择"隐藏"
4. 点击"确定"保存
5. 重新登录系统
### 方案3使用SQL删除
运行 `delete_wrong_submenu.sql` 脚本:
```bash
mysql -h127.0.0.1 -P3306 -uroot -p123456 ry-fastapi < delete_wrong_submenu.sql
```
## 检查是否还有其他错误的子菜单
在"工单管理"菜单下,可能还有其他类似的错误子菜单:
- 已完成
- 待领取
- 一审中
- 二审中
- 三审中
**检查方法:**
1. 在菜单管理中,展开"工单管理"菜单
2. 查看所有子菜单
3. 如果有类似的子菜单(路由地址不是 `test_work_order`),都应该删除或隐藏
**正确的菜单结构应该是:**
```
工单管理(目录 M
├─ 测试工单(菜单 C
├─ 测试工单查询(按钮 F
├─ 测试工单新增(按钮 F
├─ 测试工单修改(按钮 F
├─ 测试工单删除(按钮 F
└─ 测试工单导出(按钮 F
```
**不应该有的子菜单:**
- ❌ 进行中
- ❌ 已完成
- ❌ 待领取
- ❌ 一审中
- ❌ 二审中
- ❌ 三审中
这些状态筛选应该通过页面上的按钮来实现,而不是通过菜单。
## 修复后的验证步骤
### 1. 重新登录
删除或隐藏菜单后,必须重新登录系统,以重新加载菜单配置。
### 2. 测试路由跳转
1. 访问工单管理页面
2. URL 应该是:`http://127.0.0.1/system/test_work_order`
3. 点击"测试中"按钮
4. URL 应该保持不变
5. 数据列表应该显示 testStep=1 的工单
### 3. 检查浏览器控制台
打开浏览器开发者工具F12检查
- Console 标签:不应该有路由错误
- Network 标签API 请求应该正常
### 4. 测试所有按钮
依次点击以下按钮,验证都不会触发路由跳转:
- 全部工单
- 待领取
- 测试中
- 一审中
- 二审中
- 三审中
- 已完成
## 为什么会有这个错误的子菜单?
可能的原因:
1. **误操作**:在配置菜单时,错误地创建了子菜单
2. **复制粘贴错误**:从订单管理菜单复制配置时,没有修改正确
3. **需求变更**:最初的设计可能是通过菜单来切换状态,后来改为按钮,但忘记删除菜单
## 相关文件
- `delete_wrong_submenu.sql` - SQL删除脚本
- `check_workorder_submenu.sql` - 菜单配置查询脚本
- `工单按钮点击事件修复说明.md` - 按钮点击事件修复说明
- `工单菜单路径配置错误修复说明.md` - 菜单路径修复说明
## 总结
问题的完整链条:
1. ✅ 父菜单路径错误(`testWorkOrder` -> `test_work_order`- 已修复
2. ✅ 按钮点击事件需要阻止默认行为 - 已修复
3.**错误的子菜单导致路由跳转** - 需要删除
删除这个错误的"进行中"子菜单后,路由跳转问题应该就完全解决了!