-- ============================================================================= -- 运输计划归档 · 菜单与按钮权限 -- 执行库:shanxia2.0 门户库(与 web-admin 同库) -- 说明:可重复执行(ON DUPLICATE KEY UPDATE / NOT EXISTS) -- 执行后:重新登录或刷新菜单缓存,侧栏「运输管理」下出现「运输计划归档」 -- ============================================================================= SET NAMES utf8mb4; -- ----------------------------------------------------------------------------- -- 1. 菜单(C)+ 按钮权限(F) -- 路由:/#/pl/plan-archive -- ----------------------------------------------------------------------------- INSERT INTO `sys_menu` ( `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag` ) VALUES ( 'PL_PLAN_ARCHIVE', '运输计划归档', 'PL_MENU_ROOT', 'C', 'plan-archive', 'pl/plan-archive/index', 'pl:plan-archive:list', 1, '1', '1', 'shanxia2.0', 11, NULL, 'system', '', NOW(), NULL, NOW(), 0 ), ( 'PL_PLAN_ARCHIVE_Q', '查询', 'PL_PLAN_ARCHIVE', 'F', '', '', 'pl:plan-archive:query', 1, '1', '1', 'shanxia2.0', 1, NULL, 'system', '', NOW(), NULL, NOW(), 0 ), ( 'PL_PLAN_ARCHIVE_E', '编辑', 'PL_PLAN_ARCHIVE', 'F', '', '', 'pl:plan-archive:edit', 1, '1', '1', 'shanxia2.0', 2, NULL, 'system', '', NOW(), NULL, NOW(), 0 ), ( 'PL_PLAN_ARCHIVE_A', '归档', 'PL_PLAN_ARCHIVE', 'F', '', '', 'pl:plan-archive:archive', 1, '1', '1', 'shanxia2.0', 3, NULL, 'system', '', NOW(), NULL, NOW(), 0 ) ON DUPLICATE KEY UPDATE `menu_name` = VALUES(`menu_name`), `parent_id` = VALUES(`parent_id`), `menu_type` = VALUES(`menu_type`), `path` = VALUES(`path`), `component` = VALUES(`component`), `perms` = VALUES(`perms`), `visible` = VALUES(`visible`), `status` = VALUES(`status`), `order_num` = VALUES(`order_num`), `update_time` = NOW(), `del_flag` = 0; -- ----------------------------------------------------------------------------- -- 2. 调整「危化品证上传」排序,排在归档菜单之后 -- ----------------------------------------------------------------------------- UPDATE `sys_menu` SET `order_num` = 12, `update_time` = NOW() WHERE `id` = 'PL_PLAN_CERT' AND `del_flag` = 0 AND (`order_num` IS NULL OR `order_num` <> 12); -- ----------------------------------------------------------------------------- -- 3.(可选)角色授权:为已拥有「运输计划」菜单的角色,自动勾选归档菜单及按钮 -- 若需手工在「系统管理 → 角色管理」里分配,可注释掉本节 -- ----------------------------------------------------------------------------- INSERT INTO `sys_role_menu` ( `id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag` ) SELECT REPLACE(UUID(), '-', ''), rm.`role_id`, m.`menu_id`, rm.`tenant_no`, m.`order_num`, 'pl plan archive auto grant', 'system', '', NOW(), NULL, NOW(), 0 FROM `sys_role_menu` rm INNER JOIN ( SELECT 'PL_PLAN_ARCHIVE' AS menu_id, 11 AS order_num UNION ALL SELECT 'PL_PLAN_ARCHIVE_Q', 1 UNION ALL SELECT 'PL_PLAN_ARCHIVE_E', 2 UNION ALL SELECT 'PL_PLAN_ARCHIVE_A', 3 ) m ON 1 = 1 WHERE rm.`menu_id` = 'PL_PLAN' AND rm.`del_flag` = 0 AND NOT EXISTS ( SELECT 1 FROM `sys_role_menu` x WHERE x.`role_id` = rm.`role_id` AND x.`menu_id` = m.`menu_id` AND x.`del_flag` = 0 ); -- ----------------------------------------------------------------------------- -- 4. 校验(执行后可查看结果) -- ----------------------------------------------------------------------------- SELECT `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `order_num` FROM `sys_menu` WHERE `id` IN ('PL_PLAN_ARCHIVE', 'PL_PLAN_ARCHIVE_Q', 'PL_PLAN_ARCHIVE_E', 'PL_PLAN_ARCHIVE_A') AND `del_flag` = 0 ORDER BY `id`;