From 261f2ed00235d47df3754291a4fdca9ba5cb8e7a Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 21 五月 2026 17:16:09 +0800
Subject: [PATCH] fix: 合并财务数据

---
 src/views/financialManagement/payable/purchaseReturn.vue |  113 ++++++++++++++++++--------------------------------------
 1 files changed, 36 insertions(+), 77 deletions(-)

diff --git a/src/views/financialManagement/payable/purchaseReturn.vue b/src/views/financialManagement/payable/purchaseReturn.vue
index e7ca665..eeec383 100644
--- a/src/views/financialManagement/payable/purchaseReturn.vue
+++ b/src/views/financialManagement/payable/purchaseReturn.vue
@@ -1,26 +1,20 @@
 <template>
   <!-- 閲囪喘閫�璐� -->
-
   <div class="app-container">
     <el-form :model="filters" :inline="true">
       <el-form-item label="閫�璐у崟鍙�:">
-        <el-input
-          v-model="filters.returnNo"
-          placeholder="璇疯緭鍏ラ��璐у崟鍙�"
-          clearable
-          style="width: 200px"
-        />
+        <el-input v-model="filters.returnNo" placeholder="璇疯緭鍏ラ��璐у崟鍙�" clearable style="width: 200px;" />
       </el-form-item>
-
       <el-form-item label="渚涘簲鍟�:">
-        <el-input
-          v-model="filters.supplierName"
-          placeholder="璇疯緭鍏ヤ緵搴斿晢"
-          clearable
-          style="width: 200px"
-        />
+        <el-select v-model="filters.supplierId" placeholder="璇烽�夋嫨渚涘簲鍟�" clearable filterable style="width: 200px;">
+          <el-option
+            v-for="item in supplierList"
+            :key="item.id"
+            :label="item.supplierName"
+            :value="item.id"
+          />
+        </el-select>
       </el-form-item>
-
       <el-form-item label="閫�璐ф棩鏈�:">
         <el-date-picker
           v-model="filters.dateRange"
@@ -33,23 +27,18 @@
           clearable
         />
       </el-form-item>
-
       <el-form-item>
         <el-button type="primary" @click="onSearch">鎼滅储</el-button>
-
         <el-button @click="resetFilters">閲嶇疆</el-button>
       </el-form-item>
     </el-form>
-
     <div class="table_list">
       <div class="actions">
         <div></div>
-
         <div>
           <el-button @click="handleOut" icon="Download">瀵煎嚭</el-button>
         </div>
       </div>
-
       <PIMTable
         rowKey="id"
         :column="columns"
@@ -57,9 +46,7 @@
         :tableLoading="tableLoading"
         :page="{
           current: pagination.currentPage,
-
           size: pagination.pageSize,
-
           total: pagination.total,
         }"
         @pagination="changePage"
@@ -68,14 +55,11 @@
   </div>
 </template>
 
-
-
 <script setup>
 import { ref, reactive, onMounted, getCurrentInstance } from "vue";
-
 import { ElMessage } from "element-plus";
-
 import { listPageAccountPurchaseReturn } from "@/api/financialManagement/accountPurchase";
+import { listSupplier } from "@/api/basicData/supplierManageFile.js";
 
 defineOptions({
   name: "閲囪喘閫�璐�",
@@ -85,38 +69,26 @@
 
 const filters = reactive({
   returnNo: "",
-
-  supplierName: "",
-
+  supplierId: "",
   dateRange: [],
 });
 
 const pagination = reactive({
   currentPage: 1,
-
   pageSize: 10,
-
   total: 0,
 });
 
 const columns = [
   { label: "閫�璐у崟鍙�", prop: "returnNo", minWidth: "150" },
-
   { label: "渚涘簲鍟�", prop: "supplierName", minWidth: "180" },
-
   { label: "鍏宠仈鍏ュ簱鍗曞彿", prop: "inboundBatches", minWidth: "150" },
-
   { label: "閫�璐ф棩鏈�", prop: "preparedAt", minWidth: "170" },
-
   {
     label: "閫�娆炬�婚",
-
     prop: "totalAmount",
-
     minWidth: "150",
-
     align: "right",
-
     formatData: (val) =>
       val === null || val === undefined || val === ""
         ? ""
@@ -125,66 +97,65 @@
             maximumFractionDigits: 2,
           }),
   },
-
   { label: "閫�璐ф柟寮�", prop: "returnType", minWidth: "150" },
-
   { label: "閲囪喘璁㈠崟鍙�", prop: "purchaseContractNumber", minWidth: "150" },
 ];
 
 const dataList = ref([]);
-
 const tableLoading = ref(false);
+const supplierList = ref([]);
 
-function buildFilterParams() {
-  const params = {
-    returnNo: filters.returnNo || undefined,
-
-    supplierName: filters.supplierName || undefined,
-  };
-
-  if (filters.dateRange && filters.dateRange.length === 2) {
+const buildFilterParams = () => {
+  const params = {};
+  if (filters.returnNo) {
+    params.returnNo = filters.returnNo;
+  }
+  if (filters.supplierId) {
+    params.supplierId = filters.supplierId;
+  }
+  if (filters.dateRange?.length === 2) {
     params.startDate = filters.dateRange[0];
-
     params.endDate = filters.dateRange[1];
   }
-
   return params;
-}
+};
+
+const getSupplierList = () => {
+  listSupplier({ current: -1, size: -1, isWhite: 0 }).then((res) => {
+    if (res.code === 200) {
+      supplierList.value = res.data?.records ?? [];
+    }
+  });
+};
 
 const onSearch = () => {
   pagination.currentPage = 1;
-
   getTableData();
 };
 
 const getTableData = () => {
   tableLoading.value = true;
-
   listPageAccountPurchaseReturn({
     ...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 = [];
+        pagination.total = 0;
       }
     })
-
     .catch(() => {
       dataList.value = [];
+      pagination.total = 0;
+      ElMessage.error("鏌ヨ澶辫触");
     })
-
     .finally(() => {
       tableLoading.value = false;
     });
@@ -192,48 +163,36 @@
 
 const resetFilters = () => {
   filters.returnNo = "";
-
-  filters.supplierName = "";
-
+  filters.supplierId = "";
   filters.dateRange = [];
-
   pagination.currentPage = 1;
-
   getTableData();
 };
 
 const changePage = ({ page, limit }) => {
   pagination.currentPage = page;
-
   pagination.pageSize = limit;
-
   getTableData();
 };
 
 const handleOut = () => {
   proxy.download(
     "/accountPurchase/exportAccountPurchaseReturn",
-
     buildFilterParams(),
-
-    `閲囪喘閫�璐${new Date().getTime()}.xlsx`
+    `閲囪喘閫�璐${Date.now()}.xlsx`
   );
 };
 
 onMounted(() => {
+  getSupplierList();
   getTableData();
 });
 </script>
 
-
-
 <style lang="scss" scoped>
 .actions {
   display: flex;
-
   justify-content: space-between;
-
   margin-bottom: 15px;
 }
 </style>
-

--
Gitblit v1.9.3