From d5d0d1c7a84b996b9bbcebfaf2c2c95f1a5a3678 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 11 十月 2024 08:39:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UI-Project/src/views/UnLoadGlass/Landingindication.vue |  172 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 128 insertions(+), 44 deletions(-)

diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
index 72b46a9..e3d52c3 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -1,10 +1,10 @@
 <template>
   <div class="glass-rack">
     <div >
-      <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
+      <svg width="500" height="370" xmlns="http://www.w3.org/2000/svg">
         <g stroke="null" id="Layer_1">
           <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
-          <g v-for="(rack, index) in racks" :key="index">
+          <g v-for="(rack, index) in racks" :key="index"   :data="tableData">
             <rect 
               :x="rack.x" 
               :y="rack.y" 
@@ -22,7 +22,7 @@
               :height="rack.item.height" 
               :fill="rack.item.fillColor"
             />
-            <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 1 }}鍙峰伐浣�</text>
+            <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 1 }}{{ $t('reportWork.workstation') }}</text>
             <text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
           </g>
         </g>
@@ -30,67 +30,151 @@
     </div>
   </div>
 </template>
-
-<script setup>
+<script  setup>
+import { ref, watchEffect ,onMounted,onUnmounted} from 'vue';
+import { useI18n } from 'vue-i18n'
+  const { t } = useI18n()
+  let language = ref(localStorage.getItem('lang') || 'zh')
 import Swal from 'sweetalert2'
+import request from "@/utils/request";
+import { initializeWebSocket,closeWebSocket } from '@/utils/WebSocketService';
+ import { WebSocketHost } from '@/utils/constants';
+const racks = ref([
+  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456',downGlassInfoList:"" } },
+ 
+  { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' ,downGlassInfoList:""} },
 
-const racks = [
-  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
-  { x: 50, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 20, width: 10, fillColor: 'yellow', content: 'NG1234567' } },
-  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } },
-  { x: 280, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 35, width: 23, fillColor: 'yellow', content: 'NG123456910' } },
-  { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 30, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
-];
+  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678',downGlassInfoList:"" } },
 
