Просмотр исходного кода

feat(pl): add plan-contract menu SQL and web-admin route

Co-authored-by: Cursor <cursoragent@cursor.com>
zlwu 2 месяцев назад
Родитель
Сommit
58fbafa2ac

+ 109 - 0
backend/scripts/migrate_20260820_pl_plan_contract_complete_menu.sql

@@ -0,0 +1,109 @@
+-- backend/scripts/migrate_20260820_pl_plan_contract_complete_menu.sql
+-- 运输计划合同完善:挂在 PL_GROUP_PLAN 下,order_num=3;按钮权限保存合同关联
+-- 可重复执行(幂等)
+
+-- 1) 菜单 C:运输计划合同完善
+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_CONTRACT',
+  '运输计划合同完善',
+  'PL_GROUP_PLAN',
+  'C',
+  'plan-contract',
+  'pl/plan-contract/index',
+  'pl:plan-contract:list',
+  1, '1', '1', 'shanxia2.0', 3,
+  '缺合同运输计划补齐',
+  'system', '', 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`),
+  `order_num`=VALUES(`order_num`),
+  `visible`=VALUES(`visible`),
+  `status`=VALUES(`status`);
+
+-- 2) 菜单 F:保存合同关联
+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_CONTRACT_UPD',
+  '保存合同关联',
+  'PL_PLAN_CONTRACT',
+  'F',
+  '',
+  NULL,
+  'pl:plan-contract:update',
+  1, '1', '1', 'shanxia2.0', 1,
+  NULL,
+  'system', '', NOW(), NULL, NOW(), 0
+)
+ON DUPLICATE KEY UPDATE
+  `menu_name`=VALUES(`menu_name`),
+  `perms`=VALUES(`perms`),
+  `parent_id`=VALUES(`parent_id`);
+
+-- 3) 角色授权:复制已有 PL_PLAN 的角色集合
+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(), '-', ''),
+  `role_id`,
+  'PL_PLAN_CONTRACT',
+  `tenant_no`,
+  0,
+  NULL,
+  `create_by`,
+  `create_dept_id`,
+  NOW(),
+  `update_by`,
+  NOW(),
+  0
+FROM `sys_role_menu`
+WHERE `menu_id` = 'PL_PLAN'
+  AND `del_flag` = 0
+  AND NOT EXISTS (
+    SELECT 1
+    FROM `sys_role_menu` x
+    WHERE x.`role_id` = `sys_role_menu`.`role_id`
+      AND x.`menu_id` = 'PL_PLAN_CONTRACT'
+      AND x.`del_flag` = 0
+  );
+
+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(), '-', ''),
+  `role_id`,
+  'PL_PLAN_CONTRACT_UPD',
+  `tenant_no`,
+  0,
+  NULL,
+  `create_by`,
+  `create_dept_id`,
+  NOW(),
+  `update_by`,
+  NOW(),
+  0
+FROM `sys_role_menu`
+WHERE `menu_id` = 'PL_PLAN'
+  AND `del_flag` = 0
+  AND NOT EXISTS (
+    SELECT 1
+    FROM `sys_role_menu` x
+    WHERE x.`role_id` = `sys_role_menu`.`role_id`
+      AND x.`menu_id` = 'PL_PLAN_CONTRACT_UPD'
+      AND x.`del_flag` = 0
+  );

+ 7 - 0
web-admin/src/router/modules/pl.ts

@@ -30,6 +30,13 @@ export const plRoutes: AppRouteRecord[] = [
             path: 'plan-archive',
             component: '/pl/plan-archive/index',
             meta: { title: '运输计划归档', keepAlive: true, menuCode: 'pl:plan-archive:list' }
+          },
+          {
+            id: 'PL_PLAN_CONTRACT',
+            name: 'PlPlanContract',
+            path: 'plan-contract',
+            component: '/pl/plan-contract/index',
+            meta: { title: '运输计划合同完善', keepAlive: true, menuCode: 'pl:plan-contract:list' }
           }
         ]
       },