From 76a985e3d790e506eef36c4df7442a95db0b29a3 Mon Sep 17 00:00:00 2001 From: 曹睿 <360930172@qq.com> Date: 星期一, 23 六月 2025 16:48:00 +0800 Subject: [PATCH] feat: 完成设备台账 --- src/views/equipmentManagement/ledger/index.vue | 183 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 171 insertions(+), 12 deletions(-) diff --git a/src/views/equipmentManagement/ledger/index.vue b/src/views/equipmentManagement/ledger/index.vue index 3ecac9d..590bc01 100644 --- a/src/views/equipmentManagement/ledger/index.vue +++ b/src/views/equipmentManagement/ledger/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="filters"> + <!-- <el-form :model="filters" :inline="true"> <el-form-item label="鎼滅储"> <el-input v-model="filters.searchText" @@ -11,28 +11,187 @@ @change="getTableData" /> </el-form-item> - </el-form> - <PIMTable :column="columns" /> + <el-form-item> + <el-button type="primary" @click="getTableData">鎼滅储</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 type="primary" @click="add" icon="Plus"> 鏂板 </el-button> + <el-button @click="handleOut" icon="download">瀵煎嚭</el-button> + </div> + </div> + <PIMTable + :column="columns" + :tableData="dataList" + :page="{ + current: pagination.currentPage, + size: pagination.pageSize, + total: pagination.total, + }" + > + <template #operation="{ row }"> + <el-button type="primary" text @click="edit(row.id)" icon="editPen"> + 缂栬緫 + </el-button> + <el-button + type="danger" + text + icon="delete" + @click="deleteRow(row.id)" + > + 鍒犻櫎 + </el-button> + </template> + </PIMTable> + </div> + <Modal ref="modalRef" @success="getTableData"></Modal> </div> </template> <script setup> import { usePaginationApi } from "@/hooks/usePaginationApi"; import { Search } from "@element-plus/icons-vue"; +import { getLedgerPage, delLedger } from "@/api/equipmentManagement/ledger"; +import { onMounted } from "vue"; +import Modal from "./Modal.vue"; +import { ElMessageBox } from "element-plus"; defineOptions({ name: "璁惧鍙拌处", }); -const { filters, columns, getTableData } = usePaginationApi( - () => {}, - { - searchText: undefined, - }, - [ +const modalRef = ref(); +const { filters, columns, dataList, pagination, getTableData, resetFilters } = + usePaginationApi( + getLedgerPage, { - label: "璁惧鍚嶇О", + searchText: undefined, }, - ] -); + [ + { + label: "璁惧鍚嶇О", + align: "center", + prop: "deviceName", + }, + { + label: "瑙勬牸鍨嬪彿", + align: "center", + prop: "deviceModel", + }, + { + label: "渚涘簲鍟�", + align: "center", + prop: "supplierName", + }, + { + label: "鍗曚綅", + align: "center", + prop: "unit", + }, + { + label: "鏁伴噺", + align: "center", + prop: "number", + }, + { + label: "鍚◣鍗曚环", + align: "center", + prop: "taxIncludingPriceUnit", + }, + { + label: "鍚◣鎬讳环", + align: "center", + prop: "taxIncludingPriceTotal", + }, + { + label: "绋庣巼", + align: "center", + prop: "taxRate", + }, + { + label: "涓嶅惈绋庢�讳环", + align: "center", + prop: "unTaxIncludingPriceTotal", + }, + { + label: "褰曞叆浜�", + align: "center", + prop: "createUser", + }, + { + label: "褰曞叆鏃ユ湡", + align: "center", + prop: "createTime", + }, + { + fixed: "right", + label: "鎿嶄綔", + dataType: "slot", + slot: "operation", + align: "center", + width: "200px", + }, + ] + ); + +const add = () => { + modalRef.value.openModal(); +}; +const edit = (id) => { + modalRef.value.loadForm(id); +}; + +const deleteRow = (id) => { + ElMessageBox.confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }).then(async () => { + const { code } = await delLedger(id); + if (code == 200) { + ElMessage({ + type: "success", + message: "鍒犻櫎鎴愬姛", + }); + getTableData(); + } + }); +}; + +const handleOut = () => { + ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", { + confirmButtonText: "纭", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + proxy.download( + `/device/ledger/export?ids=${ids}`, + {}, + "璁惧鍙拌处妗f.xlsx" + ); + }) + .catch(() => { + proxy.$modal.msg("宸插彇娑�"); + }); +}; + +onMounted(() => { + getTableData(); +}); </script> + +<style lang="scss" scoped> +.table_list { + margin-top: unset; +} +.actions { + display: flex; + justify-content: space-between; + margin-bottom: 10px; +} +</style> -- Gitblit v1.9.3