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 | 129 +++++++++++++++++++++++++++++++++++++------
1 files changed, 111 insertions(+), 18 deletions(-)
diff --git a/src/views/equipmentManagement/ledger/index.vue b/src/views/equipmentManagement/ledger/index.vue
index 4327e98..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" :inline="true">
+ <!-- <el-form :model="filters" :inline="true">
<el-form-item label="鎼滅储">
<el-input
v-model="filters.searchText"
@@ -15,35 +15,59 @@
<el-button type="primary" @click="getTableData">鎼滅储</el-button>
<el-button @click="resetFilters">閲嶇疆</el-button>
</el-form-item>
- </el-form>
- <PIMTable
- :column="columns"
- :tableData="dataList"
- :page="{
- current: pagination.currentPage,
- size: pagination.pageSize,
- total: pagination.total,
- }"
- >
- <template #operation>
- <el-button type="primary" text>缂栬緫</el-button>
- <el-button type="danger" text>鍒犻櫎</el-button>
- </template>
- </PIMTable>
+ </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 modalRef = ref();
const { filters, columns, dataList, pagination, getTableData, resetFilters } =
usePaginationApi(
- () => {},
+ getLedgerPage,
{
searchText: undefined,
},
@@ -51,54 +75,123 @@
{
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: "150px",
+ 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