-- 菜单「有记录但前端不显示」常见修复
|
-- 请在【管理后台实际连接的数据库】执行(本地 zh-jys-admin 默认连 https://zhapi.bitget-jp-us.cyou 对应库)
|
|
-- 1) 诊断:菜单是否存在
|
SELECT menu_id, parent_id, name, url, type, app_type, order_num
|
FROM tz_sys_menu
|
WHERE menu_id IN (1864, 1981, 1982)
|
OR url IN ('us-spots/us-pickAddr', 'us-spots/us-indexImg', 'us-spots/us-markets-config');
|
|
-- 2) 诊断:当前角色是否授权(把 @role_id 改成你的角色)
|
SET @role_id = 1;
|
SELECT rm.role_id, m.menu_id, m.name, m.url
|
FROM tz_sys_role_menu rm
|
JOIN tz_sys_menu m ON m.menu_id = rm.menu_id
|
WHERE rm.role_id = @role_id
|
AND m.menu_id IN (1864, 1981, 1982);
|
|
-- 3) 同步 app_type:与父目录 1864 保持一致(避免 app_type 精确匹配查不到父节点)
|
UPDATE tz_sys_menu child
|
JOIN tz_sys_menu parent ON parent.menu_id = 1864
|
SET child.app_type = IFNULL(NULLIF(parent.app_type, ''), '1')
|
WHERE child.menu_id IN (1981, 1982);
|
|
-- 4) 确保 type=1(页面菜单),icon 不为空
|
UPDATE tz_sys_menu
|
SET type = 1, icon = IFNULL(NULLIF(icon, ''), 'sql')
|
WHERE menu_id IN (1981, 1982);
|
|
-- 5) 给角色补授权(1864 + 两个子菜单)
|
INSERT INTO tz_sys_role_menu (role_id, menu_id)
|
SELECT @role_id, m.menu_id
|
FROM tz_sys_menu m
|
WHERE m.menu_id IN (1864, 1981, 1982)
|
AND NOT EXISTS (
|
SELECT 1 FROM tz_sys_role_menu x WHERE x.role_id = @role_id AND x.menu_id = m.menu_id
|
);
|
|
-- 6) 若 1864 本身未授权,补全 1864 全部子菜单给该角色
|
INSERT INTO tz_sys_role_menu (role_id, menu_id)
|
SELECT @role_id, m.menu_id
|
FROM tz_sys_menu m
|
WHERE m.parent_id = 1864
|
AND NOT EXISTS (
|
SELECT 1 FROM tz_sys_role_menu x WHERE x.role_id = @role_id AND x.menu_id = m.menu_id
|
);
|