From 070d61f490019057645f0c6aba1986db130c3a9a Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Thu, 6 Nov 2025 09:36:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa/erp):=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=AE=A1=E5=88=92=E7=BC=96=E8=BE=91=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现项目计划查看页面路由配置 - 固定项目计划状态选择器为只读状态 - 增加基础数据加载控制与缓存机制 - 实现表单数据重置与刷新通知功能 - 添加列表页面数据刷新检查机制 - 引入 onActivated 生命周期优化数据加载 - 完善合同总价计算与默认值处理 - 优化审批流程回调与页面跳转逻辑 --- src/router/index.ts | 14 ++- src/views/oa/erp/erpProjectPlan/edit.vue | 123 ++++++++++++++-------- src/views/oa/erp/erpProjectPlan/index.vue | 16 +++ 3 files changed, 111 insertions(+), 42 deletions(-) diff --git a/src/router/index.ts b/src/router/index.ts index e3983a2..84ff639 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -102,7 +102,19 @@ export const constantRoutes: RouteRecordRaw[] = [ { path: 'contractInfo/edit', component: () => import('@/views/oa/erp/contractInfo/edit.vue'), - name: 'edit', + name: 'ContractInfoEdit', + }, + { + path: 'erpProjectPlan/edit/:projectPlanId', + component: () => import('@/views/oa/erp/erpProjectPlan/edit.vue'), + name: 'ErpProjectPlanEdit', + meta: { title: '项目计划编辑', activeMenu: '/oa/erp/erpProjectPlan' } + }, + { + path: 'erpProjectPlan/view/:projectPlanId', + component: () => import('@/views/oa/erp/erpProjectPlan/edit.vue'), + name: 'ErpProjectPlanView', + meta: { title: '项目计划查看', activeMenu: '/oa/erp/erpProjectPlan' } } ] }, diff --git a/src/views/oa/erp/erpProjectPlan/edit.vue b/src/views/oa/erp/erpProjectPlan/edit.vue index 1c47f79..bf2e3eb 100644 --- a/src/views/oa/erp/erpProjectPlan/edit.vue +++ b/src/views/oa/erp/erpProjectPlan/edit.vue @@ -76,7 +76,8 @@ - + + @@ -169,7 +170,7 @@ diff --git a/src/views/oa/erp/erpProjectPlan/index.vue b/src/views/oa/erp/erpProjectPlan/index.vue index d66efb2..ea1b6cc 100644 --- a/src/views/oa/erp/erpProjectPlan/index.vue +++ b/src/views/oa/erp/erpProjectPlan/index.vue @@ -176,6 +176,7 @@ import { listUser } from '@/api/system/user'; import { getErpProjectInfoList } from '@/api/oa/erp/projectInfo'; import { getErpContractInfoList } from '@/api/oa/erp/contractInfo'; + import { onActivated } from 'vue'; import { useRouter } from 'vue-router'; import ApprovalRecord from '@/components/Process/approvalRecord.vue'; @@ -184,6 +185,7 @@ const { active_flag, project_plan_status , project_phases, collection_stage} = toRefs(proxy?.useDict('active_flag', 'project_plan_status', 'project_phases', 'collection_stage')); const approvalRecordRef = ref>(); + const refreshFlagKey = 'erpProjectPlanListShouldRefresh'; const erpProjectPlanList = ref([]); const projectInfoList = ref([]); @@ -271,6 +273,15 @@ loading.value = false; } + /** 检查是否需要刷新列表 */ + const checkShouldRefresh = () => { + const flag = sessionStorage.getItem(refreshFlagKey); + if (flag) { + sessionStorage.removeItem(refreshFlagKey); + handleQuery(); + } + } + /** 获取项目列表 */ const getProjectInfoList = async () => { const res = await getErpProjectInfoList({}); @@ -407,5 +418,10 @@ getProjectInfoList(); getUserList(); getContractInfoList(); + checkShouldRefresh(); + }); + + onActivated(() => { + checkShouldRefresh(); });