From 1cded29e225b3a73768d8badfc19fba825673451 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 12 六月 2024 09:30:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UI-Project/src/views/Slicecage/slicecage.vue            |    2 
 UI-Project/src/views/Returns/returns.vue                |   68 +++++++--
 UI-Project/src/views/Identify/identify.vue              |   16 +-
 UI-Project/src/views/PurchaseReturn/purchaseStorage.vue |  100 ++++++++------
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue  |  213 ++++++++---------------------
 5 files changed, 177 insertions(+), 222 deletions(-)

diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index 2e2de95..9316fc9 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -76,12 +76,12 @@
 
       adjustedRects.value = rawRects.map(rect => ({  
         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-        x_axis: (rect.x_axis*100) * 0.005, // 灏唜鍊奸櫎浠�3  
-        y_axis: (rect.y_axis*100) * 0.005,
-        width: (rect.width*100) * 0.004 ,
+        x_axis: (rect.x_axis*100) * 0.004, // 灏唜鍊奸櫎浠�3  
+        y_axis: (rect.y_axis*100) * 0.004,
+        width: (rect.width*100) * 0.002 ,
         widtha: rect.width ,
         heighta: rect.height ,
-        height:( rect.height*100) * 0.004 ,
+        height:( rect.height*100) * 0.002 ,
         glass_state: rect.glass_state
       }));  
       console.log(adjustedRects.value);
@@ -183,12 +183,12 @@
   // adjustedRects.value = data.currentCutTerritory[0]
   adjustedRects.value = data.currentCutTerritory[0].map(rect => ({  
         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-        x_axis: (rect.x_axis*100) * 0.005, // 灏唜鍊奸櫎浠�3  
-        y_axis: (rect.y_axis*100) * 0.005,
-        width: (rect.width*100) * 0.004 ,
+        x_axis: (rect.x_axis*100) * 0.004, // 灏唜鍊奸櫎浠�3  
+        y_axis: (rect.y_axis*100) * 0.004,
+        width: (rect.width*100) * 0.002 ,
         widtha: rect.width ,
         heighta: rect.height ,
-        height:( rect.height*100) * 0.004 ,
+        height:( rect.height*100) * 0.002 ,
         glass_state: rect.glass_state
       }));  
  // console.log("鏇存柊鍚庢暟鎹�", tableData);
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 8fd42ca..da044de 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -19,34 +19,41 @@
 
 const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+
 const handleMessage = (data) => {
   // 鏇存柊 tableData 鐨勬暟鎹�
   adjustedRects.value =  data.intoGlass[0].map(rect => ({  
         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-        xcoordinate: rect.xcoordinate, // 灏唜鍊奸櫎浠�3  
-        ycoordinate: rect.ycoordinate,
-        width: rect.width ,
-        height: rect.height ,
+        xcoordinate: rect.xCoordinate * 0.5, // 灏唜鍊奸櫎浠�3  
+        ycoordinate: rect.ycoordinate * 0.5,
+        width: rect.width * 0.4,
+        height: rect.height * 0.4,
+        widtha: rect.width,
+        heighta: rect.height,
       })); 
+      console.log(data.intoGlass[0]);
       adjustedRectsa.value = data.waitingGlass[0].map(rect => ({  
         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-        xcoordinate: rect.xcoordinate, // 灏唜鍊奸櫎浠�3  
-        ycoordinate: rect.ycoordinate,
-        width: rect.width ,
-        height: rect.height ,
+        xcoordinate: rect.xCoordinate * 0.5, // 灏唜鍊奸櫎浠�3  
+        ycoordinate: rect.ycoordinate * 0.5,
+        width: rect.width * 0.4,
+        height: rect.height * 0.4,
+        widtha: rect.width,
+        heighta: rect.height,
+        state: rect.state
       }));  
       
       adjustedRectsb.value = data.outGlass[0].map(rect => ({  
         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-        xcoordinate: rect.xcoordinate, // 灏唜鍊奸櫎浠�3  
-        ycoordinate: rect.ycoordinate,
-        width: rect.width ,
-        height: rect.height ,
+        xcoordinate: rect.xCoordinate * 0.5, // 灏唜鍊奸櫎浠�3  
+        ycoordinate: rect.ycoordinate * 0.5,
+        width: rect.width * 0.4,
+        height: rect.height * 0.4,
+        widtha: rect.width,
+        heighta: rect.height,
+        state: rect.state
       }));  
 };
