# 菜单修改说明 ## 问题描述 需要修改侧边栏菜单: - 删除第一个"test"菜单项 - 将第二个"test"菜单项改为"系统管理" ## 解决方案 菜单数据存储在数据库的 `sys_menu` 表中,需要通过SQL语句直接修改数据库。 ## 执行步骤 ### 1. 查看当前菜单结构 ```sql SELECT id, parent_id, name, type, sort, icon FROM sys_menu WHERE is_delete = 0 ORDER BY sort; ``` ### 2. 查看所有"test"菜单项 ```sql 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语句: ```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. 验证修改结果 ```sql 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`: 父菜单ID(0表示顶级菜单) - `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` 修改完成后,用户需要重新登录或刷新页面才能看到新的菜单结构。