From 6977fb42d5067f6c938ef3de559a6ad19b542a0b Mon Sep 17 00:00:00 2001 From: 严智鑫 <test> Date: 星期五, 14 六月 2024 11:29:09 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 220 +++++++++++++++++++++---------------------------------- 1 files changed, 84 insertions(+), 136 deletions(-) diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue index b389719..da044de 100644 --- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue +++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue @@ -3,10 +3,10 @@ import {reactive} from "vue"; import {useRouter} from "vue-router" import request from "@/utils/request" - -import { ref, onMounted } from 'vue'; // import { ref } from 'vue' - +import { ref, onMounted, onBeforeUnmount } from 'vue'; +import { WebSocketHost ,host} from '@/utils/constants' +import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService'; const dialogFormVisible = ref(true) const dialogFormVisiblea = ref(false) const dialogFormVisibleb = ref(false) @@ -16,143 +16,66 @@ const adjustedRectsa = ref([]); const adjustedRectsb = ref([]); // 杩涚倝涓� -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 => ({ +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 , - })); - 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 => ({ + 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 })); - 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 => ({ + + 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 })); - console.log(rect); +}; +onMounted(() => { + // fetchFlowCardId(); + // fetchTableData(); // 鑾峰彇鏁版嵁 + initializeWebSocket(socketUrl, handleMessage); +}); - // 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: [ - { - } - ], -}) +onBeforeUnmount(() => { + console.log("鍏抽棴浜�") + closeWebSocket(); +}); </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" @@ -161,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"> @@ -173,13 +117,15 @@ <el-scrollbar height="630px"> <div style="position: relative;width: 1400px;"> <div - v-for="(rect, index) in adjustedRects" + 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> @@ -191,13 +137,15 @@ <el-scrollbar height="630px"> <div style="position: relative;width: 1400px;"> <div - v-for="(rect, index) in adjustedRects" + 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> -- Gitblit v1.8.0