From 9ea5ff67655241271bdf04bb50ca3a8d60c4e22a Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 11 八月 2026 15:07:02 +0800
Subject: [PATCH] fix: 用河南鹤壁代码覆盖山西长治

---
 src/views/financialManagement/receivable/salesOut.vue |  279 ++++++++++++++++++++++++-------------------------------
 1 files changed, 123 insertions(+), 156 deletions(-)

diff --git a/src/views/financialManagement/receivable/salesOut.vue b/src/views/financialManagement/receivable/salesOut.vue
index f6205d8..297a82c 100644
--- a/src/views/financialManagement/receivable/salesOut.vue
+++ b/src/views/financialManagement/receivable/salesOut.vue
@@ -1,33 +1,27 @@
 <template>
-  <!-- 閿�鍞嚭搴� -->
+<!-- 閿�鍞嚭搴� -->
   <div class="app-container">
-    <el-form :model="filters"
-             :inline="true">
+    <el-form :model="filters" :inline="true">
       <el-form-item label="鍑哄簱鍗曞彿:">
-        <el-input v-model="filters.outboundBatches"
-                  placeholder="璇疯緭鍏ュ嚭搴撳崟鍙�"
-                  clearable
-                  style="width: 200px;" />
+        <el-input v-model="filters.outboundBatches" placeholder="璇疯緭鍏ュ嚭搴撳崟鍙�" clearable style="width: 200px;" />
       </el-form-item>
       <el-form-item label="瀹㈡埛鍚嶇О:">
-        <el-input v-model="filters.customerName"
-                  placeholder="璇疯緭鍏ュ鎴峰悕绉�"
-                  clearable
-                  style="width: 200px;" />
+        <el-input v-model="filters.customerName" placeholder="璇疯緭鍏ュ鎴峰悕绉�" clearable style="width: 200px;" />
       </el-form-item>
       <el-form-item label="鍑哄簱鏃ユ湡:">
-        <el-date-picker v-model="filters.dateRange"
-                        value-format="YYYY-MM-DD"
-                        format="YYYY-MM-DD"
-                        type="daterange"
-                        range-separator="鑷�"
-                        start-placeholder="寮�濮嬫棩鏈�"
-                        end-placeholder="缁撴潫鏃ユ湡"
-                        clearable />
+        <el-date-picker
+          v-model="filters.dateRange"
+          value-format="YYYY-MM-DD"
+          format="YYYY-MM-DD"
+          type="daterange"
+          range-separator="鑷�"
+          start-placeholder="寮�濮嬫棩鏈�"
+          end-placeholder="缁撴潫鏃ユ湡"
+          clearable
+        />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary"
-                   @click="onSearch">鎼滅储</el-button>
+        <el-button type="primary" @click="onSearch">鎼滅储</el-button>
         <el-button @click="resetFilters">閲嶇疆</el-button>
       </el-form-item>
     </el-form>
@@ -35,168 +29,141 @@
       <div class="actions">
         <div></div>
         <div>
-          <el-button @click="handleOut"
-                     icon="Download">瀵煎嚭</el-button>
+          <el-button @click="handleOut" icon="Download">瀵煎嚭</el-button>
         </div>
       </div>
-      <PIMTable rowKey="id"
-                :column="columns"
-                :tableData="dataList"
-                :tableLoading="tableLoading"
-                isShowSummary
-                :summaryMethod="getSummaries"
-                :page="{
+      <PIMTable
+        rowKey="id"
+        :column="columns"
+        :tableData="dataList"
+        :tableLoading="tableLoading"
+        :page="{
           current: pagination.currentPage,
           size: pagination.pageSize,
           total: pagination.total,
         }"
-                @pagination="changePage" />
+        @pagination="changePage"
+      />
     </div>
   </div>
 </template>
 
 <script setup>
