Files
jcgl-dev/dev/sql/apt_rev01/27_jobs_staff_menus.sql
T
2026-11-12 13:36:24 +08:00

61 lines
3.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- 作业工单 / 作业人员前端页面菜单(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;