diff --git a/src/views/oa/erp/orderLedger/index.vue b/src/views/oa/erp/orderLedger/index.vue index 000067d..c10e72f 100644 --- a/src/views/oa/erp/orderLedger/index.vue +++ b/src/views/oa/erp/orderLedger/index.vue @@ -249,20 +249,61 @@
- +
+
+ + 回款信息 + {{ planStageList.length }} 条 +
+
+ 刷新 +
+
+ - + - - + + + + + + + + + + + + + + + + -
@@ -380,7 +421,8 @@ const { wf_business_status, invoice_status, invoice_category, - early_flag + early_flag, + collection_confirm_status } = toRefs( proxy?.useDict( 'business_direction', @@ -397,7 +439,8 @@ const { 'wf_business_status', 'invoice_status', 'invoice_category', - 'early_flag' + 'early_flag', + 'collection_confirm_status' ) ); @@ -449,6 +492,34 @@ const formatAmount = (num?: number | string | null) => { return value.toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); }; +/** 合同阶段比例等百分比展示 */ +const formatStagePercent = (val: number | string | null | undefined) => { + if (val === null || val === undefined || val === '') { + return '-'; + } + const n = Number(val); + if (!Number.isFinite(n)) { + return '-'; + } + return n; +}; + +/** + * 优先展示后端 actualRepaymentRate;若无则用实际回款金额 / 合同总价推算(与合同回款确认逻辑一致) + */ +const displayPlanStageActualRepaymentRate = (row: ErpProjectPlanStageForm) => { + const stored = row.actualRepaymentRate; + if (stored != null && Number.isFinite(Number(stored))) { + return Number(stored); + } + const actual = Number(row.actualRepaymentAmount ?? 0); + const total = Number(contractInfo.value?.totalPrice ?? 0); + if (!Number.isFinite(total) || total <= 0) { + return '-'; + } + return Math.round((actual / total) * 10000) / 100; +}; + /** 返回 */ const handleBack = () => { proxy?.$tab.closePage(route);