From 3f0abdc86a88b71b18256c87f3e91a196fc316ba Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Tue, 11 Nov 2025 15:43:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(erpProjectPlan):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AE=A1=E5=88=92=E7=94=98=E7=89=B9=E5=9B=BE?= =?UTF-8?q?=E5=92=8C=E8=AE=A1=E5=88=92=E5=8F=98=E6=9B=B4=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在项目计划编辑页面添加实际开始和结束时间字段 - 引入项目信息类型定义并优化项目选择逻辑 - 新增项目计划甘特图展示页面路由配置 - 添加项目变更编辑页面路由配置 - 扩展项目计划列表操作列,新增计划变更和甘特图按钮 - 实现项目计划变更和甘特图跳转逻辑 - 调整操作列宽度以适应新增按钮 - 优化 handleProjectChange 方法支持部分字段同步控制 --- src/router/index.ts | 23 +++++- src/views/oa/erp/erpProjectPlan/edit.vue | 85 ++++++++++++++++++----- src/views/oa/erp/erpProjectPlan/index.vue | 23 +++++- 3 files changed, 112 insertions(+), 19 deletions(-) diff --git a/src/router/index.ts b/src/router/index.ts index 84cb70c..a512d98 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -115,7 +115,20 @@ export const constantRoutes: RouteRecordRaw[] = [ component: () => import('@/views/oa/erp/erpProjectPlan/edit.vue'), name: 'ErpProjectPlanView', meta: { title: '项目计划查看', activeMenu: '/oa/erp/erpProjectPlan' } - } + }, + + { + path: 'erpProjectPlan/gantt/:projectPlanId', + component: () => import('@/views/oa/erp/erpProjectPlan/gantt.vue'), + name: 'ErpProjectPlanGantt', + meta: { title: '项目计划甘特图', activeMenu: '/oa/erp/erpProjectPlan' } + }, + { + path: 'erpProjectChange/edit/:projectChangeId', + component: () => import('@/views/oa/erp/erpProjectChange/edit.vue'), + name: 'ErpProjectChangeEdit', + meta: { title: '项目变更编辑', activeMenu: '/oa/erp/erpProjectPlan' } + }, ] }, { @@ -128,7 +141,13 @@ export const constantRoutes: RouteRecordRaw[] = [ component: () => import('@/views/oa/crm/crmQuoteInfo/edit.vue'), name: 'crmQuoteInfoEdit', meta: { title: '报价单编辑', activeMenu: '/oa/crm/crmQuoteInfo' } - } + }, + { + path: 'crmQuoteInfo/view/:quoteId', + component: () => import('@/views/oa/crm/crmQuoteInfo/edit.vue'), + name: 'crmQuoteInfoView', + meta: { title: '报价单查看', activeMenu: '/oa/crm/crmQuoteInfo' } + }, ] }, { diff --git a/src/views/oa/erp/erpProjectPlan/edit.vue b/src/views/oa/erp/erpProjectPlan/edit.vue index 6071315..16188d5 100644 --- a/src/views/oa/erp/erpProjectPlan/edit.vue +++ b/src/views/oa/erp/erpProjectPlan/edit.vue @@ -93,7 +93,7 @@ 添加阶段 - + @@ -140,11 +140,33 @@ - + + + + + + + - + @@ -372,6 +378,21 @@ approvalRecordRef.value?.init(row.projectPlanId); } + /** 项目计划变更按钮操作 */ + const handlePlanChange = (row: ErpProjectPlanVO) => { + // 跳转到项目变更编辑页面,传递项目 ID + router.push(`/oa/erp/erpProjectChange/edit/0?projectId=${row.projectId}`); + } + + /** 甘特图按钮 */ + const handleGantt = (row: ErpProjectPlanVO) => { + if (!row.projectPlanId) { + proxy?.$modal.msgWarning('请先保存项目计划信息'); + return; + } + router.push(`/oa/erp/erpProjectPlan/gantt/${row.projectPlanId}`); + } + /** 修改按钮操作(保留用于对话框形式) */ const handleUpdate = async (row?: ErpProjectPlanVO) => { reset();