-
-// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
-
 onMounted(() => {
   // fetchFlowCardId();
   // fetchTableData(); // 鑾峰彇鏁版嵁
@@ -57,143 +64,18 @@
   console.log("鍏抽棴浜�")
   closeWebSocket();
 });
-// onMounted(async () => {  
-//   try {  
-//     const response = await request.get('/temperingGlass/temperingGlassInfo/SelectIntoGlass'); 
-//     if (response.code === 200) {  
-//       const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
-//       console.log(response.data);
-//       const { height: newheight,width: newwidth  } = response.data; // 鑾峰彇灏哄  
-//       height.value = newheight;  
-//       width.value = newwidth;  
-
-//       adjustedRects.value = rawRects.map(rect => ({  
-//         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-//         xcoordinate: rect.xcoordinate, // 灏唜鍊奸櫎浠�3  
-//         ycoordinate: rect.ycoordinate,
-//         width: rect.width ,
-//         height: rect.height ,
-//       }));  
-//         console.log(rect);
-
-//       //   console.log( (rect.width*100) / 300 );
-//     } else {  
-//       // console.error('Failed to fetch rectangles from API.');  
-//       console.error('Failed to fetch rects from API.'); 
-//     }  
-//   } catch (error) {  
-//     // console.error('Error fetching rectangles :', error);
-//     console.error('Error fetching rects :', error);  
-//   }  
-// }); 
-// 杩涚倝鍓�
-// const handleConfirm = async () => {
-//   try {
-//     const response = await request.post('/temperingGlass/temperingGlassInfo/SelectWaitingGlass'); 
-//     if (response.code === 200) {  
-//       const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
-//       console.log(response.data);
-//       const { height: newheight,width: newwidth  } = response.data; // 鑾峰彇灏哄  
-//       height.value = newheight;  
-//       width.value = newwidth;  
-
-//       adjustedRectsa.value = rawRects.map(rect => ({  
-//         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-//         xcoordinate: rect.xcoordinate, // 灏唜鍊奸櫎浠�3  
-//         ycoordinate: rect.ycoordinate,
-//         width: rect.width ,
-//         height: rect.height ,
-//       }));  
-//         console.log(rect);
-
-//       //   console.log( (rect.width*100) / 300 );
-//     } else {  
-//       // console.error('Failed to fetch rectangles from API.');  
-//       console.error('Failed to fetch rects from API.'); 
-//     }  
-//   } catch (error) {  
-//     // console.error('Error fetching rectangles :', error);
-//     console.error('Error fetching rects :', error);  
-//   }  
-// }; 
-
-// 宸插嚭鐐�
-// const handleConfirma = async () => {
-//   try {
-//     const response = await request.get('/temperingGlass/temperingGlassInfo/SelectOutGlass'); 
-//     if (response.code === 200) {  
-//       const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
-//       console.log(response.data);
-//       const { height: newheight,width: newwidth  } = response.data; // 鑾峰彇灏哄  
-//       height.value = newheight;  
-//       width.value = newwidth;  
-
-//       adjustedRectsb.value = rawRects.map(rect => ({  
-//         ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-//         xcoordinate: rect.xcoordinate, // 灏唜鍊奸櫎浠�3  
-//         ycoordinate: rect.ycoordinate,
-//         width: rect.width ,
-//         height: rect.height ,
-//       }));  
-//         console.log(rect);
-
-//       //   console.log( (rect.width*100) / 300 );
-//     } else {  
-//       // console.error('Failed to fetch rectangles from API.');  
-//       console.error('Failed to fetch rects from API.'); 
-//     }  
-//   } catch (error) {  
-//     // console.error('Error fetching rectangles :', error);
-//     console.error('Error fetching rects :', error);  
-//   }  
-// }; 
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  data:  [
-    {
-    }
-  ],
-})
 </script>
 
 <template> 
   <div style="margin-top: 10px;">
      <el-button style="margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">杩涚倝涓�</el-button>
