From 792236ef78c2cdd3a989fb40a7f2e2487c4e17b6 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期三, 26 十一月 2025 17:06:11 +0800
Subject: [PATCH] 添加各个设备基础可配置参数

---
 mes-web/src/views/device/DeviceConfigForm.vue |   49 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/mes-web/src/views/device/DeviceConfigForm.vue b/mes-web/src/views/device/DeviceConfigForm.vue
index 5b6f7e6..f751fbc 100644
--- a/mes-web/src/views/device/DeviceConfigForm.vue
+++ b/mes-web/src/views/device/DeviceConfigForm.vue
@@ -4,12 +4,13 @@
     <div class="search-section">
       <el-form :model="searchForm" :inline="true" class="search-form">
         <el-form-item label="璁惧绫诲瀷">
-          <el-select v-model="searchForm.deviceType" placeholder="閫夋嫨璁惧绫诲瀷" clearable>
-            <el-option label="PLC鎺у埗鍣�" value="PLC鎺у埗鍣�" />
-            <el-option label="浼犳劅鍣�" value="浼犳劅鍣�" />
-            <el-option label="鎵ц鍣�" value="鎵ц鍣�" />
-            <el-option label="鎺у埗鍣�" value="鎺у埗鍣�" />
-            <el-option label="閲囬泦鍣�" value="閲囬泦鍣�" />
+          <el-select v-model="searchForm.deviceType" placeholder="閫夋嫨璁惧绫诲瀷" clearable :loading="deviceTypesLoading">
+            <el-option 
+              v-for="type in deviceTypes" 
+              :key="type" 
+              :label="type" 
+              :value="type" 
+            />
           </el-select>
         </el-form-item>
         <el-form-item label="璁惧鐘舵��">
@@ -250,6 +251,10 @@
 const deviceList = ref([])
 const selectedDevices = ref([])
 
+// 璁惧绫诲瀷鍒楄〃
+const deviceTypes = ref([])
+const deviceTypesLoading = ref(false)
+
 // 鎼滅储琛ㄥ崟
 const searchForm = reactive({
   deviceType: '',
@@ -272,6 +277,37 @@
 const emit = defineEmits(['device-selected', 'refresh-statistics'])
 
 // 鏂规硶瀹氫箟
+// 鍔犺浇璁惧绫诲瀷鍒楄〃
+const loadDeviceTypes = async () => {
+  if (deviceTypes.value.length > 0) {
+    // 濡傛灉宸茬粡鍔犺浇杩囷紝涓嶅啀閲嶅鍔犺浇
+    return
+  }
+  // 鎵�鏈夋敮鎸佺殑璁惧绫诲瀷锛堢‘淇濆寘鍚墍鏈夋湁閰嶇疆缁勪欢鐨勭被鍨嬶級
+  const supportedTypes = ['澶ц溅璁惧', '澶х悊鐗囩', '鍗ц浆绔嬫壂鐮�', '鍗ц浆绔�']
+  
+  try {
+    deviceTypesLoading.value = true
+    const res = await deviceConfigApi.getDeviceTypes()
+    if (res?.data && Array.isArray(res.data)) {
+      // 鍚堝苟鏁版嵁搴撲腑鐨勭被鍨嬪拰鏀寔鐨勭被鍨嬶紝鍘婚噸骞舵帓搴�
+      const dbTypes = res.data
+      const allTypes = [...new Set([...supportedTypes, ...dbTypes])].sort()
+      deviceTypes.value = allTypes
+    } else {
+      // 濡傛灉API杩斿洖澶辫触锛屼娇鐢ㄩ粯璁ょ被鍨�
+      deviceTypes.value = supportedTypes
+      console.warn('鑾峰彇璁惧绫诲瀷鍒楄〃澶辫触锛屼娇鐢ㄩ粯璁ょ被鍨�')
+    }
+  } catch (error) {
+    console.error('鍔犺浇璁惧绫诲瀷鍒楄〃澶辫触:', error)
+    // 澶辫触鏃朵娇鐢ㄩ粯璁ょ被鍨�
+    deviceTypes.value = supportedTypes
+  } finally {
+    deviceTypesLoading.value = false
+  }
+}
+
 const loadDeviceList = async () => {
   try {
     tableLoading.value = true
@@ -502,6 +538,7 @@
 
 // 缁勪欢鎸傝浇鏃跺姞杞芥暟鎹�
 onMounted(() => {
+  loadDeviceTypes()
   loadDeviceList()
 })
 </script>

--
Gitblit v1.8.0