From 792ddec0ad8c5fe780ad65d4d04a38ae67ac4cea Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期六, 12 七月 2025 16:04:18 +0800 Subject: [PATCH] 1.来票台账页面未做分页 --- src/views/procurementManagement/invoiceEntry/index.vue | 104 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 94 insertions(+), 10 deletions(-) diff --git a/src/views/procurementManagement/invoiceEntry/index.vue b/src/views/procurementManagement/invoiceEntry/index.vue index 3f8fcf9..e632b12 100644 --- a/src/views/procurementManagement/invoiceEntry/index.vue +++ b/src/views/procurementManagement/invoiceEntry/index.vue @@ -24,8 +24,8 @@ <el-button type="primary" @click="handleAdd('add')"> 鏂板鐧昏 </el-button> - <el-button @click="handleOut">瀵煎嚭</el-button> - <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button> +<!-- <el-button @click="handleOut">瀵煎嚭</el-button>--> +<!-- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>--> </div> </div> <PIMTable @@ -40,8 +40,11 @@ total: pagination.total, }" :expand-row-keys="expandRowKeys" + :summaryMethod="summarizeMainTable" + :isShowSummary="true" @expand-change="expandChange" @selection-change="handleSelectionChange" + @pagination="changePage" > <template #expand="{ row }"> <ExpandTable ref="expandTableRef" /> @@ -58,16 +61,17 @@ </template> </PIMTable> </div> - <Modal ref="modalRef"></Modal> + <Modal ref="modalRef" @refreshList="getTableData"></Modal> </div> </template> <script setup> import { usePaginationApi } from "@/hooks/usePaginationApi"; -import { gePurchaseListPage } from "@/api/procurementManagement/invoiceEntry.js"; +import {delRegistration, gePurchaseListPage} from "@/api/procurementManagement/invoiceEntry.js"; import { nextTick, onMounted, getCurrentInstance } from "vue"; import ExpandTable from "./components/ExpandTable.vue"; import Modal from "./components/Modal.vue"; +import {ElMessageBox} from "element-plus"; defineOptions({ name: "鏉ョエ鐧昏", @@ -87,6 +91,7 @@ pagination, getTableData, resetFilters, + onCurrentChange, } = usePaginationApi( gePurchaseListPage, { @@ -99,20 +104,38 @@ slot: "expand", }, { + label: "閲囪喘璁㈠崟鍙�", + prop: "purchaseContractNumber", + width:150 + }, + { label: "閿�鍞悎鍚屽彿", prop: "salesContractNo", + width:150 }, { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", + width:300 }, { label: "椤圭洰鍚嶇О", prop: "projectName", + width:400 + }, + { + label: "褰曞叆浜�", + prop: "recorderName", + }, + { + label: "褰曞叆鏃ユ湡", + prop: "entryDate", + width:110 }, { label: "鍚堝悓閲戦(鍏�)", prop: "contractAmount", + width:200, formatData: (val) => { return val ? parseFloat(val).toFixed(2) : 0; }, @@ -120,6 +143,7 @@ { label: "宸插紑绁ㄩ噾棰�(鍏�)", prop: "receiptPaymentAmount", + width:200, formatData: (val) => { return val ? parseFloat(val).toFixed(2) : 0; }, @@ -127,6 +151,7 @@ { label: "寰呭紑绁ㄩ噾棰�(鍏�)", prop: "unReceiptPaymentAmount", + width:200, formatData: (val) => { return val ? parseFloat(val).toFixed(2) : 0; }, @@ -160,14 +185,73 @@ modalRef.value.open(type, id); }; -const handleOut = () => {}; -const handleDelete = () => {}; - -const expandChange = async (row, expandedRows) => { - await nextTick(); - expandTableRef.value.getList(row.id); +// 瀵煎嚭 +const handleOut = () => { + ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", { + confirmButtonText: "纭", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + proxy.download("/purchase/registration/export", {}, "鏉ョエ鐧昏.xlsx"); + }) + .catch(() => { + proxy.$modal.msg("宸插彇娑�"); + }); +}; +// 鍒犻櫎 +const handleDelete = () => { + let ids = []; + if (selectedRows.value.length > 0) { + // 鏂板鍒ゆ柇锛氬鏋滄湁閫変腑鐨勬暟鎹病鏈塼icketRegistrationId锛屾彁绀哄苟缁堟 + const noTicket = selectedRows.value.some(item => !item.ticketRegistrationId); + if (noTicket) { + proxy.$modal.msgWarning("閲囪喘鍙拌处杩樻湭杩涜鏉ョエ鐧昏,鏃犳硶杩涜鍒犻櫎鎿嶄綔"); + return; + } + ids = selectedRows.value.map((item) => item.ticketRegistrationId); + } else { + proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁"); + return; + } + ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", { + confirmButtonText: "纭", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + delRegistration(ids).then((res) => { + proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + getList(); + }); + }) + .catch(() => { + proxy.$modal.msg("宸插彇娑�"); + }); }; +const expandChange = async (row, expandedRows) => { + if (expandedRows.length > 0) { + await nextTick(); + expandTableRef.value.getList(row.id); + } +}; + +const changePage = ({ page }) => { + pagination.currentPage = page; + onCurrentChange(page); +}; +// 涓昏〃鍚堣鏂规硶 +const summarizeMainTable = (param) => { + return proxy.summarizeTable( + param, + ["contractAmount", "receiptPaymentAmount", "unReceiptPaymentAmount"], + { + ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + } + ); +}; onMounted(() => { getTableData(); }); -- Gitblit v1.9.3