gongchunyi
2026-10-01 f0da4c9667baefbf65e62df30e1d1a25d1fae930
src/views/procurementManagement/paymentLedger/index.vue
@@ -79,7 +79,7 @@
                    @pagination="sonPaginationSearch">
            <template #payableAmountSlot="{ row }">
              <el-text type="danger">
                {{ formatDecimal(row.unshippedAmount) }}
                {{ formatAmount(row.unshippedAmount) }}
              </el-text>
            </template>
          </PIMTable>
@@ -97,7 +97,12 @@
    paymentRecordList,
  } from "@/api/procurementManagement/paymentLedger.js";
  import Pagination from "../../../components/PIMTable/Pagination.vue";
  import { tableAmountFormatter, formatDecimal, buildAmountSummaryFormat } from "@/utils/numberFormat";
  const AMOUNT_SCALE = 2;
  const formatAmount = value => {
    const num = Number(value);
    return Number.isNaN(num) ? "0.00" : num.toFixed(AMOUNT_SCALE);
  };
  const tableData = ref([]);
  const tableLoading = ref(false);
@@ -141,13 +146,13 @@
      label: "合同金额(元)",
      prop: "contractAmount",
      width: 200,
      formatData: params => formatDecimal(params),
      formatData: params => formatAmount(params),
    },
    {
      label: "已入库金额(元)",
      prop: "shippedAmount",
      width: 200,
      formatData: params => formatDecimal(params),
      formatData: params => formatAmount(params),
    },
    {
      label: "未入库金额(元)",
@@ -163,34 +168,23 @@
  const isShowSummarySon = ref(true);
  const { proxy } = getCurrentInstance();
  // 合计行按两位小数固定展示
  const summarizeAmounts = (param, amountProps) => {
    const sums = proxy.summarizeTable(param, amountProps);
    param.columns.forEach((column, index) => {
      if (amountProps.includes(column.property) && sums[index] !== "") {
        sums[index] = formatAmount(sums[index]);
      }
    });
    return sums;
  };
  // 主表合计方法
  const summarizeMainTable = param => {
    return proxy.summarizeTable(
      param,
      ["contractAmounts", "shippedAmount", "unshippedAmount"],
      buildAmountSummaryFormat(
        ["contractAmounts", "shippedAmount", "unshippedAmount"],
        {
          ticketsNum: { noDecimal: true },
          futureTickets: { noDecimal: true },
        }
      )
    );
    return summarizeAmounts(param, ["contractAmounts", "shippedAmount", "unshippedAmount"]);
  };
  // 子表合计方法
  const summarizeMainTable1 = param => {
    let summarizeTable = proxy.summarizeTable(
      param,
      ["contractAmount", "shippedAmount", "unshippedAmount"],
      buildAmountSummaryFormat(
        ["contractAmount", "shippedAmount", "unshippedAmount"],
        {
          ticketsNum: { noDecimal: true },
          futureTickets: { noDecimal: true },
        }
      )
    );
    return summarizeTable;
    return summarizeAmounts(param, ["contractAmount", "shippedAmount", "unshippedAmount"]);
  };
  /** 搜索按钮操作 */
  const handleQuery = () => {
@@ -260,7 +254,7 @@
    sonPage.size = pagination.limit;
    getPaymenRecordtList(currentSupplierId.value);
  };
  const formattedNumber = tableAmountFormatter;
  const formattedNumber = (row, column, cellValue) => formatAmount(cellValue);
  getList();
</script>