From 3d3addba8618bd44db53f7089732e3fae16bdfef Mon Sep 17 00:00:00 2001 From: zhang_12370 <z2864490065@outlook.com> Date: 星期二, 15 七月 2025 18:01:28 +0800 Subject: [PATCH] 1、修改配置删除文件 2、优化设备领用 使用户归还完以后 无法重新选择使用中 --- src/views/equipment/management/index.vue | 143 ++++++++++++++++++++++++++++------------------- 1 files changed, 86 insertions(+), 57 deletions(-) diff --git a/src/views/equipment/management/index.vue b/src/views/equipment/management/index.vue index 5c29464..97ca889 100644 --- a/src/views/equipment/management/index.vue +++ b/src/views/equipment/management/index.vue @@ -30,16 +30,32 @@ <!-- 鎿嶄綔鎸夐挳鍖� --> <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="Delete" type="danger" @click="handleDelete" + <el-button + :icon="Plus" + type="primary" + v-show="activeTab === 'equipmentRequisition'" + @click="handleAdd" + >棰嗙敤</el-button + > + <el-button + :icon="Delete" + type="danger" + v-show="activeTab === 'management'" + @click="handleDelete" >鍒犻櫎</el-button > </el-row> <!-- 琛ㄦ牸缁勪欢 --> <div> <data-table + :showOverflowTooltip="false" :border="true" :columns="columns" :loading="loading" @@ -72,8 +88,7 @@ </el-tag> </template> <template v-else> - <el-tag size="small" type="primary"> - </el-tag> + <el-tag size="small" type="primary"> </el-tag> </template> </template> </data-table> @@ -87,7 +102,7 @@ @pagination="handPagination" /> <managementDialog - v-if="activeTab == 'management'" + v-if="activeTab == 'management'" v-model:copyForm="copyForm" v-model:managementFormDialog="manaDialog" :addOrEdit="addOrEdit" @@ -99,22 +114,24 @@ v-model="equipmentRequisitionDialog" :formData="form" :maxQuantity="getMaxQuantity()" + :addOrEdit="addOrEdit" + :equipmentStatus="form.equipmentStatus" @submit="onEquipmentRequisitionSubmit" /> - <UsageRecord + <!-- <UsageRecord v-if="activeTab == 'usageRecord'" v-model:copyForm="copyForm" v-model:usageRecordDialog="usageRecordDialog" :addOrEdit="addOrEdit" :form="form" @submit="getList" - /> + /> --> </el-card> </div> </template> <script setup> -import { computed, onMounted, reactive, ref } from "vue"; +import { computed, onMounted, reactive, ref, nextTick } from "vue"; import { ElMessage } from "element-plus"; import { Delete, Plus } from "@element-plus/icons-vue"; @@ -127,7 +144,10 @@ // API 鏈嶅姟瀵煎叆 import { useDelete } from "@/hooks/useDelete.js"; -import { getManagementList, delEquipment } from "@/api/equipment/management/index.js"; +import { + getManagementList, + delEquipment, +} from "@/api/equipment/management/index.js"; import { getUsageRecordList } from "@/api/equipment/requisition/index.js"; // 鍝嶅簲寮忕姸鎬佺鐞� @@ -150,7 +170,7 @@ // 鏌ヨ鍙傛暟 const queryParams = reactive({ - searchAll: "" + searchAll: "", }); // 鏍囩椤甸厤缃� - 渚夸簬鍚庣画鎵╁睍 @@ -164,60 +184,56 @@ columns: [ { 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: "purchaseDate", label: "閲囪喘鏃ユ湡", minWidth: 100 }, { prop: "purchasePrice", label: "閲囪喘浠锋牸", minWidth: 100 }, - ] + ], }, - equipmentRequisition:{ + equipmentRequisition: { label: "璁惧棰嗙敤", searchPlaceholder: "璁惧缂栧彿/璁惧鍚嶇О/瑙勬牸鍨嬪彿", showSearch: true, api: getUsageRecordList, deleteApi: null, columns: [ - { prop: "userId", label: "棰嗙敤浜�", minWidth: 100 }, - { prop: "equipmentId", label: "璁惧ID", minWidth: 100 }, + { prop: "userName", label: "棰嗙敤浜�", minWidth: 100 }, + { prop: "equipmentNo", label: "璁惧缂栧彿", minWidth: 100 }, + { prop: "equipmentName", label: "璁惧鍚嶇О", minWidth: 100 }, { prop: "usageQuantity", label: "棰嗙敤鏁伴噺", minWidth: 100 }, - { - prop: "equipmentStatus", - label: "浣跨敤鐘舵��", + { + prop: "equipmentStatus", + label: "浣跨敤鐘舵��", minWidth: 100, - formatter: (row) => row.usageStatus == 1 ? "鍚敤" : "绂佺敤" + formatter: (row) => (row.equipmentStatus == "0" ? "浣跨敤涓�" : "宸插綊杩�"), }, { 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 }, - ] - }, + // 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 }, + // ] + // }, // 鍚庣画鍙互鍦ㄨ繖閲屾坊鍔犳柊鐨勬爣绛鹃〉閰嶇疆 }; @@ -226,7 +242,7 @@ const tabs = reactive( Object.entries(tabsConfig).map(([name, config]) => ({ name, - label: config.label + label: config.label, })) ); @@ -234,8 +250,12 @@ const currentTabConfig = computed(() => tabsConfig[activeTab.value]); // 璁$畻灞炴�� -const searchPlaceholder = computed(() => currentTabConfig.value?.searchPlaceholder || "璇疯緭鍏ユ悳绱俊鎭�"); -const shouldShowSearch = computed(() => currentTabConfig.value?.showSearch || false); +const searchPlaceholder = computed( + () => currentTabConfig.value?.searchPlaceholder || "璇疯緭鍏ユ悳绱俊鎭�" +); +const shouldShowSearch = computed( + () => currentTabConfig.value?.showSearch || false +); const columns = computed(() => currentTabConfig.value?.columns || []); const selectedCount = computed(() => selectedRows.value.length); @@ -321,7 +341,6 @@ selectedRows.value = selection; }; - // 鍒犻櫎澶勭悊 const { handleDeleteBatch: handleDelete } = useDelete({ deleteApi: () => currentTabConfig.value.deleteApi, @@ -336,7 +355,9 @@ // 鑾峰彇璁惧鏈�澶у彲棰嗙敤鏁伴噺 const getMaxQuantity = () => { if (form.value.equipmentId) { - const equipment = tableData.value.find(item => item.equipmentId === form.value.equipmentId); + const equipment = tableData.value.find( + (item) => item.equipmentId === form.value.equipmentId + ); return equipment ? equipment.quantity : null; } return null; @@ -344,9 +365,17 @@ // 璁惧棰嗙敤寮圭獥鎻愪氦澶勭悊 const onEquipmentRequisitionSubmit = (formData) => { - ElMessage.success('璁惧棰嗙敤鎴愬姛'); + console.log("璁惧棰嗙敤鎻愪氦鏁版嵁锛�", formData); + if (formData.equipmentStatus == "1") { + ElMessage.success("璁惧褰掕繕鎴愬姛"); + } else { + ElMessage.success("璁惧棰嗙敤鎴愬姛"); + } equipmentRequisitionDialog.value = false; - getList(); + nextTick(() => { + form.value = {}; + getList(); + }); }; // 鏁版嵁鑾峰彇 @@ -362,7 +391,7 @@ const { data, code } = await currentTabConfig.value.api(apiParams); if (code !== 200) { - ElMessage.error("鑾峰彇鏁版嵁澶辫触锛�" + (data?.msg || "鏈煡閿欒")); + // ElMessage.error("鑾峰彇鏁版嵁澶辫触锛�" + (data?.msg || "鏈煡閿欒")); return; } @@ -401,7 +430,7 @@ flex-wrap: wrap; gap: 10px; } -.app-container{ +.app-container { padding: 18px !important; } /* 鍝嶅簲寮忚〃鏍� */ -- Gitblit v1.9.3