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

150 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 工单菜单错误子菜单修复说明
## 问题根源(已找到!)
在数据库菜单配置中,工单管理菜单下有一个**错误的子菜单**
```
菜单名称:进行中
上级菜单:工单管理
菜单类型菜单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.**错误的子菜单导致路由跳转** - 需要删除
删除这个错误的"进行中"子菜单后,路由跳转问题应该就完全解决了!