From c531149478942c18ccf99c2533b7b5fd8edc91b9 Mon Sep 17 00:00:00 2001 From: wuyouming666 <2265557248@qq.com> Date: 星期三, 24 七月 2024 12:36:33 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 240 ++++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 176 insertions(+), 64 deletions(-) diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue index 14920eb..42ec676 100644 --- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue +++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue @@ -9,9 +9,10 @@ import { useI18n } from 'vue-i18n' const { t } = useI18n() let language = ref(localStorage.getItem('lang') || 'zh') -const dialogFormVisible = ref(true) -const dialogFormVisiblea = ref(false) +const dialogFormVisible = ref(false) +const dialogFormVisiblea = ref(true) const dialogFormVisibleb = ref(false) +const blind = ref(false) const width = ref(); const height = ref(); const adjustedRects = ref([]); @@ -21,51 +22,137 @@ const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`; const handleMessage = (data) => { // 杩涚倝涓� - adjustedRects.value = data.intoGlass[0].map(rect => ({ + if(data.intoGlass!=null){ + adjustedRects.value = data.intoGlass[0].map(rect => { + let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; + let newX = rect.yCoordinate; + if (rect.angle === 0) { + adjustedWidth = rect.height * 0.12; + adjustedHeight = rect.width * 0.1; + adjustedWidtha = rect.height; + adjustedHeighta = rect.width; + newX = 5087 - (rect.xCoordinate + rect.height); + } else { + adjustedWidth = rect.width * 0.12; + adjustedHeight = rect.height * 0.1; + adjustedWidtha = rect.width; + adjustedHeighta = rect.height; + newX = 5087 - (rect.xCoordinate + rect.width); + } + return { ...rect, - xcoordinate: rect.xCoordinate * 0.3, - ycoordinate: rect.ycoordinate * 0.3, - width: rect.width * 0.2, - height: rect.height * 0.2, - widtha: rect.width, - heighta: rect.height, - })); - adjustedRects2.value = data.intoGlass2[0].map(rect => ({ + xcoordinate: newX * 0.12, + ycoordinate: rect.yCoordinate * 0.1, + width: adjustedWidth, + height: adjustedHeight, + widtha: adjustedWidtha, + heighta: adjustedHeighta, + }; + }); + } + if(data.intoGlass2!=null){ + adjustedRects2.value = data.intoGlass2[0].map(rect => { + let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; + let newX = rect.yCoordinate; + if (rect.angle === 0) { + adjustedWidth = rect.height * 0.12; + adjustedHeight = rect.width * 0.1; + adjustedWidtha = rect.height; + adjustedHeighta = rect.width; + newX = 5087 - (rect.xCoordinate + rect.height); + } else { + adjustedWidth = rect.width * 0.12; + adjustedHeight = rect.height * 0.1; + adjustedWidtha = rect.width; + adjustedHeighta = rect.height; + newX = 5087 - (rect.xCoordinate + rect.width); + } + return { ...rect, - xcoordinate: rect.xCoordinate * 0.3, - ycoordinate: rect.ycoordinate * 0.3, - width: rect.width * 0.2, - height: rect.height * 0.2, - widtha: rect.width, - heighta: rect.height, - })); - console.log(data.intoGlass[0]); + xcoordinate: newX * 0.12, + ycoordinate: rect.yCoordinate * 0.1, + width: adjustedWidth, + height: adjustedHeight, + widtha: adjustedWidtha, + heighta: adjustedHeighta, + }; + }); + } // 杩涚倝鍓� - adjustedRectsa.value = data.waitingGlass[0].map(rect => ({ - ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬� - xcoordinate: rect.xCoordinate * 0.5, - ycoordinate: rect.ycoordinate * 0.5, - width: rect.width * 0.4, - height: rect.height * 0.4, - widtha: rect.width, - heighta: rect.height, - state: rect.state - })); + if(data.waitingGlass!=null){ + adjustedRectsa.value = data.waitingGlass[0].map(rect => { + let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; + let newX = rect.yCoordinate; + if (rect.angle === 0) { + adjustedWidth = rect.width * 0.24; + adjustedHeight = rect.height * 0.16; + adjustedWidtha = rect.width; + adjustedHeighta = rect.height; + newX = 5190 - (rect.yCoordinate + rect.width); + } else { + adjustedWidth = rect.height * 0.24; + adjustedHeight = rect.width * 0.16; + adjustedWidtha = rect.height; + adjustedHeighta = rect.width; + newX = 5190 - (rect.yCoordinate + rect.height); + } + return { + ...rect, + x: newX * 0.24, + y: rect.xCoordinate * 0.16, + width: adjustedWidth, + height: adjustedHeight, + widtha: adjustedWidtha, + heighta: adjustedHeighta, + }; +}); + } // 宸插嚭鐐� - adjustedRectsb.value = data.outGlass[0].map(rect => ({ + if(data.outGlass!=null){ + adjustedRectsb.value = data.outGlass[0].map(rect => { + let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; + let newX = rect.yCoordinate; + if (rect.angle === 0) { + adjustedWidth = rect.width * 0.24; + adjustedHeight = rect.height * 0.16; + adjustedWidtha = rect.width; + adjustedHeighta = rect.height; + newX = 5190 - (rect.yCoordinate + rect.width); + } else { + adjustedWidth = rect.height * 0.24; + adjustedHeight = rect.width * 0.16; + adjustedWidtha = rect.height; + adjustedHeighta = rect.width; + newX = 5190 - (rect.yCoordinate + rect.height); + } + return { ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬� - xcoordinate: rect.xCoordinate * 0.5, - ycoordinate: rect.ycoordinate * 0.5, - width: rect.width * 0.4, - height: rect.height * 0.4, - widtha: rect.width, - heighta: rect.height, - state: rect.state - })); + x: newX * 0.24, + y: rect.xCoordinate * 0.16, + width: adjustedWidth, + height: adjustedHeight, + widtha: adjustedWidtha, + heighta: adjustedHeighta, + }; +}); + } }; onMounted(() => { initializeWebSocket(socketUrl, handleMessage); }); +function getRectColor(state) { + switch (state) { + case 0: + return '#f8e3c5'; + case 1: + return '#d1edc4'; + case -1: + return '#dedfe0'; + } +} +function showDialog(row) { + blind.value = true; +} onBeforeUnmount(() => { console.log("鍏抽棴浜�") closeWebSocket(); @@ -73,14 +160,16 @@ </script> <template> <div style="margin-top: 10px;"> - <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">{{ $t('processCard.intofurnace') }}</el-button> - <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;" >{{ $t('processCard.beforefurnace') }}</el-button> + <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;" >{{ $t('processCard.beforefurnace') }}</el-button> + <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">{{ $t('processCard.intofurnace') }}</el-button> <el-button id="searchButton" type="success" @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false">{{ $t('processCard.outfurnace') }}</el-button> <div v-if="dialogFormVisible" > <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> <div style="width: 49%;float: left;background-color: #f4f4f5;height: 550px;"> - <el-scrollbar height="630px"> - <div style="position: relative;width: 1400px;"> + <div v-if="adjustedRects.length > 0"> + <div style="text-align: center;">鐐夊彿锛歿{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div> + <el-scrollbar height="550px" style="background-color: #e9e9eb;"> + <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRects" :key="index" @@ -88,16 +177,20 @@ :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="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div> + <div >{{ rect.glassId }}</div> + <div >{{ rect.flowCardId }}</div> + <div>{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> </div> </el-scrollbar> + </div> </div> <div style="width: 49%;float: right;background-color: #f4f4f5;height: 550px;"> - <el-scrollbar height="550px"> - <div style="position: relative;width: 1400px;"> + <div v-if="adjustedRects2.length > 0"> + <div style="text-align: center;">鐐夊彿锛歿{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div> + <el-scrollbar height="550px" style="background-color: #e9e9eb;"> + <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRects2" :key="index" @@ -105,57 +198,75 @@ :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="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div> + <div >{{ rect.glassId }}</div> + <div >{{ rect.flowCardId }}</div> + <div>{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> </div> </el-scrollbar> + </div> </div> </el-card> </div> <div v-if="dialogFormVisiblea"> <!-- 杩涚倝鍓� --> - <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading"> - <el-scrollbar height="550px"> - <div style="position: relative;width: 1400px;"> + <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> + <div v-if="adjustedRectsa.length > 0"> + <div style="text-align: center;">鐐夊彿锛歿{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div> + <!-- <div style="text-align: center;">娴佺▼鍗�: {{ adjustedRectsa[0].flowCardId }}</div> --> + <el-scrollbar height="550px" style="background-color: #e9e9eb;"> + <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRectsa" :key="index" + @click="showDialog" class="rect" - :style="{ position: 'absolute', top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, + :style="{ position: 'absolute', top: `${rect.y}px`, left: `${rect.x}px`, width: `${rect.width}px`, height: `${rect.height}px`, - backgroundColor: rect.state === 0 ? '#dedfe0' : '#d1edc4' }"> - <div class="centered-text"> - <div >{{ rect.flowcardId }}</div> - <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div> + backgroundColor: getRectColor(rect.state) }"> + <div class="centered-text"> + <div>{{ rect.glassId }}</div> + <div >{{ rect.flowCardId }}</div> + <div>{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> </div> </el-scrollbar> + </div> </el-card> </div> <div v-if="dialogFormVisibleb"> <!-- 宸插嚭鐐� --> - <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading"> - <el-scrollbar height="550px"> - <div style="position: relative;width: 1400px;"> + <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> + <div v-if="adjustedRectsb.length > 0"> + <div style="text-align: center;">鐐夊彿锛歿{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div> + <el-scrollbar height="550px" style="background-color: #e9e9eb;"> + <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRectsb" :key="index" class="rect" - :style="{ position: 'absolute', top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, + :style="{ position: 'absolute', top: `${rect.y}px`, left: `${rect.x}px`, width: `${rect.width}px`, height: `${rect.height}px`, backgroundColor: rect.state === 4 ? '#911005' : '#f8e3c5' }"> <div class="centered-text"> - <div >{{ rect.flowcardId }}</div> - <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div> + <div >{{ rect.glassId }}</div> + <div >{{ rect.flowCardId }}</div> + <div>{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> </div> </el-scrollbar> + </div> </el-card> </div> + +<el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;"> + <el-button type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;"> + {{ $t('order.dilapidation') }} + </el-button> + </el-dialog> </div> </template> <style scoped> @@ -233,9 +344,10 @@ } .centered-text { /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */ - display: flex; + /* display: flex; */ justify-content: center; - align-items: center; + align-items: center; height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */ + font-size: small; } </style> \ No newline at end of file -- Gitblit v1.8.0