From 26ec28bc8764a48b029a301effa4c7f7345b1d6b Mon Sep 17 00:00:00 2001 From: zhang_12370 <z2864490065@outlook.com> Date: 星期六, 12 七月 2025 14:32:02 +0800 Subject: [PATCH] 1、删除无用模块并配置个性化新增方案 2、完善领用记录的查看功能等功能 --- src/views/equipment/management/index.vue | 131 ++++++++++++++++++++++++++++++++++++++----- 1 files changed, 116 insertions(+), 15 deletions(-) diff --git a/src/views/equipment/management/index.vue b/src/views/equipment/management/index.vue index 2ceb04b..8c9d8be 100644 --- a/src/views/equipment/management/index.vue +++ b/src/views/equipment/management/index.vue @@ -30,8 +30,11 @@ <!-- 鎿嶄綔鎸夐挳鍖� --> <el-row :gutter="24" class="table-toolbar"> - <el-button :icon="Plus" type="primary" @click="handleAdd" - >鏂板缓</el-button + <el-button :icon="Plus" type="primary" v-show="activeTab === 'management'" @click="handleAdd" + >璁惧鏂板</el-button + > + <el-button :icon="Plus" type="primary" v-show="activeTab === 'equipmentRequisition'" @click="handleAdd" + >棰嗙敤</el-button > <el-button :icon="Delete" type="danger" @click="handleDelete" >鍒犻櫎</el-button @@ -40,6 +43,7 @@ <!-- 琛ㄦ牸缁勪欢 --> <div> <data-table + :showOverflowTooltip="false" :border="true" :columns="columns" :loading="loading" @@ -51,6 +55,7 @@ @selection-change="handleSelectionChange" :operations="['edit', 'viewRow']" :operationsWidth="200" + > <!-- 瀛楁鍚嶇О鍒楃殑鑷畾涔夋彃妲� - 鏄剧ず涓烘爣绛� --> <template @@ -87,12 +92,29 @@ @pagination="handPagination" /> <managementDialog + v-if="activeTab == 'management'" v-model:copyForm="copyForm" v-model:managementFormDialog="manaDialog" :addOrEdit="addOrEdit" :form="form" @submit="getList" ></managementDialog> + <EquipmentRequisition + v-if="activeTab == 'equipmentRequisition'" + v-model="equipmentRequisitionDialog" + :formData="form" + :maxQuantity="getMaxQuantity()" + :addOrEdit="addOrEdit" + @submit="onEquipmentRequisitionSubmit" + /> + <!-- <UsageRecord + v-if="activeTab == 'usageRecord'" + v-model:copyForm="copyForm" + v-model:usageRecordDialog="usageRecordDialog" + :addOrEdit="addOrEdit" + :form="form" + @submit="getList" + /> --> </el-card> </div> </template> @@ -106,10 +128,13 @@ import DataTable from "@/components/Table/ETable.vue"; import Pagination from "@/components/Pagination"; import managementDialog from "./mould/managementDialog.vue"; +import EquipmentRequisition from "./mould/equipmentRequisitionDialog.vue"; +import UsageRecord from "./mould/usageRecord.vue"; // API 鏈嶅姟瀵煎叆 import { useDelete } from "@/hooks/useDelete.js"; import { getManagementList, delEquipment } from "@/api/equipment/management/index.js"; +import { getUsageRecordList } from "@/api/equipment/requisition/index.js"; // 鍝嶅簲寮忕姸鎬佺鐞� const form = ref({}); @@ -117,6 +142,8 @@ const copyForm = ref({}); const addOrEdit = ref("add"); const manaDialog = ref(false); +const equipmentRequisitionDialog = ref(false); +const usageRecordDialog = ref(false); const loading = ref(false); const activeTab = ref("management"); const selectedRows = ref([]); @@ -141,21 +168,59 @@ api: getManagementList, deleteApi: delEquipment, columns: [ - { prop: "equipmentId", label: "璁惧缂栧彿", minWidth: 100 }, + { prop: "equipmentNo", label: "璁惧缂栧彿", minWidth: 100 }, { prop: "equipmentName", label: "璁惧鍚嶇О", minWidth: 100 }, - { prop: "quantity", label: "鏁伴噺", minWidth: 100 }, + { prop: "quantity", label: "鎬绘暟閲�", minWidth: 100 }, + { prop: "usedNo", label: "宸蹭娇鐢ㄦ暟閲�", minWidth: 100 }, { prop: "specification", label: "瑙勬牸鍨嬪彿", minWidth: 100 }, - { - prop: "usageStatus", - label: "浣跨敤鐘舵��", - minWidth: 100, - formatter: (row) => row.usageStatus == 1 ? "鍚敤" : "绂佺敤" - }, - { prop: "usingDepartment", label: "浣跨敤閮ㄩ棬", minWidth: 100 }, { prop: "purchaseDate", label: "閲囪喘鏃ユ湡", minWidth: 100 }, { prop: "purchasePrice", label: "閲囪喘浠锋牸", minWidth: 100 }, ] - } + }, + equipmentRequisition:{ + label: "璁惧棰嗙敤", + searchPlaceholder: "璁惧缂栧彿/璁惧鍚嶇О/瑙勬牸鍨嬪彿", + showSearch: true, + api: getUsageRecordList, + deleteApi: null, + columns: [ + { prop: "userName", label: "棰嗙敤浜�", minWidth: 100 }, + { prop: "equipmentNo", label: "璁惧缂栧彿", minWidth: 100 }, + { prop: "equipmentName", label: "璁惧鍚嶇О", minWidth: 100 }, + { prop: "usageQuantity", label: "棰嗙敤鏁伴噺", minWidth: 100 }, + { + prop: "equipmentStatus", + label: "浣跨敤鐘舵��", + minWidth: 100, + formatter: (row) => row.usageStatus == 1 ? "浣跨敤涓�" : "宸插綊杩�" + }, + { prop: "usageStartTime", label: "浣跨敤寮�濮嬫椂闂�", minWidth: 100 }, + { prop: "usageEndTime", label: "浣跨敤缁撴潫鏃堕棿", minWidth: 100 }, + { prop: "remarks", label: "澶囨敞", minWidth: 100 }, + ] + }, + // usageRecord:{ + // label: "棰嗙敤璁板綍", + // searchPlaceholder: "璁惧缂栧彿/璁惧鍚嶇О/瑙勬牸鍨嬪彿", + // showSearch: true, + // api: getManagementList, + // deleteApi: delEquipment, + // columns: [ + // { prop: "equipmentId", label: "璁惧缂栧彿", minWidth: 100 }, + // { prop: "equipmentName", label: "璁惧鍚嶇О", minWidth: 100 }, + // { prop: "quantity", label: "鏁伴噺", minWidth: 100 }, + // { prop: "specification", label: "瑙勬牸鍨嬪彿", minWidth: 100 }, + // { + // prop: "usageStatus", + // label: "浣跨敤鐘舵��", + // minWidth: 100, + // formatter: (row) => row.usageStatus == 1 ? "鍚敤" : "绂佺敤" + // }, + // { prop: "purchaseDate", label: "閲囪喘鏃ユ湡", minWidth: 100 }, + // { prop: "purchasePrice", label: "閲囪喘浠锋牸", minWidth: 100 }, + // ] + // }, + // 鍚庣画鍙互鍦ㄨ繖閲屾坊鍔犳柊鐨勬爣绛鹃〉閰嶇疆 }; @@ -209,7 +274,15 @@ addOrEdit.value = "add"; form.value = {}; title.value = `鏂板${currentTabConfig.value.label}`; - manaDialog.value = true; + // 閫氱敤鐨� + copyForm.value = {}; + if (activeTab.value === "equipmentRequisition") { + equipmentRequisitionDialog.value = true; + } else if (activeTab.value === "usageRecord") { + usageRecordDialog.value = true; + } else { + manaDialog.value = true; + } }; const handleEdit = (row) => { @@ -217,7 +290,13 @@ addOrEdit.value = "edit"; title.value = `缂栬緫${currentTabConfig.value.label}`; copyForm.value = { ...row }; - manaDialog.value = true; + if (activeTab.value === "equipmentRequisition") { + equipmentRequisitionDialog.value = true; + } else if (activeTab.value === "usageRecord") { + usageRecordDialog.value = true; + } else { + manaDialog.value = true; + } }; const handleView = (row) => { @@ -225,7 +304,13 @@ addOrEdit.value = "viewRow"; title.value = `鏌ョ湅${currentTabConfig.value.label}`; copyForm.value = { ...row }; - manaDialog.value = true; + if (activeTab.value === "equipmentRequisition") { + equipmentRequisitionDialog.value = true; + } else if (activeTab.value === "usageRecord") { + usageRecordDialog.value = true; + } else { + manaDialog.value = true; + } }; const handPagination = (val) => { @@ -250,6 +335,22 @@ successText: "鍒犻櫎鎴愬姛", }); +// 鑾峰彇璁惧鏈�澶у彲棰嗙敤鏁伴噺 +const getMaxQuantity = () => { + if (form.value.equipmentId) { + const equipment = tableData.value.find(item => item.equipmentId === form.value.equipmentId); + return equipment ? equipment.quantity : null; + } + return null; +}; + +// 璁惧棰嗙敤寮圭獥鎻愪氦澶勭悊 +const onEquipmentRequisitionSubmit = (formData) => { + ElMessage.success('璁惧棰嗙敤鎴愬姛'); + equipmentRequisitionDialog.value = false; + getList(); +}; + // 鏁版嵁鑾峰彇 const getList = async () => { try { -- Gitblit v1.9.3