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