-  import { ref, reactive, onMounted, getCurrentInstance } from "vue";
-  import { ElMessage } from "element-plus";
-  import { listPageAccountSales } from "@/api/financialManagement/accountSales";
+import { ref, reactive, onMounted, getCurrentInstance } from "vue";
+import { ElMessage } from "element-plus";
+import { listPageAccountSales } from "@/api/financialManagement/accountSales";
 
-  defineOptions({
-    name: "閿�鍞嚭搴�",
-  });
+defineOptions({
+  name: "閿�鍞嚭搴�",
+});
 
-  const { proxy } = getCurrentInstance();
+const { proxy } = getCurrentInstance();
 
-  const filters = reactive({
-    outboundBatches: "",
-    customerName: "",
-    dateRange: [],
-  });
+const filters = reactive({
+  outboundBatches: "",
+  customerName: "",
+  dateRange: [],
+});
 
-  const pagination = reactive({
-    currentPage: 1,
-    pageSize: 10,
-    total: 0,
-  });
+const pagination = reactive({
+  currentPage: 1,
+  pageSize: 10,
+  total: 0,
+});
 
-  const columns = [
-    { label: "鍑哄簱鍗曞彿", prop: "outboundBatches", minWidth: "150" },
-    { label: "瀹㈡埛鍚嶇О", prop: "customerName", minWidth: "180" },
-    { label: "鍑哄簱鏃ユ湡", prop: "shippingDate", width: "170" },
-    { label: "浜у搧鍚嶇О", prop: "productName", minWidth: "140" },
-    { label: "瑙勬牸鍨嬪彿", prop: "specificationModel", minWidth: "140" },
-    {
-      label: "閲戦",
-      prop: "outboundAmount",
-      minWidth: "120",
-      formatData: val =>
-        val === null || val === undefined || val === ""
-          ? ""
-          : Number(val).toLocaleString("zh-CN", {
-              minimumFractionDigits: 2,
-              maximumFractionDigits: 2,
-            }),
-    },
-    { label: "鍙戣揣缂栧彿", prop: "shippingNo", minWidth: "140" },
-    { label: "閿�鍞鍗曞彿", prop: "salesContractNo", minWidth: "150" },
-  ];
+const columns = [
+  { label: "鍑哄簱鍗曞彿", prop: "outboundBatches", minWidth: "150" },
+  { label: "瀹㈡埛鍚嶇О", prop: "customerName", minWidth: "180" },
+  { label: "鍑哄簱鏃ユ湡", prop: "shippingDate", width: "170" },
+  { label: "浜у搧鍚嶇О", prop: "productName", minWidth: "140" },
+  { label: "浜у搧瑙勬牸", prop: "specificationModel", minWidth: "140" },
+  {
+    label: "閲戦",
+    prop: "outboundAmount",
+    minWidth: "120",
+    align: "right",
+    formatData: (val) => (val === null || val === undefined || val === "" ? "" : Number(val).toLocaleString("zh-CN", { minimumFractionDigits: 2, maximumFractionDigits: 2 })),
+  },
+  { label: "鍙戣揣缂栧彿", prop: "shippingNo", minWidth: "140" },
+  { label: "閿�鍞鍗曞彿", prop: "salesContractNo", minWidth: "150" },
+];
 
-  const dataList = ref([]);
-  const tableLoading = ref(false);
+const dataList = ref([]);
+const tableLoading = ref(false);
 