-     <el-button style="margin-left: 15px;"   id="searchButton" type="primary" @click="handleConfirm();dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;" >杩涚倝鍓�</el-button>
-    <el-button  id="searchButton" type="success" @click="handleConfirma();dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false">宸插嚭鐐夌幓鐠�</el-button>
+     <el-button style="margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;" >杩涚倝鍓�</el-button>
+    <el-button  id="searchButton" type="success" @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false">宸插嚭鐐夌幓鐠�</el-button>
 <div v-if="dialogFormVisible" >
-      <!-- <div style="display: flex;margin-bottom: 20px;">
-      <div style="margin-left: 450px;font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
-      <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
-    </div> -->
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
-      <el-scrollbar height="630px">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 700px;" v-loading="loading">
+<div style="width: 49%;float: left;background-color: #f4f4f5;height: 650px;">
+  <el-scrollbar height="630px">
+    <div v-for="(group, groupId) in groupedRects" :key="groupId" style="position: relative;">  
     <div  style="position: relative;width: 1400px;">  
       <div  
       v-for="(rect, index) in adjustedRects"  
@@ -202,11 +84,32 @@
       :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`  }"  
     >
      <div  class="centered-text">
-    <div style="margin-top: 50px;margin-left: -85px;">{{ rect.width }}*{{ rect.height }}</div>  
+    <div >{{ rect.flowcardId }}</div>  
+    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+  </div>
+  </div> 
+   </div>
+   </div>
+   </el-scrollbar>
+  </div>
+<div style="width: 49%;float: right;background-color: #f4f4f5;height: 650px;">
+  <el-scrollbar height="630px">
+    <div  style="position: relative;width: 1400px;">  
+      <div  
+      v-for="(rect, index) in adjustedRects"  
+      :key="index"  
+      class="rect"  
+      :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`  }"  
+    >
+     <div  class="centered-text">
+    <div >{{ rect.flowcardId }}</div>  
+    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div> 
    </div>
    </el-scrollbar>
+</div>
+    
    </el-card>
     </div>
 <div v-if="dialogFormVisiblea">
@@ -217,10 +120,12 @@
       v-for="(rect, index) in adjustedRectsa"  
       :key="index"  
       class="rect"  
-      :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`  }"  
-    >
+      :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`,
+       width: `${rect.width}px`, height: `${rect.height}px`,
+       backgroundColor: rect.state === 0 ? '#dedfe0' : '#d1edc4' }">
      <div  class="centered-text">
-    <div style="margin-top: 50px;margin-left: -85px;">{{ rect.width }}*{{ rect.height }}</div>  
+    <div >{{ rect.flowcardId }}</div>  
+    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div> 
    </div>
@@ -235,10 +140,12 @@
       v-for="(rect, index) in adjustedRectsb"  
       :key="index"  
       class="rect"  
-      :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`  }"  
-    >
+      :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`,
+       width: `${rect.width}px`, height: `${rect.height}px`,
+       backgroundColor: rect.state === 4 ? '#911005' : '#f8e3c5' }">
      <div  class="centered-text">
-    <div style="margin-top: 50px;margin-left: -85px;">{{ rect.width }}*{{ rect.height }}</div>  
+    <div >{{ rect.flowcardId }}</div>  
+    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div> 
    </div>
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index 11f2545..2a98019 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -3,7 +3,10 @@
 import {reactive} from "vue";
 import {useRouter} from "vue-router"
 
