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

3.2 KiB
Raw Blame History

快速修复工单路由问题

问题现象

点击"测试中"或"已完成"按钮时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中执行

mysql -u your_username -p your_database < fix_workorder_routing_complete.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

redis-cli
FLUSHDB
exit

重启后端服务

# 停止后端服务
# 启动后端服务

第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诊断

-- 查看工单管理的所有菜单
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 - 详细说明