From 710bcdab858d407d3be9e7a1df32282379c29df6 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 28 一月 2026 17:58:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/views/salesManagement/receiptPayment/index.vue |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/views/salesManagement/receiptPayment/index.vue b/src/views/salesManagement/receiptPayment/index.vue
index 40e6f14..a2a0b2f 100644
--- a/src/views/salesManagement/receiptPayment/index.vue
+++ b/src/views/salesManagement/receiptPayment/index.vue
@@ -433,7 +433,8 @@
     specificationModel: row.specificationModel || "",
     pendingInvoiceTotal: Number(row.pendingInvoiceTotal || 0),
     taxRate: row.taxRate ?? "",
-    receiptPaymentAmount: "",
+    // 榛樿鏈鍥炴閲戦 = 寰呭洖娆鹃噾棰�
+    receiptPaymentAmount: Number(row.pendingInvoiceTotal || 0),
     receiptPaymentType: "",
     registrant: userStore.nickName,
     receiptPaymentDate: "",
@@ -518,12 +519,35 @@
 
 // 淇濆瓨鍥炴璁板綍
 const saveReceiptPayment = (row) => {
+  // 瀛愯〃鍥炴閲戦鍚堣鏍¢獙锛氭墍鏈夊洖娆捐褰曢噾棰濅箣鍜屼笉鑳藉ぇ浜庣埗鏁版嵁鍚堝悓閲戦
+  // 杩欓噷鐖舵暟鎹�滃悎鍚岄噾棰濃�濇寜锛氬凡鍥炴閲戦( invoiceTotal ) + 寰呭洖娆鹃噾棰�( pendingInvoiceTotal ) 璁$畻
+  const findParentRowByChildId = (childId) => {
+    return tableData.value.find((p) =>
+      Array.isArray(p.children) && p.children.some((c) => c.id === childId)
+    );
+  };
+  const parentRow = findParentRowByChildId(row.id);
+  if (parentRow) {
+    const contractAmount =
+      Number(parentRow.invoiceTotal || 0) + Number(parentRow.pendingInvoiceTotal || 0);
+    const sumReceipt = (parentRow.children || []).reduce((sum, item) => {
+      const val = Number(item?.receiptPaymentAmount ?? 0);
+      return sum + (Number.isFinite(val) ? val : 0);
+    }, 0);
+    if (sumReceipt > contractAmount) {
+      proxy.$modal.msgError(
+        `鍥炴閲戦鍚堣(${sumReceipt.toFixed(2)})涓嶈兘澶т簬鍚堝悓閲戦(${contractAmount.toFixed(2)})`
+      );
+      return;
+    }
+  }
+
   let updateData = {
     id: row.id,
     receiptPaymentType: row.receiptPaymentType,
     receiptPaymentAmount: row.receiptPaymentAmount,
   };
-  receiptPaymentSaveOrUpdate(updateData).then((res) => {
+  receiptPaymentSaveOrUpdate([updateData]).then((res) => {
     row.editType = !row.editType;
 		getList();
 		proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");

--
Gitblit v1.9.3