From 4b1304917b0b16b09dd50191fab59d96933c0cf3 Mon Sep 17 00:00:00 2001
From: 曹睿 <360930172@qq.com>
Date: 星期二, 17 六月 2025 17:31:11 +0800
Subject: [PATCH] feat: 6月15日任务完90%

---
 src/views/procurementManagement/paymentLedger/index.vue |  159 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 91 insertions(+), 68 deletions(-)

diff --git a/src/views/procurementManagement/paymentLedger/index.vue b/src/views/procurementManagement/paymentLedger/index.vue
index b0f9a92..69a0947 100644
--- a/src/views/procurementManagement/paymentLedger/index.vue
+++ b/src/views/procurementManagement/paymentLedger/index.vue
@@ -41,33 +41,38 @@
               type="index"
               width="60"
             />
+            <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" />
             <el-table-column
-              v-for="(item, index) in tableColumn"
-              :key="index"
-              :column-key="item.columnKey"
-              :filter-method="item.filterHandler"
-              :filter-multiple="item.filterMultiple"
-              :filtered-value="item.filteredValue"
-              :filters="item.filters"
-              :fixed="item.fixed"
-              :label="item.label"
-              :prop="item.prop"
+              label="鍙戠エ閲戦(鍏�)"
+              prop="invoiceAmount"
               show-overflow-tooltip
-              :align="item.align"
-              :sortable="!!item.sortable"
-              :type="item.type"
-              :width="item.width"
               :formatter="formattedNumber"
+            />
+            <el-table-column
+              label="浠樻閲戦(鍏�)"
+              prop="paymentAmount"
+              show-overflow-tooltip
+              :formatter="formattedNumber"
+            />
+            <el-table-column
+              label="搴斾粯閲戦(鍏�)"
+              prop="payableAmount"
+              show-overflow-tooltip
             >
+              <template #default="{ row, column }">
+                <el-text type="danger">
+                  {{ formattedNumber(row, column, row.payableAmount) }}
+                </el-text>
+              </template>
             </el-table-column>
           </el-table>
           <pagination
-              v-show="total > 0"
-              @pagination="paginationSearch"
-              :total="total"
-              :layout="page.layout"
-              :page="page.current"
-              :limit="page.size"
+            v-show="total > 0"
+            @pagination="paginationSearch"
+            :total="total"
+            :layout="page.layout"
+            :page="page.current"
+            :limit="page.size"
           />
         </div>
       </el-col>
@@ -80,14 +85,20 @@
             :tableLoading="tableLoadingSon"
             :isShowSummary="isShowSummarySon"
             :summaryMethod="summarizeMainTable1"
-          ></PIMTable>
+          >
+            <template #payableAmountSlot="{ row }">
+              <el-text type="danger">
+                {{ parseFloat(row.payableAmount).toFixed(2) }}
+              </el-text>
+            </template>
+          </PIMTable>
           <pagination
-              v-show="sonTotal > 0"
-              :total="sonTotal"
-              @pagination="sonPaginationSearch"
-              :layout="page.layout"
-              :page="sonPage.current"
-              :limit="sonPage.size"
+            v-show="sonTotal > 0"
+            :total="sonTotal"
+            @pagination="sonPaginationSearch"
+            :layout="page.layout"
+            :page="sonPage.current"
+            :limit="sonPage.size"
           />
         </div>
       </el-col>
@@ -98,7 +109,10 @@
 <script setup>
 import { ref, toRefs } from "vue";
 import { Search } from "@element-plus/icons-vue";
-import { paymentLedgerList,paymentRecordList } from "@/api/procurementManagement/paymentLedger.js";
+import {
+  paymentLedgerList,
+  paymentRecordList,
+} from "@/api/procurementManagement/paymentLedger.js";
 import Pagination from "../../../components/PIMTable/Pagination.vue";
 
 const tableColumn = ref([
@@ -138,10 +152,10 @@
 const sonTotal = ref(0);
 const isShowSummary = ref(true);
 const { searchForm } = toRefs(data);
-const currentSupplierId = ref('')
+const currentSupplierId = ref("");
 const rowClick = (row) => {
   currentSupplierId.value = row.supplierId;
-  getPaymenRecordtList(row.supplierId)
+  getPaymenRecordtList(row.supplierId);
 };
 // 瀛愭ā鍧�
 const tableColumnSon = ref([
@@ -154,21 +168,19 @@
     prop: "invoiceAmount",
     formatData: (params) => {
       return parseFloat(params).toFixed(2);
-    }
+    },
   },
   {
     label: "浠樻閲戦(鍏�)",
     prop: "currentPaymentAmount",
     formatData: (params) => {
       return parseFloat(params).toFixed(2);
-    }
+    },
   },
   {
     label: "搴斾粯閲戦(鍏�)",
-    prop: "payableAmount",
-    formatData: (params) => {
-      return parseFloat(params).toFixed(2);
-    }
+    dataType: "slot",
+    slot: "payableAmountSlot",
   },
 ]);
 const tableDataSon = ref([]);
