Files
cattleTransportation/tradeCattle/MENU_MODIFICATION_GUIDE.md
2025-10-21 17:29:52 +08:00

2.3 KiB
Raw Blame History

菜单修改说明

问题描述

需要修改侧边栏菜单:

  • 删除第一个"test"菜单项
  • 将第二个"test"菜单项改为"系统管理"

解决方案

菜单数据存储在数据库的 sys_menu 表中需要通过SQL语句直接修改数据库。

执行步骤

1. 查看当前菜单结构

SELECT id, parent_id, name, type, sort, icon 
FROM sys_menu 
WHERE is_delete = 0 
ORDER BY sort;

2. 查看所有"test"菜单项

SELECT id, parent_id, name, type, sort, icon 
FROM sys_menu 
WHERE name = 'test' AND is_delete = 0 
ORDER BY sort;

3. 执行修改

运行 update_menu_names_final.sql 文件中的SQL语句

-- 删除sort值最小的"test"菜单项
DELETE FROM sys_menu 
WHERE name = 'test' 
  AND parent_id = 0 
  AND is_delete = 0 
  AND sort = (
    SELECT min_sort FROM (
      SELECT MIN(sort) as min_sort 
      FROM sys_menu 
      WHERE name = 'test' AND parent_id = 0 AND is_delete = 0
    ) t
  );

-- 将剩余的"test"菜单项改为"系统管理"
UPDATE sys_menu 
SET name = '系统管理', 
    update_time = NOW() 
WHERE name = 'test' 
  AND parent_id = 0 
  AND is_delete = 0;

4. 验证修改结果

SELECT id, parent_id, name, type, sort, icon 
FROM sys_menu 
WHERE is_delete = 0 
ORDER BY sort;

注意事项

  1. 备份数据执行SQL前请先备份 sys_menu
  2. 权限检查确保有足够的数据库权限执行DELETE和UPDATE操作
  3. 测试环境:建议先在测试环境执行,确认无误后再在生产环境执行
  4. 前端缓存:修改后可能需要清除前端缓存或重新登录才能看到效果

菜单表结构说明

  • id: 菜单ID主键
  • parent_id: 父菜单ID0表示顶级菜单
  • name: 菜单显示名称
  • type: 菜单类型0-目录1-菜单2-按钮)
  • sort: 排序字段(数字越小越靠前)
  • icon: 菜单图标
  • is_delete: 是否删除0-未删除1-已删除)

前端影响

修改数据库后前端会通过以下API获取菜单

  • API: /getUserMenus
  • 前端文件: pc-cattle-transportation/src/store/permission.js
  • 菜单渲染: pc-cattle-transportation/src/components/layout/index.vue

修改完成后,用户需要重新登录或刷新页面才能看到新的菜单结构。