From b980b063600af7bcfe16aa1145bcccffc3255eae Mon Sep 17 00:00:00 2001
From: wang <3597712270@qq.com>
Date: 星期三, 29 五月 2024 09:25:12 +0800
Subject: [PATCH] 上片机新增上片机联机状态、上片机手动状态,下拉选筛选

---
 UI-Project/src/views/Returns/returns.vue |  128 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 112 insertions(+), 16 deletions(-)

diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index 86be983..e179221 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -25,6 +25,10 @@
 const selectedValuea = ref('');  
 const selectedValueb = ref('');
 const selectedValuec = ref(''); 
+const upstatus = ref(''); // 鍋囪杩欎釜鐢ㄤ簬鏄剧ず鑷姩/鎵嬪姩鐘舵��  
+const cuttingMachine = ref(''); // 鍋囪杩欎釜鐢ㄤ簬瀛樺偍鍚庣杩斿洖鐨勭姸鎬佸�硷紙0鎴�1锛�  
+const cuttingMachineStatusColor = ref(''); // 鐢ㄤ簬鍔ㄦ�佽缃甶鏍囩鐨勮儗鏅壊 
+const inKageWord = ref(0); // 鐢ㄤ簬瀛樺偍瑕佷紶閫掔粰鎺ュ彛鐨刬nKageWord鍊� 
 const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃  
 const selectOptions = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
 const selectOptionsa = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
@@ -41,21 +45,27 @@
       console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
       tableData.splice(0, tableData.length, ...response.data);
       window.localStorage.setItem('engineeringId', response.data[0].engineeringId)
