2.3 KiB
2.3 KiB
菜单修改说明
问题描述
需要修改侧边栏菜单:
- 删除第一个"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;
注意事项
- 备份数据:执行SQL前请先备份
sys_menu表 - 权限检查:确保有足够的数据库权限执行DELETE和UPDATE操作
- 测试环境:建议先在测试环境执行,确认无误后再在生产环境执行
- 前端缓存:修改后可能需要清除前端缓存或重新登录才能看到效果
菜单表结构说明
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
修改完成后,用户需要重新登录或刷新页面才能看到新的菜单结构。