From a45fd58cd0e4593511985b405f66d00accd4631a Mon Sep 17 00:00:00 2001 From: yinq Date: Wed, 10 Jun 2026 16:43:30 +0800 Subject: [PATCH] =?UTF-8?q?1.1.65=20=E9=94=80=E5=94=AE=E5=90=88=E5=90=8C?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=8F=B0=E8=B4=A6=E9=87=87=E8=B4=AD=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E9=87=87=E8=B4=AD=E7=89=A9=E6=96=99=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/oa/erp/contractOrder/index.ts | 8 ++--- src/views/oa/erp/orderLedger/index.vue | 47 ++++++++++++++++---------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/api/oa/erp/contractOrder/index.ts b/src/api/oa/erp/contractOrder/index.ts index 3b404b3..e178fdf 100644 --- a/src/api/oa/erp/contractOrder/index.ts +++ b/src/api/oa/erp/contractOrder/index.ts @@ -77,12 +77,12 @@ export const getContractOrder = (projectId: string | number): AxiosPromise => { +export const getContractOrderPurchaseMaterialList = (contractId: string | number): AxiosPromise => { return request({ - url: '/oa/erp/contractOrder/purchaseMaterialList/' + projectId, + url: '/oa/erp/contractOrder/purchaseMaterialList/' + contractId, method: 'get' }); }; diff --git a/src/views/oa/erp/orderLedger/index.vue b/src/views/oa/erp/orderLedger/index.vue index 2f90dfd..9959e03 100644 --- a/src/views/oa/erp/orderLedger/index.vue +++ b/src/views/oa/erp/orderLedger/index.vue @@ -762,7 +762,14 @@ const loadOrderAndContract = async () => { }; /** - * 采购/采购物料清单按 erp_project_purchase.project_id(实施项目)查询。 + * 解析台账当前关联的合同ID(订单信息优先,合同详情兜底)。 + */ +const resolveContractId = (): string | number | undefined => { + return orderInfo.value?.contractId ?? contractInfo.value?.contractId; +}; + +/** + * 采购单按 erp_project_purchase.project_id(实施项目)查询。 * 台账路由参数为合同订单行时,需解析到关联的实施项目 ID,不能直接用路由上的合同订单 project_id。 */ const resolvePurchaseBizProjectId = async (): Promise => { @@ -797,26 +804,30 @@ const loadPurchaseList = async () => { purchaseMaterialList.value = []; return; } - const bizProjectId = await resolvePurchaseBizProjectId(); - if (bizProjectId == null || bizProjectId === '') { - purchaseList.value = []; - purchaseTotal.value = 0; - purchaseMaterialList.value = []; - return; - } - purchaseQuery.projectId = bizProjectId; - purchaseQuery.relationId = undefined; + + const contractId = resolveContractId(); loadingPurchase.value = true; try { - const [purchaseRes, materialRes] = await Promise.all([ - listProjectPurchase({ + const bizProjectId = await resolvePurchaseBizProjectId(); + if (bizProjectId != null && bizProjectId !== '') { + purchaseQuery.projectId = bizProjectId; + purchaseQuery.relationId = undefined; + const purchaseRes = await listProjectPurchase({ ...purchaseQuery - }), - getContractOrderPurchaseMaterialList(bizProjectId) - ]); - purchaseList.value = purchaseRes.rows || []; - purchaseTotal.value = purchaseRes.total || 0; - purchaseMaterialList.value = materialRes.data || []; + }); + purchaseList.value = purchaseRes.rows || []; + purchaseTotal.value = purchaseRes.total || 0; + } else { + purchaseList.value = []; + purchaseTotal.value = 0; + } + + if (contractId != null && contractId !== '') { + const materialRes = await getContractOrderPurchaseMaterialList(contractId); + purchaseMaterialList.value = materialRes.data || []; + } else { + purchaseMaterialList.value = []; + } } finally { loadingPurchase.value = false; }