4.1 KiB
4.1 KiB
工单菜单路径配置错误修复说明
问题根源
找到了路由跳转问题的真正原因!问题出在数据库菜单配置中。
错误的菜单配置
工单管理(父菜单)
├─ menu_id: 2098
├─ menu_name: 工单管理
├─ path: testWorkOrder ❌ 错误!应该是 test_work_order
└─ menu_type: M (目录)
测试工单(子菜单)
├─ menu_id: 2092
├─ menu_name: 测试工单
├─ path: test_work_order ✅ 正确
├─ component: system/test_work_order/index ✅ 正确
└─ menu_type: C (菜单)
问题分析
- 父菜单路径错误:
testWorkOrder(驼峰命名) - 子菜单路径正确:
test_work_order(下划线命名) - 路径不一致导致路由匹配混乱
当点击"测试中"按钮时,Vue Router 尝试匹配路由,但由于父菜单路径是 testWorkOrder,导致生成了错误的 URL:
http://127.0.0.1/testWorkOrder/testOrder01?page=work_order&state=0
修复方案
方法1:执行SQL脚本(推荐)
运行 fix_workorder_menu_path.sql 脚本:
UPDATE sys_menu
SET
path = 'test_work_order',
update_time = NOW()
WHERE menu_id = 2098;
方法2:在后台管理界面修改
- 登录后台管理系统
- 进入"系统管理" -> "菜单管理"
- 找到"工单管理"菜单(menu_id: 2098)
- 点击"修改"
- 将"路由地址"从
testWorkOrder改为test_work_order - 点击"确定"保存
修复步骤
1. 执行SQL修复脚本
mysql -h127.0.0.1 -P3306 -uroot -p123456 ry-fastapi < fix_workorder_menu_path.sql
2. 清除后端缓存
如果后端有菜单缓存,需要重启后端服务:
# 停止后端服务
# 重新启动后端服务
cd ruoyi-fastapi-backend
python main.py
3. 清除前端缓存
- 按
Ctrl + Shift + R强制刷新页面 - 或者清除浏览器缓存
4. 重新登录
- 退出当前登录
- 重新登录系统
- 这样可以重新加载菜单配置
验证步骤
1. 检查菜单配置
SELECT
menu_id,
menu_name,
parent_id,
path,
component,
menu_type
FROM sys_menu
WHERE menu_id IN (2098, 2092);
预期结果:
menu_id | menu_name | parent_id | path | component | menu_type
--------|-----------|-----------|-----------------|--------------------------------|----------
2098 | 工单管理 | 0 | test_work_order | (空) | M
2092 | 测试工单 | 2098 | test_work_order | system/test_work_order/index | C
2. 测试路由跳转
- 访问工单管理页面
- URL 应该是:
http://127.0.0.1/system/test_work_order - 点击"测试中"按钮
- URL 应该保持不变
- 数据列表正确显示 testStep=1 的工单
为什么会出现这个问题?
命名规范不一致
- 数据库表名:使用下划线命名
test_work_order - 前端组件路径:使用下划线命名
system/test_work_order/index - 菜单路径:应该使用下划线命名
test_work_order - 错误配置:使用了驼峰命名
testWorkOrder
建议的命名规范
在整个系统中统一使用下划线命名:
- 数据库表名:
test_work_order - API路径:
/system/test_work_order - 前端路由:
/system/test_work_order - 菜单路径:
test_work_order - 组件路径:
system/test_work_order/index
相关文件
fix_workorder_menu_path.sql- SQL修复脚本check_menu_routes.sql- 菜单配置查询脚本工单页面路由跳转问题诊断.md- 详细诊断文档工单页面路由跳转问题修复说明.md- 之前的修复说明(删除了错误的路由配置)
注意事项
- 必须修改数据库菜单配置:这是问题的根源
- 必须重新登录:菜单配置在登录时加载
- 必须清除缓存:前端和后端都可能有缓存
- 检查其他菜单:确保其他菜单的路径配置也是正确的
完整的修复清单
- 删除 router/index.js 中的错误路由配置
- 修改数据库菜单配置(menu_id: 2098)
- 重启后端服务
- 清除浏览器缓存
- 重新登录系统
- 测试路由跳转功能