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

4.5 KiB
Raw Permalink Blame 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 脚本:

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. 错误的子菜单导致路由跳转 - 需要删除

删除这个错误的"进行中"子菜单后,路由跳转问题应该就完全解决了!