From bbd880d66e993f80670259882f2feca1b150d1ae Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期五, 16 一月 2026 17:58:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/views/salesManagement/receiptPaymentHistory/index.vue |  141 +++++++++++++++++++++++++++++++++-------------
 1 files changed, 100 insertions(+), 41 deletions(-)

diff --git a/src/views/salesManagement/receiptPaymentHistory/index.vue b/src/views/salesManagement/receiptPaymentHistory/index.vue
index ea373ea..f66bed7 100644
--- a/src/views/salesManagement/receiptPaymentHistory/index.vue
+++ b/src/views/salesManagement/receiptPaymentHistory/index.vue
@@ -10,24 +10,6 @@
           :prefix-icon="Search"
         />
       </el-form-item>
-      <el-form-item label="瀹㈡埛鍚堝悓鍙�">
-        <el-input
-          v-model="searchForm.customerContractNo"
-          placeholder="杈撳叆瀹㈡埛鍚堝悓鍙�"
-          @change="handleQuery"
-          clearable
-          :prefix-icon="Search"
-        />
-      </el-form-item>
-      <el-form-item label="椤圭洰鍚嶇О">
-        <el-input
-          v-model="searchForm.projectName"
-          placeholder="杈撳叆椤圭洰鍚嶇О"
-          @change="handleQuery"
-          clearable
-          :prefix-icon="Search"
-        />
-      </el-form-item>
       <el-form-item label="鍥炴鏃ユ湡">
         <el-date-picker
           v-model="searchForm.receiptPaymentDate"
@@ -44,6 +26,14 @@
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="handleQuery"> 鎼滅储 </el-button>
+        <el-button @click="handleExport">瀵煎嚭</el-button>
+        <el-button
+          type="danger"
+          :disabled="selectedRows.length === 0"
+          @click="handleBatchDelete"
+        >
+          鎵归噺鍒犻櫎 ({{ selectedRows.length }})
+        </el-button>
       </el-form-item>
     </el-form>
     <div class="table_list">
@@ -59,15 +49,27 @@
         :total="page.total"
         @pagination="pagination"
         @selection-change="handleSelectionChange"
-      ></PIMTable>
+      >
+        <template #operation="{ row }">
+          <el-button
+            type="primary"
+            link
+            size="small"
+            @click="handleDelete(row)"
+          >
+            鍒犻櫎
+          </el-button>
+        </template>
+      </PIMTable>
     </div>
   </div>
 </template>
 
 <script setup>
-import { ref } from "vue";
+import { ref, reactive, getCurrentInstance, onMounted } from "vue";
 import { Search } from "@element-plus/icons-vue";
-import { receiptPaymentHistoryListPage } from "@/api/salesManagement/receiptPayment.js";
+import { ElMessageBox } from "element-plus";
+import { receiptPaymentHistoryListPage, receiptPaymentDel } from "@/api/salesManagement/receiptPayment.js";
 import useFormData from "@/hooks/useFormData";
 import dayjs from "dayjs";
 
@@ -79,11 +81,6 @@
     width:240
   },
   {
-    label: "瀹㈡埛鍚堝悓鍙�",
-    prop: "customerContractNo",
-    width:240
-  },
-  {
     label: "鍥炴鏃ユ湡",
     prop: "receiptPaymentDate",
     width:100
@@ -92,11 +89,6 @@
     label: "瀹㈡埛鍚嶇О",
     prop: "customerName",
     width:240
-  },
-  {
-    label: "椤圭洰鍚嶇О",
-    prop: "projectName",
-    width:200
   },
   {
     label: "鍥炴閲戦锛堝厓锛�",
@@ -132,6 +124,14 @@
     prop: "createTime",
     width:100
   },
+  {
+    label: "鎿嶄綔",
+    dataType: "slot",
+    fixed: "right",
+    slot: "operation",
+    width: 100,
+    align: "center",
+  },
 ]);
 const tableData = ref([]);
 const selectedRows = ref([]);
@@ -145,16 +145,9 @@
 
 const { form: searchForm } = useFormData({
   searchText: undefined,
-  receiptPaymentDate: [
-    dayjs().startOf("month").format("YYYY-MM-DD"),
-    dayjs().endOf("month").format("YYYY-MM-DD"),
-  ],
-  receiptPaymentDateStart: dayjs()
-    .startOf("month")
-    .format("YYYY-MM-DD 00:00:00"),
-  receiptPaymentDateEnd: dayjs().endOf("month").format("YYYY-MM-DD 23:59:59"),
-  customerContractNo: undefined,
-  projectName: undefined,
+  receiptPaymentDate: [],
+  receiptPaymentDateStart: undefined,
+  receiptPaymentDateEnd: undefined,
 });
 const { receipt_payment_type } = proxy.useDict("receipt_payment_type");
 const isShowSummarySon = ref(true);
@@ -209,6 +202,72 @@
   getList();
 };
 
+// 鍒犻櫎
+const handleDelete = (row) => {
+  ElMessageBox.confirm("纭鍒犻櫎璇ヨ褰曞悧锛�", "鎻愮ず", {
+    confirmButtonText: "纭畾",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(async () => {
+      try {
+        tableLoading.value = true;
+        await receiptPaymentDel([row.id]);
+        proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        getList();
+      } catch (error) {
+        console.error("鍒犻櫎澶辫触:", error);
+        proxy.$modal.msgError("鍒犻櫎澶辫触");
+      } finally {
+        tableLoading.value = false;
+      }
+    })
+    .catch(() => {
+      proxy.$modal.msg("宸插彇娑堝垹闄�");
+    });
+};
+
+// 鎵归噺鍒犻櫎
+const handleBatchDelete = () => {
+  if (selectedRows.value.length === 0) {
+    proxy.$modal.msgWarning("璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁");
+    return;
+  }
+  ElMessageBox.confirm(
+    `纭畾瑕佸垹闄ら�変腑鐨� ${selectedRows.value.length} 鏉℃暟鎹悧锛焋,
+    "鍒犻櫎鎻愮ず",
+    {
+      confirmButtonText: "纭",
+      cancelButtonText: "鍙栨秷",
+      type: "warning",
+    }
+  )
+    .then(async () => {
+      try {
+        tableLoading.value = true;
+        const ids = selectedRows.value.map((item) => item.id);
+        await receiptPaymentDel(ids);
+        proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        selectedRows.value = [];
+        getList();
+      } catch (error) {
+        console.error("鍒犻櫎澶辫触:", error);
+        proxy.$modal.msgError("鍒犻櫎澶辫触");
+      } finally {
+        tableLoading.value = false;
+      }
+    })
+    .catch(() => {
+      proxy.$modal.msg("宸插彇娑�");
+    });
+};
+
+// 瀵煎嚭
+const handleExport = () => {
+  const { receiptPaymentDate, ...rest } = searchForm;
+  proxy.download("/receiptPayment/exportOne", { ...rest, ...page }, "鍥炴娴佹按.xlsx");
+};
+
 onMounted(() => {
   getList();
 });

--
Gitblit v1.9.3