1
zj
2 days ago 5e57de9b12ee136e45ce5754c7fe2e7eb12af05a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
-- 菜单「有记录但前端不显示」常见修复
-- 请在【管理后台实际连接的数据库】执行(本地 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
  );