From ab931df688abda05e196cae02bb6167777414b4e Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期六, 12 七月 2025 16:01:06 +0800 Subject: [PATCH] 1.权限修改 --- src/views/procurementManagement/invoiceEntry/index.vue | 83 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 74 insertions(+), 9 deletions(-) diff --git a/src/views/procurementManagement/invoiceEntry/index.vue b/src/views/procurementManagement/invoiceEntry/index.vue index c7376ee..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,6 +40,8 @@ total: pagination.total, }" :expand-row-keys="expandRowKeys" + :summaryMethod="summarizeMainTable" + :isShowSummary="true" @expand-change="expandChange" @selection-change="handleSelectionChange" @pagination="changePage" @@ -59,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: "鏉ョエ鐧昏", @@ -103,18 +106,22 @@ { label: "閲囪喘璁㈠崟鍙�", prop: "purchaseContractNumber", + width:150 }, { label: "閿�鍞悎鍚屽彿", prop: "salesContractNo", + width:150 }, { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", + width:300 }, { label: "椤圭洰鍚嶇О", prop: "projectName", + width:400 }, { label: "褰曞叆浜�", @@ -123,10 +130,12 @@ { label: "褰曞叆鏃ユ湡", prop: "entryDate", + width:110 }, { label: "鍚堝悓閲戦(鍏�)", prop: "contractAmount", + width:200, formatData: (val) => { return val ? parseFloat(val).toFixed(2) : 0; }, @@ -134,6 +143,7 @@ { label: "宸插紑绁ㄩ噾棰�(鍏�)", prop: "receiptPaymentAmount", + width:200, formatData: (val) => { return val ? parseFloat(val).toFixed(2) : 0; }, @@ -141,6 +151,7 @@ { label: "寰呭紑绁ㄩ噾棰�(鍏�)", prop: "unReceiptPaymentAmount", + width:200, formatData: (val) => { return val ? parseFloat(val).toFixed(2) : 0; }, @@ -174,19 +185,73 @@ modalRef.value.open(type, id); }; -const handleOut = () => {}; -const handleDelete = () => {}; +// 瀵煎嚭 +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) => { - await nextTick(); - expandTableRef.value.getList(row.id); + 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