-      selectOptions.value = response.data.map(item => ({  
-      value: item.width, // 鍋囪杩欐槸浣犳兂瑕佷綔涓簐alue鐨勫睘鎬�  
-      label: item.width, // 鍋囪杩欐槸浣犳兂瑕佹樉绀虹殑label  
+      // 鑾峰彇鍞竴鍊�
+      const uniqueWidths = new Set(response.data.map(item => item.width));  
+      const uniqueHeights = new Set(response.data.map(item => item.height));  
+      const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));  
+      const uniqueThicknesses = new Set(response.data.map(item => item.thickness));  
+  
+      selectOptions.value = Array.from(uniqueWidths).map(width => ({ 
+      value: width, // 鍋囪杩欐槸浣犳兂瑕佷綔涓簐alue鐨勫睘鎬�  
+      label: width, // 鍋囪杩欐槸浣犳兂瑕佹樉绀虹殑label  
     }));  
-    selectOptionsa.value = response.data.map(item => ({  
-      value: item.height, 
-      label: item.height, 
+      selectOptionsa.value = Array.from(uniqueHeights).map(height => ({ 
+      value: height, 
+      label: height, 
     })); 
-    selectOptionsb.value = response.data.map(item => ({  
-      value: item.filmsId,
-      label: item.filmsId, 
+    selectOptionsb.value = Array.from(uniqueFilmsIds).map(filmsId => ({
+      value: filmsId,
+      label: filmsId, 
     })); 
-    selectOptionsc.value = response.data.map(item => ({  
-      value: item.thickness,
-      label: item.thickness,  
+    selectOptionsc.value = Array.from(uniqueThicknesses).map(thickness => ({
+      value: thickness,
+      label: thickness,  
     })); 
     } else {
       ElMessage.error(response.msg);
@@ -462,6 +472,89 @@
 const confirmCuttingMachine = () => {  
   cuttingMachineStatus.value = 'green';  
 }; 
+
+
+
+const wsUrl = 'ws://10.153.19.150:88/api/loadGlass/api/talk/loadGlass'; 
+const ws = new WebSocket(wsUrl);  
+ws.onopen = () => {  
+  console.log('WebSocket杩炴帴宸叉墦寮�');  
+};  
+  
+// 鐩戝惉WebSocket鐨勯敊璇簨浠�  
+ws.onerror = (error) => {  
+  console.error('WebSocket鍙戠敓閿欒:', error);  
+};  
+  
+// 鐩戝惉WebSocket鐨勫叧闂簨浠�  
+ws.onclose = (event) => {  
+  if (event.wasClean) {  
+    console.log('WebSocket杩炴帴宸叉甯稿叧闂�');  
+  } else {  
+    console.error('WebSocket杩炴帴寮傚父鍏抽棴');  
+  }  
+};  
+  
+// 鐩戝惉WebSocket鐨勬秷鎭簨浠�  
+ws.onmessage = (event) => {  
+  // 鍋囪鏈嶅姟鍣ㄥ彂閫佺殑鏄疛SON鏍煎紡鐨勫瓧绗︿覆  
+  try {  
+    const data = JSON.parse(event.data); // 瑙f瀽娑堟伅涓篔SON  
+  
+    // 鍋囪鏈嶅姟鍣ㄥ彂閫佺殑鏁版嵁缁撴瀯鏄� { InkageStatus: ["1"] }  
+    if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) {  
+      const status = data.InkageStatus[0]; 
+      cuttingMachine.value = status; 
+      upstatus.value = status === '1' ? '涓婄墖鏈鸿仈鏈虹姸鎬侊細' : '涓婄墖鏈烘墜鍔ㄧ姸鎬侊細';
+      cuttingMachineStatusColor.value = status === '1' ? '#911005' : 'green';  
+      inKageWord.value = status === '1' ? 0 : 1;  
+    } else {  
+      // 澶勭悊閿欒鎯呭喌鎴栨棤鏁堟暟鎹�  
+      console.error('鎺ユ敹鍒扮殑鏁版嵁鏃犳晥', data);  
+    }  
+  } catch (error) {  
+    console.error('瑙f瀽WebSocket娑堟伅鏃跺彂鐢熼敊璇�', error);  
+  }  
+};  
+const confirmCutting = async () => {  
+  try {  
+    const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad', 
+      inKageWord.value
+  );  
+    if (response.code == 200) {  
+      const status = response.data.status; 
+      upstatus.value = status === '1' ? '涓婄墖鏈鸿仈鏈虹姸鎬�' : '涓婄墖鏈烘墜鍔ㄧ姸鎬�';  
+      cuttingMachineStatusColor.value = status === '1' ? '#911005' : 'green';  
+      // 鏄剧ず鎴愬姛娑堟伅  
+      ElMessage.success(response.message);  
+    } else {  
+      ElMessage.error(response.message || '璇锋眰澶辫触');  
+    }  
+  } catch (error) {  
+    // 澶勭悊閿欒  
+    console.error('璇锋眰鏃跺彂鐢熼敊璇�', error);  
+    ElMessage.error('璇锋眰鏃跺彂鐢熼敊璇�');  
+  }  
+};
+// const confirmCutting = async () => {
+//   try  {
+//   const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad', {
+//     inKageWord: inKageWord.value
+//     })
+//     if (response.code == 200) {
+//       inKageWord == '1' ? '涓婄墖鏈鸿仈鏈虹姸鎬侊細' : '涓婄墖鏈烘墜鍔ㄧ姸鎬侊細';
+//       inKageWord.value == '1' ? '#911005' : 'green';  
+//       ElMessage.success(response.message);
+//     } else {
+//       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+//       ElMessage.error(response.msg);
+//     }
+// }
+// catch (error) {
+//     // 澶勭悊閿欒
+//     console.error(error);
+//   }
+// }
 </script>
  
 <template>
@@ -469,12 +562,15 @@
     <div id="dotClass">
       <div>鎵撴爣鏈哄氨缁姸鎬侊細</div>  
     <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
-    <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">鎵嬪姩纭</el-button>
- 
+    <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">纭</el-button>
     <div style="margin-left: 70px;">鍒囧壊鏈哄氨缁姸鎬侊細</div>
     <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
-    <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;" >鎵嬪姩纭</el-button>
-   </div>
+    <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;" >纭</el-button>
+    <div style="margin-left: 70px;">{{ upstatus  }} </div>
+    <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
+    <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >纭</el-button>
+   
+  </div>
     <el-button style="margin-top: 5px;margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">閫夋嫨宸ョ▼</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="primary" @click="handleBind">寮�濮嬩笂鐗�</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">鏆傚仠</el-button>

--
Gitblit v1.8.0