-import { ref } from 'vue'
+import { ref, onMounted, onBeforeUnmount } from 'vue';  
+import { WebSocketHost ,host} from '@/utils/constants'
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+const adjustedRects = ref([]);
 
 const dialogFormVisible = ref(true)
 const dialogFormVisiblea = ref(false)
@@ -22,55 +25,53 @@
   }
 }
 
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  data:  [
-    {
-    }
-  ],
-})
+const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+  // 鏇存柊 tableData 鐨勬暟鎹�
+  adjustedRects.value =  data.overGlass[0].map(rect => ({  
+        ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+        xcoordinate: rect.xCoordinate * 0.5, // 灏唜鍊奸櫎浠�3  
+        ycoordinate: rect.ycoordinate * 0.5,
+        width: rect.width * 0.4,
+        height: rect.height * 0.4,
+        widtha: rect.width,
+        heighta: rect.height,
+      })); 
+      console.log(data.intoGlass[0]);
+};
+onMounted(() => {
+  // fetchFlowCardId();
+  // fetchTableData(); // 鑾峰彇鏁版嵁
+  initializeWebSocket(socketUrl, handleMessage);
+});
+
+onBeforeUnmount(() => {
+  console.log("鍏抽棴浜�")
+  closeWebSocket();
+});
 </script>
 
 <template>
   <div style="margin-top: 10px;">
 <div>
     <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