-  function buildFilterParams() {
-    const params = {
-      outboundBatches: filters.outboundBatches || undefined,
-      customerName: filters.customerName || undefined,
-    };
-    if (filters.dateRange && filters.dateRange.length === 2) {
-      params.startDate = filters.dateRange[0];
-      params.endDate = filters.dateRange[1];
-    }
-    return params;
+function buildFilterParams() {
+  const params = {
+    outboundBatches: filters.outboundBatches || undefined,
+    customerName: filters.customerName || undefined,
+  };
+  if (filters.dateRange && filters.dateRange.length === 2) {
+    params.startDate = filters.dateRange[0];
+    params.endDate = filters.dateRange[1];
   }
+  return params;
+}
 
-  const onSearch = () => {
-    pagination.currentPage = 1;
-    getTableData();
-  };
+const onSearch = () => {
+  pagination.currentPage = 1;
+  getTableData();
+};
 
-  const getTableData = () => {
-    tableLoading.value = true;
-    listPageAccountSales({
-      ...buildFilterParams(),
-      current: pagination.currentPage,
-      size: pagination.pageSize,
-    })
-      .then(res => {
-        const ok = res.code === 200 || res.code === 0;
-        if (ok && res.data) {
-          pagination.total = res.data.total ?? 0;
-          dataList.value = res.data.records ?? [];
-        } else {
-          ElMessage.error(res.msg || "鏌ヨ澶辫触");
-          dataList.value = [];
-        }
-      })
-      .catch(() => {
-        dataList.value = [];
-      })
-      .finally(() => {
-        tableLoading.value = false;
-      });
-  };
-
-  const resetFilters = () => {
-    filters.outboundBatches = "";
-    filters.customerName = "";
-    filters.dateRange = [];
-    pagination.currentPage = 1;
-    getTableData();
-  };
-
-  const changePage = ({ page, limit }) => {
-    pagination.currentPage = page;
-    pagination.pageSize = limit;
-    getTableData();
-  };
-
-  const getSummaries = ({ columns, data }) => {
-    const sums = [];
-    columns.forEach((col, index) => {
-      if (index === 0) {
-        sums[index] = "鍚堣";
-      } else if (col.property === "outboundAmount") {
-        const total = data.reduce((prev, cur) => {
-          const v = Number(cur.outboundAmount);
-          return prev + (isNaN(v) ? 0 : v);
-        }, 0);
-        sums[index] = total.toLocaleString("zh-CN", {
-          minimumFractionDigits: 2,
-          maximumFractionDigits: 2,
-        });
+const getTableData = () => {
+  tableLoading.value = true;
+  listPageAccountSales({
+    ...buildFilterParams(),
+    current: pagination.currentPage,
+    size: pagination.pageSize,
+  })
+    .then((res) => {
+      const ok = res.code === 200 || res.code === 0;
+      if (ok && res.data) {
+        pagination.total = res.data.total ?? 0;
+        dataList.value = res.data.records ?? [];
       } else {
-        sums[index] = "";
+        ElMessage.error(res.msg || "鏌ヨ澶辫触");
+        dataList.value = [];
       }
+    })
+    .catch(() => {
+      dataList.value = [];
+    })
+    .finally(() => {
+      tableLoading.value = false;
     });
-    return sums;
-  };
+};
 
-  const handleOut = () => {
-    proxy.download(
-      "/accountSales/exportAccountSalesOutbound",
-      buildFilterParams(),
-      `閿�鍞嚭搴揰${new Date().getTime()}.xlsx`
-    );
-  };
+const resetFilters = () => {
+  filters.outboundBatches = "";
+  filters.customerName = "";
+  filters.dateRange = [];
+  pagination.currentPage = 1;
+  getTableData();
+};
 
-  onMounted(() => {
-    getTableData();
-  });
+const changePage = ({ page, limit }) => {
+  pagination.currentPage = page;
+  pagination.pageSize = limit;
+  getTableData();
+};
+
+const handleOut = () => {
+  proxy.download(
+    "/accountSales/exportAccountSalesOutbound",
+    buildFilterParams(),
+    `閿�鍞嚭搴揰${new Date().getTime()}.xlsx`
+  );
+};
+
+onMounted(() => {
+  getTableData();
+});
 </script>
 
 <style lang="scss" scoped>
-  .actions {
-    display: flex;
-    justify-content: space-between;
-    margin-bottom: 15px;
-  }
+.actions {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 15px;
+}
 </style>

--
Gitblit v1.9.3