ETest-Vue-FastAPI/快速修复工单路由问题.md

139 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

2026-01-09 10:05:35 +08:00
# 快速修复工单路由问题
## 问题现象
点击"测试中"或"已完成"按钮时URL跳转到
```
http://123.56.98.4:8081/test_work_order/testWorkOrder02?page=work_order&state=1
```
应该是:
```
http://123.56.98.4:8081/system/test_work_order?state=1
```
## 快速修复3步
### 第1步执行SQL修复脚本
在数据库客户端如Navicat、DBeaver中执行
```bash
mysql -u your_username -p your_database < fix_workorder_routing_complete.sql
```
或者直接复制以下SQL到数据库客户端执行
```sql
-- 删除错误的子菜单
DELETE FROM sys_menu
WHERE parent_id = 2098
AND menu_type = 'C'
AND menu_name IN ('进行中', '已完成', '测试中', '待领取', '一审中', '二审中', '三审中', '全部工单');
-- 删除错误路径的菜单
DELETE FROM sys_menu
WHERE parent_id = 2098
AND path IN ('testOrder01', 'testWorkOrder02');
-- 修复父菜单路径
UPDATE sys_menu
SET path = 'test_work_order', update_time = NOW()
WHERE menu_id = 2098;
-- 验证结果(应该只有一个子菜单"测试工单"
SELECT menu_id, menu_name, path, component
FROM sys_menu
WHERE parent_id = 2098;
```
### 第2步清除缓存
**如果使用Redis**
```bash
redis-cli
FLUSHDB
exit
```
**重启后端服务**
```bash
# 停止后端服务
# 启动后端服务
```
### 第3步清除浏览器缓存并重新登录
1.`Ctrl + Shift + R` 强制刷新页面
2. 退出登录
3. 重新登录系统
## 测试验证
### 测试1菜单导航
- 点击左侧菜单"工单管理" → "测试工单"
- ✅ URL应该是`http://123.56.98.4:8081/system/test_work_order`
### 测试2状态筛选按钮
- 点击"测试中"按钮
- ✅ URL保持不变不跳转
- ✅ 只显示 testStep=1 的工单
- 点击"已完成"按钮
- ✅ URL保持不变不跳转
- ✅ 只显示 testStep=5 的工单
### 测试3URL参数
- 访问:`http://123.56.98.4:8081/system/test_work_order?state=0`
- ✅ 显示测试中的工单
- 访问:`http://123.56.98.4:8081/system/test_work_order?state=1`
- ✅ 显示已完成的工单
## 如果还有问题
### 问题1删除后还是跳转错误
**原因**:缓存未清除
**解决**
1. 确认已清除Redis缓存
2. 确认已重启后端服务
3. 确认已清除浏览器缓存
4. 确认已重新登录
### 问题2找不到菜单
**原因**:误删了正确的菜单
**解决**:恢复备份或重新添加菜单
### 问题3权限不足
**原因**:菜单权限配置错误
**解决**:检查菜单的 `perms` 字段是否为 `system:test_work_order:list`
## 诊断命令
如果修复后还有问题运行以下SQL诊断
```sql
-- 查看工单管理的所有菜单
SELECT
menu_id,
menu_name,
parent_id,
path,
component,
query,
menu_type
FROM sys_menu
WHERE menu_id = 2098 OR parent_id = 2098
ORDER BY parent_id, order_num;
```
**正确的结果应该是**
- 1个父菜单工单管理menu_id=2098, path=test_work_order
- 1个子菜单测试工单menu_id=2092, path=test_work_order, component=system/test_work_order/index
## 相关文件
- `fix_workorder_routing_complete.sql` - 一键修复脚本
- `check_workorder_submenu.sql` - 诊断脚本
- `工单路由跳转问题完整修复方案.md` - 详细说明