| | |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from "vue-router" |
| | | import request from "@/utils/request" |
| | | import { ref, onMounted, onBeforeUnmount,onUnmounted } from 'vue'; |
| | | import { ref, onMounted, onBeforeUnmount } from 'vue'; |
| | | import { WebSocketHost ,host} from '@/utils/constants' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService'; |
| | |
| | | const dialogFormVisible = ref(false) |
| | | const dialogFormVisiblea = ref(true) |
| | | const dialogFormVisibleb = ref(false) |
| | | const dialogFormVisibletemperingTakeGlass = ref(true) |
| | | |
| | | const temperingTakeGlassInfos=ref([]) |
| | | const blind = ref(false) |
| | | const width = ref(); |
| | | const height = ref(); |
| | |
| | | const adjustedRectsb = ref([]); |
| | | const currentGlassId = ref(null); |
| | | const currenttemperingFeedSequence = ref(null); |
| | | let socket = null; |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`; |
| | | const handleMessage = (data) => { |
| | | if (data.temperingTakeGlassInfos != null) { |
| | | temperingTakeGlassInfos.value = data.temperingTakeGlassInfos[0]; |
| | | console.log(temperingTakeGlassInfos.value) |
| | | } |
| | | // 进炉中 |
| | | if(data.intoGlass!=null){ |
| | | adjustedRects1.value = data.intoGlass[0].map(rect => { |
| | | console.log( adjustedRects1.value); |
| | | const scaleFactor = 794.67/5087; |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | let newX = rect.yCoordinate; |
| | | if (rect.width < rect.height) { |
| | |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = heighta * 0.12; |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + widtha); |
| | | } else { |
| | | adjustedWidth = heighta * scaleFactor; |
| | | adjustedHeight = widtha * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + heighta); |
| | | } else { |
| | | adjustedWidth = widtha * 0.12; |
| | | adjustedHeight = heighta * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + widtha); |
| | | } |
| | | // if (rect.angle === 0) { |
| | | // adjustedWidth = heighta * 0.12; |
| | | // adjustedHeight = widtha * 0.1; |
| | | // adjustedWidtha = heighta; |
| | | // adjustedHeighta = widtha; |
| | | // newX = 5087 - (rect.xCoordinate + heighta); |
| | | // } else { |
| | | // adjustedWidth = widtha * 0.12; |
| | | // adjustedHeight = heighta * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | // newX = 5087 - (rect.xCoordinate + widtha); |
| | | // } |
| | | newX = 5087 - (rect.yCoordinate + heighta); |
| | | } |
| | | return { |
| | | ...rect, |
| | | xcoordinate: newX * 0.12, |
| | | xcoordinate: newX * scaleFactor, |
| | | ycoordinate: rect.xCoordinate * 0.1, |
| | | width: adjustedWidth, |
| | | height: adjustedHeight, |
| | |
| | | } |
| | | if(data.intoGlass2!=null){ |
| | | adjustedRects2.value = data.intoGlass2[0].map(rect => { |
| | | console.log( adjustedRects2.value); |
| | | const scaleFactor = 794.67/5087; |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | let newX = rect.yCoordinate; |
| | | if (rect.width < rect.height) { |
| | |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = heighta * 0.12; |
| | | adjustedHeight = widtha * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + heighta); |
| | | } else { |
| | | adjustedWidth = widtha * 0.12; |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + widtha); |
| | | } |
| | | // if (rect.angle === 0) { |
| | | // adjustedWidth = heighta * 0.12; |
| | | // adjustedHeight = widtha * 0.1; |
| | | // adjustedWidtha = heighta; |
| | | // adjustedHeighta = widtha; |
| | | // newX = 5087 - (rect.xCoordinate + heighta); |
| | | // } else { |
| | | // adjustedWidth = widtha * 0.12; |
| | | // adjustedHeight = heighta * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | // newX = 5087 - (rect.xCoordinate + widtha); |
| | | // } |
| | | } else { |
| | | adjustedWidth = heighta * scaleFactor; |
| | | adjustedHeight = widtha * 0.1; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5087 - (rect.yCoordinate + heighta); |
| | | } |
| | | return { |
| | | ...rect, |
| | | xcoordinate: newX * 0.12, |
| | | xcoordinate: newX * scaleFactor, |
| | | ycoordinate: rect.xCoordinate * 0.1, |
| | | width: adjustedWidth, |
| | | height: adjustedHeight, |
| | |
| | | // 进炉前 |
| | | if(data.waitingGlass!=null){ |
| | | adjustedRectsa.value = data.waitingGlass[0].map(rect => { |
| | | const scaleFactor = 1621.78/5190; |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | let newX = rect.yCoordinate; |
| | | if (rect.width < rect.height) { |
| | |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = widtha * 0.24; |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * 0.16; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | newX = 5190 - (rect.yCoordinate + widtha); |
| | | } else { |
| | | adjustedWidth = heighta * 0.24; |
| | | adjustedWidth = heighta * scaleFactor; |
| | | adjustedHeight = widtha * 0.16; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | |
| | | } |
| | | return { |
| | | ...rect, |
| | | x: newX * 0.24, |
| | | x: newX * scaleFactor, |
| | | y: rect.xCoordinate * 0.16, |
| | | width: adjustedWidth, |
| | | height: adjustedHeight, |
| | |
| | | // 已出炉 |
| | | if(data.outGlass!=null){ |
| | | adjustedRectsb.value = data.outGlass[0].map(rect => { |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | const scaleFactor = 1621.78/5190; |
| | | let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; |
| | | let newX = rect.yCoordinate; |
| | | if (rect.width < rect.height) { |
| | | widtha = rect.height; |
| | |
| | | heighta = rect.height; |
| | | } |
| | | if (rect.angle === 0) { |
| | | adjustedWidth = widtha * 0.24; |
| | | adjustedWidth = widtha * scaleFactor; |
| | | adjustedHeight = heighta * 0.16; |
| | | // adjustedWidtha = widtha; |
| | | // adjustedHeighta = heighta; |
| | | // newX = 5190 - (rect.yCoordinate + widtha); |
| | | } else { |
| | | adjustedWidth = heighta * 0.24; |
| | | adjustedWidth = heighta * scaleFactor; |
| | | adjustedHeight = widtha * 0.16; |
| | | // adjustedWidtha = heighta; |
| | | // adjustedHeighta = widtha; |
| | |
| | | } |
| | | return { |
| | | ...rect, // 复制原始对象的其他属性 |
| | | x: newX * 0.24, |
| | | x: newX * scaleFactor, |
| | | y: rect.xCoordinate * 0.16, |
| | | width: adjustedWidth, |
| | | height: adjustedHeight, |
| | |
| | | } |
| | | }; |
| | | onMounted(() => { |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | initializeWebSocket(socketUrl, handleMessage); |
| | | }); |
| | | onUnmounted(() => { |
| | | if (socket) { |
| | | closeWebSocket(socket); |
| | | } |
| | | }); |
| | | function updateRectColors() { |
| | | adjustedRectsa.value.forEach(rect => { |
| | | if (rect.glassId === glassId) { |
| | | rect.state = 8; |
| | | rect.state = 5; |
| | | } |
| | | }); |
| | | adjustedRectsb.value.forEach(rect => { |
| | | if (rect.glassId === glassId) { |
| | | rect.state = 8; |
| | | } |
| | | }); |
| | | } |
| | | function getRectColora(state) { |
| | | switch (state) { |
| | |
| | | return '#95d475'; |
| | | case -1: |
| | | return '#CDAF95'; |
| | | case 8: |
| | | case 5: |
| | | return '#911005'; |
| | | } |
| | | } |
| | |
| | | return '#eebe77'; |
| | | case 4: |
| | | return '#CD6090'; |
| | | case 8: |
| | | case 5: |
| | | return '#911005'; |
| | | } |
| | | } |
| | |
| | | glassId: currentGlassId.value, |
| | | // temperingFeedSequence: currenttemperingFeedSequence.value, |
| | | line: 4001, |
| | | status: 8, |
| | | status: 2, |
| | | workingProcedure: '钢化', |
| | | }) |
| | | if (response.code == 200) { |
| | |
| | | </script> |
| | | <template> |
| | | <div style="margin-top: 10px;"> |
| | | |
| | | <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> |
| | | <el-button id="searchButton" type="success" @click="dialogFormVisibletemperingTakeGlass = true;">拿走详情</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;"> |
| | |
| | | left: `${rect.xcoordinate}px`, |
| | | width: `${rect.width}px`, |
| | | height: `${rect.height}px`, |
| | | backgroundColor: rect.state === 8 ? '#911005' : 'lightblue' }" |
| | | backgroundColor: rect.state === 5 ? '#911005' : 'lightblue' }" |
| | | > |
| | | <div class="centered-text"> |
| | | <div >{{ rect.glassId }}</div> |
| | |
| | | left: `${rect.xcoordinate}px`, |
| | | width: `${rect.width}px`, |
| | | height: `${rect.height}px`, |
| | | backgroundColor: rect.state === 8 ? '#911005' : 'lightblue' }" |
| | | backgroundColor: rect.state === 5 ? '#911005' : 'lightblue' }" |
| | | > |
| | | <div class="centered-text"> |
| | | <div >{{ rect.glassId }}</div> |
| | |
| | | </el-button> |
| | | </el-dialog> |
| | | </div> |
| | | |
| | | <el-dialog v-model="dialogFormVisibletemperingTakeGlass" top="2vh" width="97%" |
| | | :title="$t('人工拿走信息')"> |
| | | <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="temperingTakeGlassInfos" |
| | | :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> |
| | | <el-table-column prop="engineerId" align="center" :label="$t('工程号')" min-width="80"/> |
| | | <el-table-column prop="processId" align="center" :label="$t('流程卡号')" min-width="80"/> |
| | | <el-table-column prop="technologyNumber" align="center" :label="$t('层')" min-width="120"/> |
| | | <el-table-column prop="orderNumber" align="center" :label="$t('订单序号')" min-width="80"/> |
| | | <el-table-column prop="temperingLayoutId" align="center" :label="$t('钢化版图')" min-width="150"/> |
| | | </el-table> |
| | | </el-dialog> |
| | | </template> |
| | | <style scoped> |
| | | #boxa{ |