-      <div style="display: flex;margin-top: 20px;">
-      <div style="margin-left: 400px;font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
-      <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
-    </div>
-    <div>
-            <div id="boxa" style="width: 700px;height: 220px;margin-left: 260px;">
-              <div style="margin-top: 85px;"> NG202405060798A01-1</div> 
-            <div> 500脳1500</div>
-          </div>
-    </div>
+    <el-scrollbar height="630px">
+    <div  style="position: relative;width: 1400px;">  
+      <div  
+      v-for="(rect, index) in adjustedRects"
+      :key="index"  
+      class="rect"  
+      :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`,
+       width: `${rect.width}px`, height: `${rect.height}px`,
+       backgroundColor: rect.state === 4 ? '#d1edc4' : '#f8e3c5' }">
+     <div  class="centered-text">
+    <div >{{ rect.flowcardId }}</div>  
+    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+  </div>
+  </div> 
+   </div>
+   </el-scrollbar>
     </el-card>
     </div>
   </div>
@@ -87,4 +88,15 @@
   margin-top: 70px;
   margin-bottom: 50px;
 }
+.rect {  
+  border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */  
+  background-color: lightblue; /* 璁剧疆鐭╁舰鐨勮儗鏅壊 */  
+} 
+.centered-text {
+  /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */  
+  display: flex;  
+  justify-content: center;  
+  align-items: center;  
+  height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */  
+} 
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index 2aadf11..84df863 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -68,7 +68,7 @@
       label: thickness,  
     })); 
     } else {
-      ElMessage.error(response.msg);
+      ElMessage.error(response.message);
     }
   } catch (error) {
     // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
@@ -91,7 +91,7 @@
       flakea.value = true
     }
           } else {
-          ElMessage.warning(res.msg)
+          ElMessage.warning(res.message)
           // router.push("/login")
           }
           });
@@ -210,7 +210,7 @@
     }
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.msg);
+      ElMessage.error(response.message);
     }
   } catch (error) {  
       // 澶勭悊璇锋眰閿欒  
@@ -249,7 +249,7 @@
     }
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.msg);
+      ElMessage.error(response.message);
     }
   } catch (error) {  
       // 澶勭悊璇锋眰閿欒  
@@ -291,7 +291,7 @@
     }
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.msg);
+      ElMessage.error(response.message);
     }
   } catch (error) {
     // 澶勭悊閿欒
@@ -337,7 +337,8 @@
     })); 
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.msg);
+      ElMessage.error(response.message);
+      // ElMessage.error(response.msg);
     }
 }
 catch (error) {
@@ -362,10 +363,10 @@
       ElMessage.success(response.message);
       // window.location.reload() 
       blind.value = false;
-      selectedProjectNoa.value = ''
+      selectedProjectNoa.value = '';
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.msg);
+      ElMessage.error(response.message);
     }
 }
 catch (error) {
@@ -390,10 +391,10 @@
     if (response.code == 200) {
       ElMessage.success(response.message);
       blinda.value = false;
-      tableData.splice([]);
+      // tableData.splice([]);
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.msg);
+      ElMessage.error(response.message);
     }
   }
     else  {
@@ -426,7 +427,7 @@
       tableData.splice([]);
 
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.msg);
+      ElMessage.error(response.message);
     }
   }
     else  {
@@ -494,8 +495,29 @@
 const confirmCuttingMachine = () => {  
   cuttingMachineStatus.value = 'green';  
 }; 
-
-
+const toggleEnableState = async (row: any) => {  
+  // 妫�鏌� id 鏄惁涓虹┖  
+  if (!row.id) {  
+    ElMessage.error('璇ュ伐绋嬫湭淇濆瓨鍒颁笂鐗囪〃锛�');  
+    return; // 濡傛灉 id 涓虹┖锛屽垯涓嶆墽琛屽悗缁搷浣�  
+  }  
+  
+  const newState = row.state === 100 ? 0 : 100;  
+  
+  try {  
+    // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵��  
+    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });  
+    if (response.code === 200) {  
+      ElMessage.success(response.message);  
+    } else {  
+      ElMessage.error(response.message);  
+    }  
+  } catch (error) {  
+    // 澶勭悊璇锋眰閿欒  
+    console.error('鏇存柊鐜荤拑鐘舵�佽姹傚け璐�:', error);  
+    ElMessage.error('鏇存柊鐜荤拑鐘舵�佹椂鍙戠敓閿欒');  
+  }  
+};  
 
 const wsUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
 const ws = new WebSocket(wsUrl);  
@@ -569,7 +591,7 @@
     <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>
+    <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>
@@ -591,7 +613,7 @@
       <el-table-column prop="filmsId" label="鑶滅郴" align="center"/>
       <el-table-column prop="layoutSequence" label="鏁伴噺" align="center"/>
       <el-table-column prop="thickness" label="鍘氬害" align="center"/>
-      <el-table-column
+      <!-- <el-table-column
             align="center"
             label="鐘舵��"
             min-width="80"
@@ -601,7 +623,21 @@
         <el-tag :type="getStatusType(scope.row.state)">  
           {{ getStatusText(scope.row.state) }}  
         </el-tag>  
-      </template> 
+      </template>  -->
+      <el-table-column
+          align="center"
+            label="鍚敤鐘舵��"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.state === 100 ? 'success' : 'warning'"  
+            @click="toggleEnableState(scope.row)"  
+          >  
+            {{ scope.row.state === 100 ? '閫氳繃' : '绛夊緟涓�' }}  
+          </el-tag>  
+        </template> 
           </el-table-column>
     </el-table>
       </div>
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index e87bae7..068a4da 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -529,7 +529,7 @@
         @selection-change="handleSelectionChange"
         :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="id" align="center" label="澶х悊鐗囩琛↖D" min-width="80" />
-          <el-table-column prop="deviceId" align="center" label="璁惧ID" min-width="120" />
+          <el-table-column prop="deviceId" align="center" label="鐞嗙墖绗煎彿" min-width="120" />
           <el-table-column prop="slot" align="center" label="鏍呮牸鍙�" min-width="120" />
           <el-table-column
             align="center"

--
Gitblit v1.8.0