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, 113 insertions(+), 59 deletions(-) diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue index d43f129..e3d52c3 100644 --- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue +++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue @@ -1,9 +1,10 @@ <template> <div class="glass-rack"> - <div> - <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg"> + <div > + <svg width="500" height="370" xmlns="http://www.w3.org/2000/svg"> <g stroke="null" id="Layer_1"> - <g v-for="(rack, index) in racks" :key="index"> + <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 --> + <g v-for="(rack, index) in racks" :key="index" :data="tableData"> <rect :x="rack.x" :y="rack.y" @@ -21,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> @@ -29,57 +30,70 @@ </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:""} }, -// 鍒濆鍖栨暟鎹� -let racks = [ - { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } }, - { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } }, - { 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) { + if (index === 0 ) { return rack.x; - } else if (index === 1) { - return rack.x + rack.width - item.width; - } else { + } else if (index === 1 ) { return rack.x + (rack.width - item.width) / 2; + } else { + return rack.x + rack.width - item.width; } }; - const calculateItemYPosition = (rack, item, index) => { - if (index === 0) { + if (index === 0 ) { return rack.y + (rack.height - item.height) / 2; } else if (index === 1) { - return rack.y + (rack.height - item.height) / 2; - } else { return rack.y + rack.height - item.height; + } else { + return rack.y + (rack.height - item.height) / 2; } }; - -// 鑾峰彇鏁版嵁骞舵洿鏂� racks 鏁扮粍 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.length) { - const rack = racks[index]; - const newItem = { - content: itemData.item.content, - fillColor: itemData.item.fillColor, - width: itemData.item.width / 10000, - height: itemData.item.height / 10000 - }; - // 鏇存柊 racks 鏁扮粍 - Vue.set(racks, index, { ...rack, item: newItem }); - } - }); + 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); } @@ -87,40 +101,80 @@ 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>'; -// 鑾峰彇鏁版嵁骞舵洿鏂� racks 鏁扮粍 -fetchFlowCardId(); - -// 鏄剧ず鑷畾涔夎鎶� -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; @@ -136,4 +190,4 @@ padding: 10px; font-size: 14px; } -</style> +</style> \ No newline at end of file -- Gitblit v1.8.0