From 36c8b97ef1d250e724696cae846a754d48a92512 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 04 六月 2024 12:33:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UI-Project/src/views/Caching/cachingbefore.vue |  144 ++++++++++++++++++++++++++++-------------------
 1 files changed, 85 insertions(+), 59 deletions(-)

diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index 5b9d2a2..739782d 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -4,29 +4,49 @@
 import {useRouter} from "vue-router"
 const router = useRouter()
 const adda = ref(false)
+import { WebSocketHost } from '@/utils/constants'
 
 import request from "@/utils/request"
-import { ref, onMounted } from "vue";
+import { ref, onMounted , onBeforeUnmount} from "vue";
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
 // import { ref } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 //  import LanguageMixin from './lang/LanguageMixin'
 
 const tableData = ref([])
 const slot = ref('')
-  
-
-request.post("/cacheGlass/edgStorageCage/selectEdgStorageCage").then((res) => {
-          if (res.code == 200) {
-            
-          console.log(res.data);
-          tableData.value = res.data
-          console.log(res.data[0].slot);
-          } else {
-          ElMessage.warning(res.msg)
-        
-          }
-          });
-
+const adjustedRects = ref([]);
+onMounted(async () => {  
+  try {  
+    const response = await request.post('/cacheGlass/edgStorageCage/selectEdgStorageCage'); // 鏇挎崲涓轰綘鐨凙PI绔偣  
+    if (response.code === 200) {  
+      const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
+          tableData.value = response.data
+          console.log(response.data);
+          adjustedRects.value = rawRects.map(rect => ({  
+            ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+            width: rect.width * 0.5 ,
+            id: rect.id * 10,
+          })); 
+          console.log(adjustedRects.value);
+    } else {  
+      ElMessage.warning(res.msg)
+    }  
+  } catch (error) {  
+    // console.error('Error fetching rects :', error);  
+  }  
+}); 
+const toggleEnableState = async (row) => {  
+  const newState = row.enable_state === 1 ? 0 : 1;  
+  // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵�侊紙杩欓噷鐪佺暐浜嗗疄闄呯殑璇锋眰閫昏緫锛�  
+  const response = await request.post('/cacheGlass/edgStorageCage/updateEdgStorageCage', { id: row.id, enablestate: newState });  
+  if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+  row.enable_state = newState;  
+}; 
 const open = async(row) => {  
   try {  
     const confirmResult = await ElMessageBox.confirm(  
@@ -57,46 +77,32 @@
     // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑  
     console.error('鍙戠敓閿欒:', error);  
   }  
-};  
+};   
+const socketUrl = `ws://${WebSocketHost}:88/api/cacheGlass/api/talk/cacheGlass`;
+// const socketUrl = `ws://10.153.19.150:88/api/cacheGlass/api/talk/cacheGlass`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+  // 鏇存柊 tableData 鐨勬暟鎹�
+  tableData.value = data.EdgStorageCageinfos[0]
+  // adjustedRects.value = data.EdgStorageCageinfos[0]
+  adjustedRects.value = data.EdgStorageCageinfos[0].map(rect => ({  
+            ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+            width: rect.width * 0.5 ,
+            id: rect.id * 10,
+          })); 
 
-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:  [
-    {
-      'id': '1',
-      'long': '5',
-      'wide': '1005',
-      'thick': '183.6',
-    }
-  ]
- 
-})
+};
+// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
+onMounted(() => {
+  // fetchFlowCardId();
+  // fetchTableData(); // 鑾峰彇鏁版嵁
+  initializeWebSocket(socketUrl, handleMessage);
+});
+
+onBeforeUnmount(() => {
+  console.log("鍏抽棴浜�")
+  closeWebSocket();
+});
 </script>
 
 <template>
@@ -116,9 +122,17 @@
             min-width="80"
             prop="enable_state"
           >
-          <template #default="scope">
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.enable_state === 1 ? 'success' : 'danger'"  
+            @click="toggleEnableState(scope.row)"  
+          >  
+            {{ scope.row.enable_state === 1 ? '鍚敤' : '绂佺敤' }}  
+          </el-tag>  
+        </template> 
+          <!-- <template #default="scope">
             <el-tag type="success" >{{ scope.row.enable_state==1?"鍚敤":"鏈惎鐢�"  }}</el-tag>
-          </template>
+          </template> -->
           </el-table-column>
           <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
             <template #default="scope">
@@ -131,10 +145,21 @@
     </el-card>
   </div>
   <div id="awatch">
-    <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;">
-<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: -124px;margin-left: 480px;"></div>
+    <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;position: relative;"> 
+    <div style="position: absolute; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
+    <div  
+      v-for="(rect, index) in adjustedRects"  
+      :key="rect"  
+      :style="{ position: 'absolute', 
+       top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
+      backgroundColor: '#409EFF'
+       }"  
+    >
+    </div>
+  </div>
+<!-- <div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: -124px;margin-left: 480px;"></div>
 <div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: -30px;margin-left: 850px;"></div>
-<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: 30px;margin-left: 695px;"></div>
+<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: 30px;margin-left: 695px;"></div> -->
 </div>
 </template>
 
@@ -157,6 +182,7 @@
 }
 #awatch{
   height: 460px;
+  width: 1500px;
   /* margin-top: -60px; */
 }
 </style>
\ No newline at end of file

--
Gitblit v1.8.0