From 4c9e1ba3c7f5c95a1789e88823ff262c26a53bce Mon Sep 17 00:00:00 2001 From: zhang_12370 <z2864490065@outlook.com> Date: 星期二, 08 七月 2025 20:34:32 +0800 Subject: [PATCH] 解决 生产加工煤种字段匹配 --- src/views/equipment/management/index.vue | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 104 insertions(+), 5 deletions(-) diff --git a/src/views/equipment/management/index.vue b/src/views/equipment/management/index.vue index 2ceb04b..5c29464 100644 --- a/src/views/equipment/management/index.vue +++ b/src/views/equipment/management/index.vue @@ -87,12 +87,28 @@ @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()" + @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 +122,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 +136,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,6 +162,48 @@ api: getManagementList, deleteApi: delEquipment, columns: [ + { prop: "equipmentNo", 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 }, + ] + }, + equipmentRequisition:{ + label: "璁惧棰嗙敤", + searchPlaceholder: "璁惧缂栧彿/璁惧鍚嶇О/瑙勬牸鍨嬪彿", + showSearch: true, + api: getUsageRecordList, + deleteApi: null, + columns: [ + { prop: "userId", label: "棰嗙敤浜�", minWidth: 100 }, + { prop: "equipmentId", label: "璁惧ID", 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 }, @@ -151,11 +214,11 @@ minWidth: 100, formatter: (row) => row.usageStatus == 1 ? "鍚敤" : "绂佺敤" }, - { prop: "usingDepartment", label: "浣跨敤閮ㄩ棬", minWidth: 100 }, { prop: "purchaseDate", label: "閲囪喘鏃ユ湡", minWidth: 100 }, { prop: "purchasePrice", label: "閲囪喘浠锋牸", minWidth: 100 }, ] - } + }, + // 鍚庣画鍙互鍦ㄨ繖閲屾坊鍔犳柊鐨勬爣绛鹃〉閰嶇疆 }; @@ -209,7 +272,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 +288,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 +302,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 +333,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