From 58fbafa2ace5c3f8dbbae0362a3f81667b03a75c Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Thu, 20 Aug 2026 12:11:17 +0800 Subject: [PATCH] feat(pl): add plan-contract menu SQL and web-admin route Co-authored-by: Cursor --- ...0260820_pl_plan_contract_complete_menu.sql | 109 ++++++++++++++++++ web-admin/src/router/modules/pl.ts | 7 ++ 2 files changed, 116 insertions(+) create mode 100644 backend/scripts/migrate_20260820_pl_plan_contract_complete_menu.sql diff --git a/backend/scripts/migrate_20260820_pl_plan_contract_complete_menu.sql b/backend/scripts/migrate_20260820_pl_plan_contract_complete_menu.sql new file mode 100644 index 000000000..4c7274460 --- /dev/null +++ b/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 + ); diff --git a/web-admin/src/router/modules/pl.ts b/web-admin/src/router/modules/pl.ts index 21e92a642..35476a614 100644 --- a/web-admin/src/router/modules/pl.ts +++ b/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' } } ] },