61 lines
3.6 KiB
SQL
61 lines
3.6 KiB
SQL
-- =============================================================================
|
||
-- 作业工单 / 作业人员前端页面菜单(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;
|