-- ============================================================ -- 基础实验:sys_menu 菜单数据 + 隐藏临床应用菜单 -- 与 web-admin/src/router/modules/sqxp.ts、backend/app/api/menu.py 对齐 -- ============================================================ -- 1. 一级菜单:基础实验(挂在 Web 端虚拟根「2」下,order_num=4 接替临床应用位置) 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 ( 'BEX00000000000000000000000000001', '基础实验', '2', 'M', '/basic-experiment', '/index/index', NULL, 1, '1', '1', 'zkxw', 4, NULL, NULL, '', 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`), `visible` = '1', `status` = '1', `order_num` = VALUES(`order_num`), `update_time` = NOW(), `del_flag` = 0; -- 2. 二级菜单 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 ( 'BEX00000000000000000000000000002', '基础实验申请单', 'BEX00000000000000000000000000001', 'C', 'application', '/pilot-service/pilot-application/index', 'basic-experiment:application:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0 ), ( 'BEX00000000000000000000000000003', '缴退费财务确认', 'BEX00000000000000000000000000001', 'C', 'payment-confirm', '/pilot-service/clinical-payment-confirm/index', 'basic-experiment:payment-confirm:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0 ), ( 'BEX00000000000000000000000000004', '出库放行审核', 'BEX00000000000000000000000000001', 'C', 'outbound-release-review', '/pilot-service/outbound-release-review/index', 'basic-experiment:outbound-release-review:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0 ) ON DUPLICATE KEY UPDATE `menu_name` = VALUES(`menu_name`), `parent_id` = VALUES(`parent_id`), `path` = VALUES(`path`), `component` = VALUES(`component`), `perms` = VALUES(`perms`), `visible` = '1', `status` = '1', `order_num` = VALUES(`order_num`), `update_time` = NOW(), `del_flag` = 0; -- 3. 隐藏临床应用菜单(侧栏不展示,与 sqxp.ts isHide 一致) UPDATE `sys_menu` SET `visible` = '0', `update_time` = NOW() WHERE `id` IN ( 'CLI00000000000000000000000000001', 'CLI00000000000000000000000000002', 'CLI00000000000000000000000000006', 'CLI00000000000000000000000000008' ) AND `del_flag` = 0; -- 4. 为已授权「中试服务」一级菜单的角色,自动授予「基础实验」一级菜单(含子菜单需在角色管理中勾选,或执行下方扩展) 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 UPPER(REPLACE(UUID(), '-', '')), rm.`role_id`, m.`id`, 'zkxw', 0, '基础实验菜单迁移自动授权', NULL, '', NOW(), NULL, NOW(), 0 FROM `sys_role_menu` rm CROSS JOIN ( SELECT 'BEX00000000000000000000000000001' AS id UNION ALL SELECT 'BEX00000000000000000000000000002' UNION ALL SELECT 'BEX00000000000000000000000000003' UNION ALL SELECT 'BEX00000000000000000000000000004' ) m WHERE rm.`menu_id` = 'PIL00000000000000000000000000001' AND rm.`del_flag` = 0 AND rm.`tenant_no` = 'zkxw' AND NOT EXISTS ( SELECT 1 FROM `sys_role_menu` x WHERE x.`role_id` = rm.`role_id` AND x.`menu_id` = m.`id` AND x.`del_flag` = 0 AND x.`tenant_no` = 'zkxw' );