-- ============================================================================= -- 作业工单 / 作业人员前端页面菜单(menu_type='C',可重放) -- 前提:26_jobs_staff.sql 已建 F 权限点 3230~3240(apt:workorder:* / apt:staff:*)。 -- 口径(与 13_it2_frontend_menus.sql 一致): -- 1) 只新增 C 类型页面菜单,不改 3000 父目录、不改任何 F 权限点; -- 2) 路由由后端 getRouters 下发,component 走 loadView('@/views/' + component); -- 3) C 菜单 perms 留空:可见性由 sys_role_menu 控制,按钮级权限由 F 权限点控制。 -- 组件路径(须与前端一致): -- src/views/apt/workorder/index.vue ← 3204 作业工单 -- src/views/apt/staff/index.vue ← 3205 作业人员 -- ============================================================================= SET NAMES utf8mb4; -- ----------------------------------------------------------------------------- -- 1. 页面菜单(C):父目录 3000(path='apt'),完整路由 /apt/workorder、/apt/staff -- ----------------------------------------------------------------------------- INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES (3204, '作业工单', 3000, 8, 'workorder', 'apt/workorder/index', '', '', 1, 0, 'C', '0', '0', '', 'build', 'IT-5', NOW(3), '保洁/维修工单:列表、详情、维修派单、取消、统计;状态推进由平板执行'), (3205, '作业人员', 3000, 9, 'staff', 'apt/staff/index', '', '', 1, 0, 'C', '0', '0', '', 'peoples', 'IT-5', NOW(3), '保洁/维修人员:新增、编辑、启停、软删;device_code 绑定平板') ON DUPLICATE KEY UPDATE menu_name = VALUES(menu_name), parent_id = VALUES(parent_id), order_num = VALUES(order_num), path = VALUES(path), component = VALUES(component), menu_type = VALUES(menu_type), visible = VALUES(visible), status = VALUES(status), icon = VALUES(icon), remark = VALUES(remark); -- ----------------------------------------------------------------------------- -- 2. 关联超管角色(超管本身已有 *:*:*,此处保证 getRouters 下发并留痕) -- ----------------------------------------------------------------------------- INSERT INTO sys_role_menu (role_id, menu_id) SELECT 1, m.menu_id FROM sys_menu m WHERE m.menu_id IN (3204, 3205) AND NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id); -- ----------------------------------------------------------------------------- -- 3. 校验 -- ----------------------------------------------------------------------------- SELECT '=== 49. 作业页面菜单(应 2 条 C)===' AS section; SELECT menu_id, menu_name, parent_id, path, component, menu_type, visible, status, icon FROM sys_menu WHERE menu_id IN (3204, 3205) ORDER BY menu_id; SELECT '=== 50. 组件路径(须与前端 src/views/apt/** 一致)===' AS section; SELECT menu_id, CONCAT('src/views/', component, '.vue') AS vue_file FROM sys_menu WHERE menu_id IN (3204, 3205) ORDER BY menu_id; SELECT '=== 51. C 菜单已关联超管(应 2)===' AS section; SELECT COUNT(*) AS admin_menu_bound FROM sys_role_menu rm JOIN sys_menu m ON m.menu_id = rm.menu_id WHERE rm.role_id = 1 AND m.menu_id IN (3204, 3205) AND m.menu_type = 'C'; SELECT '=== 52. 公寓端菜单树构成(应 M=1 / C=9 / F=38)===' AS section; SELECT menu_type, COUNT(*) AS cnt FROM sys_menu WHERE menu_id = 3000 OR parent_id = 3000 GROUP BY menu_type ORDER BY menu_type;