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 | 159 +++++++++++++++++++++++++++++++++++++---------------
1 files changed, 113 insertions(+), 46 deletions(-)
diff --git a/src/views/salesManagement/receiptPaymentHistory/index.vue b/src/views/salesManagement/receiptPaymentHistory/index.vue
index 7dd8f18..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">
@@ -56,48 +46,56 @@
:isShowSummary="isShowSummarySon"
:summaryMethod="summarizeMainTable1"
:tableLoading="tableLoading"
- :total="total"
+ :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";
const { proxy } = getCurrentInstance();
const tableColumn = ref([
{
+ label: "閿�鍞悎鍚屽彿",
+ prop: "salesContractNo",
+ width:240
+ },
+ {
label: "鍥炴鏃ユ湡",
prop: "receiptPaymentDate",
+ width:100
},
{
label: "瀹㈡埛鍚嶇О",
prop: "customerName",
- },
- {
- label: "椤圭洰鍚嶇О",
- prop: "projectName",
- },
- {
- label: "鍚堝悓鍙�",
- prop: "customerContractNo",
- },
- {
- label: "椤圭洰鍚嶇О",
- prop: "projectName",
+ width:240
},
{
label: "鍥炴閲戦锛堝厓锛�",
prop: "receiptPaymentAmount",
+ width:200,
formatData: (params) => {
- return parseFloat(params).toFixed(2);
+ return params ? parseFloat(params).toFixed(2) : 0;
},
},
{
@@ -124,6 +122,15 @@
{
label: "鐧昏鏃ユ湡",
prop: "createTime",
+ width:100
+ },
+ {
+ label: "鎿嶄綔",
+ dataType: "slot",
+ fixed: "right",
+ slot: "operation",
+ width: 100,
+ align: "center",
},
]);
const tableData = ref([]);
@@ -132,21 +139,15 @@
const page = reactive({
current: 1,
size: 100,
+ total: 0,
});
const total = ref(0);
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);
@@ -167,7 +168,7 @@
receiptPaymentHistoryListPage({ ...rest, ...page }).then((res) => {
tableLoading.value = false;
tableData.value = res.records;
- total.value = res.total;
+ page.total = res.total;
});
};
// 瀛愯〃鍚堣鏂规硶
@@ -201,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