From e758ffefbcc4c8c06fe6c8691bf77f8249d09f66 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 23 四月 2026 10:42:02 +0800
Subject: [PATCH] fix: 发货台账内的发货图片不显示

---
 src/views/procurementManagement/paymentLedger/index.vue |  104 +++++++++++++++++++++++++++------------------------
 1 files changed, 55 insertions(+), 49 deletions(-)

diff --git a/src/views/procurementManagement/paymentLedger/index.vue b/src/views/procurementManagement/paymentLedger/index.vue
index 61e6f98..f86e188 100644
--- a/src/views/procurementManagement/paymentLedger/index.vue
+++ b/src/views/procurementManagement/paymentLedger/index.vue
@@ -4,7 +4,7 @@
       <div>
         <span class="search_title">渚涘簲鍟嗗悕绉�:</span>
         <el-input
-          v-model="searchForm.supplierNameOrContractNo"
+          v-model="searchForm.supplierName"
           style="width: 240px"
           placeholder="杈撳叆渚涘簲鍟嗗悕绉�"
           @change="handleQuery"
@@ -43,7 +43,7 @@
             />
             <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" />
             <el-table-column
-              label="鍙戠エ閲戦(鍏�)"
+              label="鍚堝悓閲戦(鍏�)"
               prop="invoiceAmount"
               show-overflow-tooltip
               :formatter="formattedNumber"
@@ -83,9 +83,11 @@
             :column="tableColumnSon"
             :tableData="originalTableDataSon"
             :isSelection="false"
+            :isShowPagination="false"
             :tableLoading="tableLoadingSon"
             :isShowSummary="isShowSummarySon"
             :summaryMethod="summarizeMainTable1"
+						height="calc(100vh - 18.5em)"
           >
             <template #payableAmountSlot="{ row }">
               <el-text type="danger">
@@ -93,14 +95,6 @@
               </el-text>
             </template>
           </PIMTable>
-          <pagination
-            v-show="sonTotal > 0"
-            :total="sonTotal"
-            @pagination="sonPaginationSearch"
-            :layout="page.layout"
-            :page="sonPage.current"
-            :limit="sonPage.size"
-          />
         </div>
       </el-col>
     </el-row>
@@ -116,24 +110,6 @@
 } from "@/api/procurementManagement/paymentLedger.js";
 import Pagination from "../../../components/PIMTable/Pagination.vue";
 
-const tableColumn = ref([
-  {
-    label: "渚涘簲鍟嗗悕绉�",
-    prop: "supplierName",
-  },
-  {
-    label: "鍙戠エ閲戦(鍏�)",
-    prop: "invoiceAmount",
-  },
-  {
-    label: "浠樻閲戦(鍏�)",
-    prop: "paymentAmount",
-  },
-  {
-    label: "搴斾粯閲戦(鍏�)",
-    prop: "payableAmount",
-  },
-]);
 const tableData = ref([]);
 const tableLoading = ref(false);
 const data = reactive({
@@ -162,18 +138,26 @@
 const tableColumnSon = ref([
   {
     label: "鍙戠敓鏃ユ湡",
-    prop: "happenTime",
+    prop: "paymentDate",
+		width: 110,
   },
   {
-    label: "鍙戠エ閲戦(鍏�)",
+    label: "閲囪喘鍚堝悓鍙�",
+    prop: "purchaseContractNumber",
+		width: 150,
+  },
+  {
+    label: "鍚堝悓閲戦(鍏�)",
     prop: "invoiceAmount",
+		width: 200,
     formatData: (params) => {
       return params ? parseFloat(params).toFixed(2) : 0;
     },
   },
   {
     label: "浠樻閲戦(鍏�)",
-    prop: "currentPaymentAmount",
+    prop: "paymentAmount",
+		width: 200,
     formatData: (params) => {
       return params ? parseFloat(params).toFixed(2) : 0;
     },
@@ -181,6 +165,8 @@
   {
     label: "搴斾粯閲戦(鍏�)",
     dataType: "slot",
+		width: 200,
+    prop: "payableAmount",
     slot: "payableAmountSlot",
   },
 ]);
@@ -205,23 +191,45 @@
 };
 // 瀛愯〃鍚堣鏂规硶
 const summarizeMainTable1 = (param) => {
-  let summarizeTable = proxy.summarizeTable(
-    param,
-    ["invoiceAmount", "currentPaymentAmount"],
-    {
-      ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
-      futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+  const toNum = (v) => {
+    const n = Number(v);
+    return Number.isFinite(n) ? n : 0;
+  };
+
+  // 浠ュ綋鍓嶅彸渚ц〃鏍煎睍绀虹殑鏁版嵁涓哄噯锛堝垎椤� slice 鍚庣殑鏁版嵁锛�
+  const rows = originalTableDataSon.value || [];
+
+  // 鍚堝悓閲戦锛氭寜閲囪喘鍚堝悓鍙峰幓閲嶅悗鍚堣
+  const invoiceByContract = new Map();
+  for (const r of rows) {
+    const contractNo = r?.purchaseContractNumber;
+    if (!contractNo) continue;
+    if (!invoiceByContract.has(contractNo)) {
+      invoiceByContract.set(contractNo, toNum(r?.invoiceAmount));
     }
-  );
-  if (originalTableDataSon.value.length > 0) {
-    summarizeTable[summarizeTable.length - 1] =
-      originalTableDataSon.value[
-        originalTableDataSon.value.length - 1
-      ].payableAmount.toFixed(2);
-  } else {
-    summarizeTable[summarizeTable.length - 1] = 0.0;
   }
-  return summarizeTable;
+  const invoiceTotal = Array.from(invoiceByContract.values()).reduce(
+    (sum, v) => sum + v,
+    0
+  );
+
+  const paymentTotal = rows.reduce((sum, r) => sum + toNum(r?.paymentAmount), 0);
+
+  const columns = param?.columns || [];
+  const summary = columns.map((col, idx) => {
+    if (idx === 0) return "鍚堣";
+    const prop = col?.property ?? col?.prop;
+    if (prop === "invoiceAmount") return invoiceTotal.toFixed(2);
+    if (prop === "paymentAmount") return paymentTotal.toFixed(2);
+    return "";
+  });
+
+  if (summary.length > 0) {
+    summary[summary.length - 1] =
+      rows.length > 0 ? toNum(rows[rows.length - 1]?.payableAmount).toFixed(2) : "0.00";
+  }
+
+  return summary;
 };
 /** 鎼滅储鎸夐挳鎿嶄綔 */
 const handleQuery = () => {
@@ -238,8 +246,6 @@
   paymentLedgerList({
     ...searchForm.value,
     ...page,
-    detailPageNum: detailPageNum.value, // 鏂板
-    detailPageSize: detailPageSize.value, // 鏂板
   }).then((res) => {
     let result = res.data;
     tableLoading.value = false;
@@ -254,7 +260,7 @@
 
 const getPaymenRecordtList = (supplierId) => {
   tableLoadingSon.value = true;
-  paymentRecordList(supplierId)
+  paymentRecordList({supplierId: supplierId})
     .then((res) => {
       tableLoadingSon.value = false;
       tableDataSon.value = res.data;

--
Gitblit v1.9.3