@@ -177,34 +189,45 @@
 const isShowSummarySon = ref(true);
 const detailPageNum = ref(1);
 const detailPageSize = ref(10);
-const { proxy } = getCurrentInstance()
+const { proxy } = getCurrentInstance();
 
 // 涓昏〃鍚堣鏂规硶
 const summarizeMainTable = (param) => {
-  return proxy.summarizeTable(param, ['invoiceAmount', 'paymentAmount', 'payableAmount'], {
-    ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
-    futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
-  });
+  return proxy.summarizeTable(
+    param,
+    ["invoiceAmount", "paymentAmount", "payableAmount"],
+    {
+      ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+      futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+    }
+  );
 };
 // 瀛愯〃鍚堣鏂规硶
 const summarizeMainTable1 = (param) => {
-  let summarizeTable = proxy.summarizeTable(param, ['invoiceAmount', 'currentPaymentAmount'], {
-    ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
-    futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
-  });
-  if(originalTableDataSon.value.length > 0) {
-    summarizeTable[summarizeTable.length -1] = originalTableDataSon.value[originalTableDataSon.value.length - 1].payableAmount.toFixed(2)
-  }else {
-    summarizeTable[summarizeTable.length -1] = 0.00
+  let summarizeTable = proxy.summarizeTable(
+    param,
+    ["invoiceAmount", "currentPaymentAmount"],
+    {
+      ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+      futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+    }
+  );
+  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
+  return summarizeTable;
 };
 /** 鎼滅储鎸夐挳鎿嶄綔 */
 const handleQuery = () => {
   page.current = 1;
   getList();
 };
-const paginationSearch = ( obj) => {
+const paginationSearch = (obj) => {
   page.current = obj.page;
   page.size = obj.limit;
   getList();
@@ -221,25 +244,26 @@
     tableLoading.value = false;
     tableData.value = result.records || [];
     total.value = result.total || 0;
-    if(tableData.value.length > 0) {
+    if (tableData.value.length > 0) {
       getPaymenRecordtList(tableData.value[0].supplierId);
-      currentSupplierId.value = tableData.value[0].supplierId
+      currentSupplierId.value = tableData.value[0].supplierId;
     }
-
   });
 };
 
 const getPaymenRecordtList = (supplierId) => {
   tableLoadingSon.value = true;
-  paymentRecordList(supplierId).then(res => {
-    tableLoadingSon.value = false;
-    tableDataSon.value = res.data
-    handlePagination({ page: 1, limit: sonPage.size });
-    sonTotal.value = res.data.length
-  }).catch((e) => {
-    tableLoadingSon.value = false;
-  })
-}
+  paymentRecordList(supplierId)
+    .then((res) => {
+      tableLoadingSon.value = false;
+      tableDataSon.value = res.data;
+      handlePagination({ page: 1, limit: sonPage.size });
+      sonTotal.value = res.data.length;
+    })
+    .catch((e) => {
+      tableLoadingSon.value = false;
+    });
+};
 const handlePagination = ({ page, limit }) => {
   sonPage.current = page;
   sonPage.size = limit;
@@ -248,24 +272,23 @@
   const end = start + limit;
 
   originalTableDataSon.value = tableDataSon.value.slice(start, end);
-}
+};
 
 const sonPaginationSearch = (pagination) => {
   // 鎺ユ敹鍒嗛〉鍣ㄥ弬鏁� { page, limit }
   handlePagination(pagination);
-}
+};
 const formattedNumber = (row, column, cellValue) => {
-  if (column.property !== 'supplierName') {
+  if (column.property !== "supplierName") {
     return parseFloat(cellValue).toFixed(2);
   } else {
-    return cellValue
+    return cellValue;
   }
 };
 getList();
 </script>
 
 <style scoped lang="scss">
-
 .el-pagination {
   width: 100%;
   height: 55px;

--
Gitblit v1.9.3