+  
+]);
+watchEffect(() => {
+  // 瑙﹀彂鏁版嵁鍙樺寲鏃堕噸鏂版覆鏌�
+});
 const calculateItemXPosition = (rack, item, index) => {
-  if (index === 0 || index === 1) {
+  if (index === 0 ) {
     return rack.x;
-  } else if (index === 2 || index === 3) {
-    return rack.x + rack.width - item.width;
-  } else {
+  } else if (index === 1 ) {
     return rack.x + (rack.width - item.width) / 2;
-  }
-};
-
-const calculateItemYPosition = (rack, item, index) => {
-  if (index === 0 || index === 1) {
-    return rack.y + (rack.height - item.height) / 2;
-  } else if (index === 2 || index === 3) {
-    return rack.y + (rack.height - item.height) / 2;
   } else {
-    return rack.y + rack.height - item.height;
+    return rack.x + rack.width - item.width;
   }
 };
+const calculateItemYPosition = (rack, item, index) => {
+  if (index === 0 ) {
+    return rack.y + (rack.height - item.height) / 2;
+  } else if (index === 1) {
+    return rack.y + rack.height - item.height;
+  } else {
+    return rack.y + (rack.height - item.height) / 2;
+  }
+};
+const fetchFlowCardId = async () => {
+  try {
+    const response = await request.get('unLoadGlass/downWorkStation/getwo');
+    if (response.code === 200) {
+      console.log(response); 
+      // 閬嶅巻鍝嶅簲鏁版嵁骞舵浛鎹acks鏁扮粍涓殑item灞炴��
+      response.data.forEach((itemData, index) => {
+  if (index < racks.value.length) {
+    const rack = racks.value[index];
+      rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
+      const newItem = {
+      content: itemData.item.content,
+      fillColor: itemData.item.fillColor,
+      width: itemData.item.width === 0 ? "" : 10,
+      height: itemData.item.height === 0 ? "" : 90,
+      downGlassInfoList:itemData.item.downGlassInfoList
+    };
+    if (index === 1 && itemData.item.width > 0) {
+      newItem.width = 100;
+      newItem.height = 20;
+    }
+    rack.item = newItem;
+    console.log(racks.value); // 鎵撳嵃鏇存柊鍚庣殑 racks 鍊�
+  }
+});
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:8085/api/talk/unloadglass2`;
+//const socketUrl = `ws://${WebSocketHost}:88/api/unLoadGlass/api/talk/unloadglass2`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+  // 鏇存柊 tableData 鐨勬暟鎹�
+  data.glassinfo[0].forEach((itemData, index) => {
+  if (index < racks.value.length) {
+    const rack = racks.value[index];
+      rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
+      const newItem = {
+      content: itemData.item.content,
+      fillColor: itemData.item.fillColor,
+      width: itemData.item.width === 0 ? "" : 10,
+      height: itemData.item.height === 0 ? "" : 90,
+      downGlassInfoList:itemData.item.downGlassInfoList
+    };
+    if (index === 1 && itemData.item.width > 0) {
+      newItem.width = 100;
+      newItem.height = 20;
+    }
+    rack.item = newItem;
+   // console.log("鏄剧ず鍥�1",racks.value); // 鎵撳嵃鏇存柊鍚庣殑 racks 鍊�
+  }
+});
+};
+onMounted(() => {
+  fetchFlowCardId(); // 鑾峰彇鏁版嵁
+  socket = initializeWebSocket(socketUrl, handleMessage);
+});
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
+const showCustomAlert = (downGlassInfoList) => {
+  let tableContent = '<table border="1" style="border-collapse: collapse; width: 100%;">';
+  tableContent += '<tr><th style="background-color: #f2f2f2;">鐜荤拑ID</th><th style="background-color: #f2f2f2;">鑶滅郴</th><th style="background-color: #f2f2f2;">鍘氬害</th><th style="background-color: #f2f2f2;">瀹藉害</th><th style="background-color: #f2f2f2;">楂樺害</th></tr>';
 
-const showCustomAlert = (content) => {
-  var str="鏋跺彿   :      111\n" +
-    "闀�     :      111\n" +
-    "瀹�     :      111\n" +
-    "鍘�     :      111\n"+
-    "鐜荤拑ID :      111\n"+
-    "鑶滅郴   :      111\n";
-
+  downGlassInfoList.forEach(info => {
+    tableContent += `<tr>
+      <td>${info.glassId}</td>
+      <td>${info.Filmsid}</td>
+      <td>${info.thickness}</td>
+      <td>${info.width}</td>
+      <td>${info.height}</td>
+    </tr>`;
+  });
+  tableContent += '</table>';
   Swal.fire({
-    title: '鐜荤拑淇℃伅',
-    html: '<pre>' + str + '</pre>',
+    // title: '鐜荤拑淇℃伅',
+    title: t('reportWork.glassinformation'),
+    html: tableContent,
     customClass: {
       popup: 'format-pre'
     }
   });
 };
-
-const showRectInfo = (rectInfo) => {
-  const content = rectInfo.item.content;
-  showCustomAlert(content);
-};
-
+    const showRectInfo = (rack) => {
+      const content = rack.item.content;
+      console.log(rack.item.downGlassInfoList[0].flowCardId)
+      console.log(content)
+   if(content==rack.item.downGlassInfoList[0].flowCardId){
+    const downGlassInfoList = rack.item.downGlassInfoList;
+      console.log(downGlassInfoList)
+      showCustomAlert(downGlassInfoList);
+   }
+    };
 </script>
-
 <style scoped>
 .glass-rack {
-  margin-left: 20px;
+  /* margin-left: 10px; */
   width: 500px;
-  margin-top: 10px;
+  margin-top: 5px;
 }
 .rack-rect:hover {
   cursor: pointer;

--
Gitblit v1.8.0