From 599b544d50dfe79bd51d121f8bb0129daeab0440 Mon Sep 17 00:00:00 2001 From: Yangk Date: Fri, 5 Dec 2025 15:46:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(projectLedger):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8F=98=E6=9B=B4=E9=A1=B5=E7=AD=BE=E5=8F=8A?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/oa/erp/projectLedger/index.vue | 146 ++++++++++++++++++++--- 1 file changed, 131 insertions(+), 15 deletions(-) diff --git a/src/views/oa/erp/projectLedger/index.vue b/src/views/oa/erp/projectLedger/index.vue index dd9c454..f4f562d 100644 --- a/src/views/oa/erp/projectLedger/index.vue +++ b/src/views/oa/erp/projectLedger/index.vue @@ -55,9 +55,7 @@
合同信息 - - {{ contractList.length }} 条 - + {{ contractList.length }} 条
前往合同页面 @@ -105,9 +103,7 @@
预算信息 - - {{ budgetTotal }} 条 - + {{ budgetTotal }} 条
预算页面 @@ -163,9 +159,7 @@
项目计划 - - {{ planTotal }} 条 - + {{ planTotal }} 条
项目计划页面 @@ -207,6 +201,59 @@ />
+ + + +
+
+
+ + 项目变更 + {{ changeTotal }} 条 +
+
+ 项目变更页面 + 刷新 +
+
+ + + + + + + + + + + + + + + + + + + + + +
+
@@ -223,13 +270,40 @@ import { ErpProjectPlanVO } from '@/api/oa/erp/erpProjectPlan/types'; import { ProjectInfoVO } from '@/api/oa/erp/projectInfo/types'; import { getErpProjectContractsList } from '@/api/oa/erp/projectContracts'; import { ProjectContractsVO } from '@/api/oa/erp/projectContracts/types'; +import { listErpProjectChange } from '@/api/oa/erp/erpProjectChange'; +import { ErpProjectChangeVO } from '@/api/oa/erp/erpProjectChange/types'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; const route = useRoute(); const router = useRouter(); -const { contract_flag, project_category, business_direction, project_status, wf_business_status, active_flag, contract_status, contract_category, project_plan_status, budget_status } = - toRefs(proxy?.useDict('contract_flag', 'project_category', 'business_direction', 'project_status', 'wf_business_status', 'active_flag', 'contract_status', 'contract_category', 'project_plan_status', 'budget_status')); +const { + contract_flag, + project_category, + business_direction, + project_status, + wf_business_status, + active_flag, + contract_status, + contract_category, + project_plan_status, + budget_status, + change_type +} = toRefs( + proxy?.useDict( + 'contract_flag', + 'project_category', + 'business_direction', + 'project_status', + 'wf_business_status', + 'active_flag', + 'contract_status', + 'contract_category', + 'project_plan_status', + 'budget_status', + 'change_type' + ) +); const projectId = computed(() => route.params.projectId as string | number | undefined); const projectInfo = ref(null); @@ -253,21 +327,31 @@ const planTotal = ref(0); const budgetQuery = reactive({ pageNum: 1, pageSize: 5, projectId: undefined }); const planQuery = reactive({ pageNum: 1, pageSize: 5, projectId: undefined }); +// 新增:项目变更相关变量 +const loadingChange = ref(false); +const changeList = ref([]); +const changeTotal = ref(0); +const changeQuery = reactive({ pageNum: 1, pageSize: 5, projectId: undefined }); + const handleBack = () => { proxy?.$tab.closePage(route); router.back(); }; const openContractPage = () => { - proxy?.$tab.openPage('/oa/erp/contractInfo', '合同管理'); + proxy?.$tab.openPage('/contract/contractInfo', '合同管理'); }; const openBudgetPage = () => { - proxy?.$tab.openPage('/oa/erp/budgetInfo', '项目预算'); + proxy?.$tab.openPage('/budget/erp/budgetInfo', '项目预算'); }; const openPlanPage = () => { - proxy?.$tab.openPage('/oa/erp/erpProjectPlan', '项目计划'); + proxy?.$tab.openPage('/project/erpProjectPlan', '项目计划'); +}; + +const openChangePage = () => { + proxy?.$tab.openPage('/project/erpProjectChange', '项目变更'); }; const viewBudget = (row: budgetInfoVO) => { @@ -291,6 +375,14 @@ const viewContract = (row: ProjectContractsVO) => { }); }; +const viewChange = (row: ErpProjectChangeVO) => { + if (!row?.projectChangeId) return; + proxy?.$tab.openPage('/oa/erp/erpProjectChange/edit', '项目变更详情', { + id: row.projectChangeId, + type: 'view' + }); +}; + // 格式化数字,添加千分位 const formatNumber = (num: number) => { if (!num) return '0'; @@ -365,6 +457,25 @@ const loadProjectInfo = async () => { } }; +const loadChangeList = async () => { + if (!projectId.value) { + changeList.value = []; + changeTotal.value = 0; + return; + } + loadingChange.value = true; + try { + const res: any = await listErpProjectChange({ + ...changeQuery, + projectId: projectId.value + }); + changeList.value = res.rows || []; + changeTotal.value = res.total || 0; + } finally { + loadingChange.value = false; + } +}; + // 标签切换处理 const handleTabChange = (tabName: string) => { if (!loadedTabs.value.has(tabName)) { @@ -383,6 +494,11 @@ const handleTabChange = (tabName: string) => { planQuery.projectId = projectId.value; loadPlanList(); break; + case 'change': + changeQuery.pageNum = 1; + changeQuery.projectId = projectId.value; + loadChangeList(); + break; } } }; @@ -391,6 +507,7 @@ const loadAll = async () => { await loadProjectInfo(); budgetQuery.projectId = projectId.value; planQuery.projectId = projectId.value; + changeQuery.projectId = projectId.value; }; watch( @@ -510,4 +627,3 @@ watch( } } -