From 56fab901b298857ff4985b7429ef843c9a9d1471 Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期三, 28 八月 2024 16:20:02 +0800 Subject: [PATCH] 钢化模块打印功能,新增表格字段 --- UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 875 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 679 insertions(+), 196 deletions(-) diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue index f0b25de..fe85ccf 100644 --- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue +++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue @@ -1,34 +1,109 @@ -<script setup> -import {Search} from "@element-plus/icons-vue"; +<script setup lang="ts"> +import {Search ,Delete, Upload,Edit} from "@element-plus/icons-vue"; 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,nextTick } from 'vue'; import { WebSocketHost ,host} from '@/utils/constants' import { ElMessage, ElMessageBox } from 'element-plus' import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService'; import { useI18n } from 'vue-i18n' + import { useRouter } from 'vue-router' const { t } = useI18n() let language = ref(localStorage.getItem('lang') || 'zh') const dialogFormVisible = ref(false) const dialogFormVisiblea = ref(true) const dialogFormVisibleb = ref(false) -const blind = ref(false) +const dialogFormVisiblec = ref(false) +const blind1 = ref(false) +const blind2 = ref(false) +const blinda = ref(false) +const blindb = ref(false) +const dialogVisible = ref(false) const width = ref(); const height = ref(); +const currentRect = ref(null); +const canSelectProject1 = ref(true); +const canSelectProject2 = ref(true); +const canSelectProjecta = ref(true); +const cantakea = ref(true); +const cantakeb = ref(true); +const canona = ref(true); +const canonb = ref(true); +const canSelectProjectb = ref(true); const adjustedRects1 = ref([]); const adjustedRects2 = ref([]); const adjustedRectsa = ref([]); const adjustedRectsb = ref([]); +const tableData = ref([]) +const engineerId = ref('') +const router = useRouter() const currentGlassId = ref(null); const currenttemperingFeedSequence = ref(null); -let socket = null; +onMounted(async () => { + try { + const response = await request.post('/loadGlass/damage/selectDamagePrint', { + type: 9, + workingProcedure: '閽㈠寲', + }) + if (response.code === 200) { + tableData.value = response.data + console.log(response.data); + } else { + ElMessage.warning(res.msg) + } + } catch (error) { + // console.error('Error fetching rects :', error); + } +}); +const selectReportData = async () => { + let postData = { + type: 9, + workingProcedure: '閽㈠寲', + ...(engineerId.value !== '' && { engineerId: engineerId.value }), + }; + const response = await request.post("/loadGlass/damage/selectDamagePrint", postData) + if (response.code === 200) { + tableData.value = response.data; + ElMessage.success(response.message); + } else { + ElMessage.error(response.message); + } +}; +const printing = async () => { + let postData = { + type: 9, + workingProcedure: '閽㈠寲', + ...(engineerId.value !== '' && { engineerId: engineerId.value }), + }; + console.log(engineerId.value); + + const response = await request.post("/loadGlass/damage/selectDamagePrintDetails", postData) + if (response.code === 200) { + dialogVisible.value = true; + tableData.value = response.data; + await nextTick(); + window.print(); +} else { + ElMessage.error(response.message); + } +}; +const printTable = () => { + // 杩欓噷鍙互娣诲姞涓�浜汣SS鏍峰紡鏉ヤ紭鍖栨墦鍗版晥鏋� + // 渚嬪锛屽彲浠ユ坊鍔犱竴涓殣钘忕殑鎵撳嵃鏍峰紡琛� + window.print(); +}; const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`; -const handleMessage = (data) => { -// 杩涚倝涓� - if(data.intoGlass!=null){ - adjustedRects1.value = data.intoGlass[0].map(rect => { - console.log( adjustedRects1.value); +const handleMessage = (data) => { + // 杩涚倝涓彸 + if (data.intoGlass2 && data.intoGlass2.length > 0) { + // 鎻愬彇鏂扮殑鐭╁舰ID + const newGlassIds = new Set(data.intoGlass2[0].map(rect => rect.glassId)); + // 杩囨护鍑哄凡瀛樺湪鐨勭煩褰� + const existingRects = adjustedRects2.value.filter(rect => newGlassIds.has(rect.glassId)); + // 璁$畻鏂扮殑鐭╁舰 + const newRects = data.intoGlass2[0].map(rect => { + const scaleFactor = 794.67/5087; + const scaleFactorY = 430/2800; let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; let newX = rect.yCoordinate; if (rect.width < rect.height) { @@ -39,47 +114,47 @@ heighta = rect.height; } if (rect.angle === 0) { - adjustedWidth = widtha * 0.12; - adjustedHeight = heighta * 0.1; - adjustedWidtha = widtha; - adjustedHeighta = heighta; + adjustedWidth = widtha * scaleFactor; + adjustedHeight = heighta * scaleFactorY; + // adjustedWidtha = widtha; + // adjustedHeighta = heighta; newX = 5087 - (rect.yCoordinate + widtha); } else { - adjustedWidth = heighta * 0.12; - adjustedHeight = widtha * 0.1; - adjustedWidtha = heighta; - adjustedHeighta = widtha; - newX = 5087 - (rect.yCoordinate + heighta); - } - // 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); - // } + adjustedWidth = heighta * scaleFactor; + adjustedHeight = widtha * scaleFactorY; + // adjustedWidtha = widtha; + // adjustedHeighta = heighta; + newX = 5087 - (rect.yCoordinate + heighta); + } return { ...rect, - xcoordinate: newX * 0.12, - ycoordinate: rect.xCoordinate * 0.1, + xcoordinate: newX * scaleFactor, + ycoordinate: rect.xCoordinate * scaleFactorY, width: adjustedWidth, height: adjustedHeight, - widtha: adjustedWidtha, - heighta: adjustedHeighta, - }; - }); - }else{ - adjustedRects1.value = '' + widtha: rect.width, + heighta: rect.height, } - if(data.intoGlass2!=null){ - adjustedRects2.value = data.intoGlass2[0].map(rect => { - console.log( adjustedRects2.value); + }); + // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵�� + adjustedRects2.value = existingRects.map(oldRect => { + const newRect = newRects.find(r => r.glassId === oldRect.glassId); + if (newRect) { + return { ...oldRect, ...newRect, isActive: oldRect.isActive }; + } + return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍� + }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId))); + } + else if (data.intoGlass2 == null) { + adjustedRects2.value = [] + } + // 杩涚倝涓乏 + if (data.intoGlass && data.intoGlass.length > 0) { + const newGlassIds = new Set(data.intoGlass[0].map(rect => rect.glassId)); + const existingRects = adjustedRects1.value.filter(rect => newGlassIds.has(rect.glassId)); + const newRects = data.intoGlass[0].map(rect => { + const scaleFactor = 810.89/5087; + const scaleFactorY = 430/2800; let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; let newX = rect.yCoordinate; if (rect.width < rect.height) { @@ -90,48 +165,47 @@ heighta = rect.height; } if (rect.angle === 0) { - adjustedWidth = widtha * 0.12; - adjustedHeight = heighta * 0.1; - adjustedWidtha = widtha; - adjustedHeighta = heighta; + adjustedWidth = widtha * scaleFactor; + adjustedHeight = heighta * scaleFactorY; + // adjustedWidtha = widtha; + // adjustedHeighta = heighta; newX = 5087 - (rect.yCoordinate + widtha); } else { - adjustedWidth = heighta * 0.12; - adjustedHeight = widtha * 0.1; - adjustedWidtha = heighta; - adjustedHeighta = widtha; + adjustedWidth = heighta * scaleFactor; + adjustedHeight = widtha * scaleFactorY; + // adjustedWidtha = widtha; + // adjustedHeighta = heighta; newX = 5087 - (rect.yCoordinate + heighta); - } - // 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); - // } + } return { ...rect, - xcoordinate: newX * 0.12, - ycoordinate: rect.xCoordinate * 0.1, + xcoordinate: newX * scaleFactor, + ycoordinate: rect.xCoordinate * scaleFactorY, width: adjustedWidth, height: adjustedHeight, - widtha: adjustedWidtha, - heighta: adjustedHeighta, - }; - }); - }else{ - adjustedRects2.value = '' + widtha: rect.width, + heighta: rect.height, } - // 杩涚倝鍓� - if(data.waitingGlass!=null){ - adjustedRectsa.value = data.waitingGlass[0].map(rect => { - let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; + }); + // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵�� + adjustedRects1.value = existingRects.map(oldRect => { + const newRect = newRects.find(r => r.glassId === oldRect.glassId); + if (newRect) { + return { ...oldRect, ...newRect, isActive: oldRect.isActive }; + } + return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍� + }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId))); + } + else if (data.overGlass == null) { + adjustedRects1.value = [] + } + if (data.waitingGlass && data.waitingGlass.length > 0) { + const newGlassIds = new Set(data.waitingGlass[0].map(rect => rect.glassId)); + const existingRects = adjustedRectsa.value.filter(rect => newGlassIds.has(rect.glassId)); + const newRects = data.waitingGlass[0].map(rect => { + const scaleFactor = 1390/5190; + const scaleFactorY = 750/2800; + let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; let newX = rect.yCoordinate; if (rect.width < rect.height) { widtha = rect.height; @@ -141,35 +215,50 @@ heighta = rect.height; } if (rect.angle === 0) { - adjustedWidth = widtha * 0.24; - adjustedHeight = heighta * 0.16; - adjustedWidtha = widtha; - adjustedHeighta = heighta; + adjustedWidth = widtha * scaleFactor; + adjustedHeight = heighta * scaleFactorY; + // adjustedWidtha = widtha; + // adjustedHeighta = heighta; newX = 5190 - (rect.yCoordinate + widtha); } else { - adjustedWidth = heighta * 0.24; - adjustedHeight = widtha * 0.16; - adjustedWidtha = heighta; - adjustedHeighta = widtha; + adjustedWidth = heighta * scaleFactor; + adjustedHeight = widtha * scaleFactorY; + // adjustedWidtha = widtha; + // adjustedHeighta = heighta; newX = 5190 - (rect.yCoordinate + heighta); } return { ...rect, - x: newX * 0.24, - y: rect.xCoordinate * 0.16, + x: newX * scaleFactor, + y: rect.xCoordinate * scaleFactorY, width: adjustedWidth, height: adjustedHeight, - widtha: adjustedWidtha, - heighta: adjustedHeighta, - }; -}); - }else{ - adjustedRectsa.value = '' - } - // 宸插嚭鐐� - if(data.outGlass!=null){ - adjustedRectsb.value = data.outGlass[0].map(rect => { - let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; + widtha: rect.width, + heighta: rect.height, + } + }); + // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵�� + adjustedRectsa.value = existingRects.map(oldRect => { + const newRect = newRects.find(r => r.glassId === oldRect.glassId); + if (newRect) { + return { ...oldRect, ...newRect, isActive: oldRect.isActive }; + } + return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍� + }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId))); + } + else if (data.waitingGlass == null) { + adjustedRectsa.value = [] + } + if (data.outGlass && data.outGlass.length > 0) { + // 鎻愬彇鏂扮殑鐭╁舰ID + const newGlassIds = new Set(data.outGlass[0].map(rect => rect.glassId)); + // 杩囨护鍑哄凡瀛樺湪鐨勭煩褰� + const existingRects = adjustedRectsb.value.filter(rect => newGlassIds.has(rect.glassId)); + // 璁$畻鏂扮殑鐭╁舰 + const newRects = data.outGlass[0].map(rect => { + const scaleFactor = 1390/5190; + const scaleFactory = 750/2800; + let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta,newY; let newX = rect.yCoordinate; if (rect.width < rect.height) { widtha = rect.height; @@ -179,57 +268,115 @@ heighta = rect.height; } if (rect.angle === 0) { - adjustedWidth = widtha * 0.24; - adjustedHeight = heighta * 0.16; - adjustedWidtha = widtha; - adjustedHeighta = heighta; + adjustedWidth = widtha * scaleFactor; + adjustedHeight = heighta * scaleFactory; + // adjustedWidtha = widtha; + // adjustedHeighta = heighta; // newX = 5190 - (rect.yCoordinate + widtha); + newY = 2800 - (rect.xCoordinate + heighta); } else { - adjustedWidth = heighta * 0.24; - adjustedHeight = widtha * 0.16; - adjustedWidtha = heighta; - adjustedHeighta = widtha; + adjustedWidth = heighta * scaleFactor; + adjustedHeight = widtha * scaleFactory; + // adjustedWidtha = heighta; + // adjustedHeighta = widtha; // newX = 5190 - (rect.yCoordinate + heighta); + newY = 2800 - (rect.xCoordinate + widtha); } return { ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬� - x: newX * 0.24, - y: rect.xCoordinate * 0.16, + x: newX * scaleFactor, + y: newY * scaleFactory, width: adjustedWidth, height: adjustedHeight, - widtha: adjustedWidtha, - heighta: adjustedHeighta, - }; -}); - }else{ - adjustedRectsb.value = '' - } -}; + widtha: rect.width, + heighta: rect.height, + } + }); + + // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵�� + adjustedRectsb.value = existingRects.map(oldRect => { + const newRect = newRects.find(r => r.glassId === oldRect.glassId); + if (newRect) { + return { ...oldRect, ...newRect, isActive: oldRect.isActive }; + } + return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍� + }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId))); + } + else if (data.outGlass == null) { + adjustedRectsb.value = [] + } +}; onMounted(() => { - socket = initializeWebSocket(socketUrl, handleMessage); + initializeWebSocket(socketUrl, handleMessage); }); - onUnmounted(() => { - if (socket) { - closeWebSocket(socket); - } - }); -function updateRectColors() { +function updateRectColorsa() { adjustedRectsa.value.forEach(rect => { if (rect.glassId === glassId) { - rect.state = 5; + rect.state = 8; + } + }); +} +function updateoutColorsa() { + adjustedRectsa.value.forEach(rect => { + if (rect.glassId === glassId) { + rect.state = 9; + } + }); +} +function updateonColorsa() { + adjustedRectsa.value.forEach(rect => { + if (rect.glassId === glassId) { + rect.state = 1; + } + }); +} +function updateRectColorsb() { + adjustedRectsb.value.forEach(rect => { + if (rect.glassId === glassId) { + rect.state = 8; + } + }); +} +function updateoutColorsb() { + adjustedRectsb.value.forEach(rect => { + if (rect.glassId === glassId) { + rect.state = 9; + } + }); +} +function updateonColorsb() { + adjustedRectsb.value.forEach(rect => { + if (rect.glassId === glassId) { + rect.state = 3; + } + }); +} +function updateRectColors1() { + adjustedRects1.value.forEach(rect => { + if (rect.glassId === glassId) { + rect.state = 8; + } + }); +} +function updateRectColors2() { + adjustedRects2.value.forEach(rect => { + if (rect.glassId === glassId) { + rect.state = 8; } }); } function getRectColora(state) { switch (state) { case 0: - return '#7AC5CD'; - case 1: + return '#7AC5CD'; + case 1: return '#95d475'; - case -1: - return '#CDAF95'; - case 5: - return '#911005'; + case -1: + return '#CDAF95'; + case 8: + return '#911005'; + case 9: + return '#4682B4'; } } function getRectColorb(state) { @@ -238,41 +385,130 @@ return '#eebe77'; case 4: return '#CD6090'; - case 5: - return '#911005'; + case 8: + return '#911005'; + case 9: + return '#4682B4'; } } -// if (adjustedRectsb[0].engineerId != null) { -// engineerIdDisplayb = adjustedRectsb[0].engineerId -// } -// if (adjustedRectsa[0].engineerId != null) { -// engineerIdDisplaya = adjustedRectsa[0].engineerId -// } -// if (adjustedRects2[0].engineerId != null) { -// engineerIdDisplay2 = adjustedRects2[0].engineerId -// } -// if (adjustedRects[0].engineerId != null) { -// engineerIdDisplay = adjustedRects[0].engineerId -// } -function showDialog(rect) { +function showDialog1(rect) { + const index = adjustedRects1.value.findIndex(r => r.glassId === rect.glassId); + if (index !== -1) { + adjustedRects1.value[index].isActive = true; + } currentGlassId.value = rect.glassId; currenttemperingFeedSequence.value = rect.temperingFeedSequence; - blind.value = true; -} + blind1.value = true; + currentRect.value = rect; + if (currentRect.value.state == 8) { + canSelectProject1.value = false; + } else if (currentRect.value.state !== 8) { + canSelectProject1.value = true; + } +} +function showDialog2(rect) { + const index = adjustedRects2.value.findIndex(r => r.glassId === rect.glassId); + if (index !== -1) { + adjustedRects2.value[index].isActive = true; + } + currentGlassId.value = rect.glassId; + currenttemperingFeedSequence.value = rect.temperingFeedSequence; + blind2.value = true; + currentRect.value = rect; + if (currentRect.value.state == 8) { + canSelectProject2.value = false; + } else if (currentRect.value.state !== 8) { + canSelectProject2.value = true; + } +} +function showDialoga(rect) { + const index = adjustedRectsa.value.findIndex(r => r.glassId === rect.glassId); + if (index !== -1) { + adjustedRectsa.value[index].isActive = true; + } + currentGlassId.value = rect.glassId; + currenttemperingFeedSequence.value = rect.temperingFeedSequence; + blinda.value = true; + currentRect.value = rect; + if (currentRect.value.state == 8) { + canSelectProjecta.value = false; + } else if (currentRect.value.state !== 8) { + canSelectProjecta.value = true; + } + if (currentRect.value.state == 9) { + cantakea.value = false; + } else if (currentRect.value.state !== 9) { + cantakea.value = true; + } + if (currentRect.value.state == 1) { + canona.value = false; + } else if (currentRect.value.state == 0) { + canona.value = true; + } +} +function showDialogb(rect) { + const index = adjustedRectsb.value.findIndex(r => r.glassId === rect.glassId); + if (index !== -1) { + adjustedRectsb.value[index].isActive = true; + } + currentGlassId.value = rect.glassId; + currenttemperingFeedSequence.value = rect.temperingFeedSequence; + blindb.value = true; + currentRect.value = rect; + if (currentRect.value.state == 8) { + canSelectProjectb.value = false; + } else if (currentRect.value.state !== 8) { + canSelectProjectb.value = true; + } + if (currentRect.value.state == 9) { + cantakeb.value = false; + } else if (currentRect.value.state !== 9) { + cantakeb.value = true; + } + if (currentRect.value.state == 3) { + canonb.value = false; + } else if (currentRect.value.state !== 3) { + canonb.value = true; + } +} + const handleDialogClose1 = () => { + adjustedRects1.value.forEach(rect => { + rect.isActive = false; + }); + blind1.value = false; +}; + const handleDialogClose2 = () => { + adjustedRects2.value.forEach(rect => { + rect.isActive = false; + }); + blind2.value = false; +}; + const handleDialogClosea = () => { + adjustedRectsa.value.forEach(rect => { + rect.isActive = false; + }); + blinda.value = false; +}; + const handleDialogCloseb = () => { + adjustedRectsb.value.forEach(rect => { + rect.isActive = false; + }); + blindb.value = false; +}; // 鐮存崯 -const handleDamage = async () => { +const handleDamage1 = async () => { try { const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', { glassId: currentGlassId.value, // temperingFeedSequence: currenttemperingFeedSequence.value, line: 4001, - status: 2, + status: 8, workingProcedure: '閽㈠寲', }) if (response.code == 200) { - ElMessage.success(response.message); - blind.value = false; - updateRectColors(); + ElMessage.success('鎴愬姛锛�'); + blind1.value = false; + updateRectColors1(); } else { // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� ElMessage.error(response.message); @@ -283,6 +519,166 @@ console.error(error); } } +const handleDamage2 = async () => { + try { + const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', { + glassId: currentGlassId.value, + line: 4001, + status: 8, + workingProcedure: '閽㈠寲', + }) + if (response.code == 200) { + ElMessage.success('鎴愬姛锛�'); + blind2.value = false; + updateRectColors2(); + } else { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + ElMessage.error(response.message); + } +} +catch (error) { + // 澶勭悊閿欒 + console.error(error); + } +} +// 杩涚倝鍓嶇牬鎹� +const handleDamagea = async () => { + try { + const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', { + glassId: currentGlassId.value, + line: 4001, + status: 8, + workingProcedure: '閽㈠寲', + }) + if (response.code == 200) { + ElMessage.success('鎴愬姛锛�'); + blinda.value = false; + updateRectColorsa(); + } else { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + ElMessage.error(response.message); + } +} +catch (error) { + // 澶勭悊閿欒 + console.error(error); + } +} +// 杩涚倝鍓嶄汉宸ユ嬁璧� +const takeouta = async () => { + try { + const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', { + glassId: currentGlassId.value, + line: 4001, + status: 9, + workingProcedure: '閽㈠寲', + }) + if (response.code == 200) { + ElMessage.success('鎴愬姛锛�'); + blinda.value = false; + updateoutColorsa(); + } else { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + ElMessage.error(response.message); + } +} +catch (error) { + // 澶勭悊閿欒 + console.error(error); + } +} +// 杩涚倝鍓嶆斁鍥� +const takeona = async () => { + try { + const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', { + glassId: currentGlassId.value, + line: 4001, + status: 1, + workingProcedure: '閽㈠寲', + }) + if (response.code == 200) { + ElMessage.success('鎴愬姛锛�'); + blinda.value = false; + updateonColorsa(); + } else { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + ElMessage.error(response.message); + } +} +catch (error) { + // 澶勭悊閿欒 + console.error(error); + } +} +// 宸插嚭鐐夌牬鎹� +const handleDamageb = async () => { + try { + const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', { + glassId: currentGlassId.value, + line: 4001, + status: 8, + workingProcedure: '閽㈠寲', + }) + if (response.code == 200) { + ElMessage.success('鎴愬姛锛�'); + blindb.value = false; + updateRectColorsb(); + } else { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + ElMessage.error(response.message); + } +} +catch (error) { + // 澶勭悊閿欒 + // console.error(error); + } +} +// 宸插嚭鐐変汉宸ユ嬁璧� +const takeoutb = async () => { + try { + const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', { + glassId: currentGlassId.value, + line: 4001, + status: 9, + workingProcedure: '閽㈠寲', + }) + if (response.code == 200) { + ElMessage.success('鎴愬姛锛�'); + blindb.value = false; + updateoutColorsb(); + } else { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + ElMessage.error(response.message); + } +} +catch (error) { + // 澶勭悊閿欒 + // console.error(error); + } +} +// 宸插嚭鐐夋斁鍥� +const takeonb = async () => { + try { + const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', { + glassId: currentGlassId.value, + line: 4001, + status: 3, + workingProcedure: '閽㈠寲', + }) + if (response.code == 200) { + ElMessage.success('鎴愬姛锛�'); + blindb.value = false; + updateonColorsb(); + } else { + // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� + ElMessage.error(response.message); + } +} +catch (error) { + // 澶勭悊閿欒 + // console.error(error); + } +} onBeforeUnmount(() => { console.log("鍏抽棴浜�") closeWebSocket(); @@ -290,61 +686,62 @@ </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 style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;dialogFormVisiblec = false;" >{{ $t('processCard.beforefurnace') }}</el-button> + <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;dialogFormVisiblec = false;">{{ $t('processCard.intofurnace') }}</el-button> + <el-button id="searchButton" type="success" @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false;dialogFormVisiblec = false;">{{ $t('processCard.outfurnace') }}</el-button> + <el-button id="searchButton" type="info" @click="dialogFormVisiblec = true;dialogFormVisibleb = false;dialogFormVisible = false;dialogFormVisiblea = false">{{ $t('processCard.print') }}</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;"> +<div style="width: 50%;float: left;background-color: #f4f4f5;height: 430px;"> <div v-if="adjustedRects1.length > 0"> <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplay }}-{{ adjustedRects[0].temperingLayoutId }}</div> --> <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRects1[0].engineerId }}-{{ adjustedRects1[0].temperingLayoutId }} </div> - <el-scrollbar height="550px" style="background-color: #e9e9eb;"> + <el-scrollbar height="430px" style="background-color: #e9e9eb;"> <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRects1" :key="index" - @click="showDialog(rect)" + @click="showDialog1(rect)" class="rect" :style="{ position: 'absolute', top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`, - backgroundColor: rect.state === 5 ? '#911005' : 'lightblue' }" + backgroundColor: rect.isActive ? '#ADFF2F' : rect.state === 8 ? '#911005' : 'lightblue' }" > <div class="centered-text"> - <div >{{ rect.glassId }}</div> - <div >{{ rect.flowCardId }}</div> - <div>{{ rect.widtha }}*{{ rect.heighta }}</div> + <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div> + <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div> + <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> </div> </el-scrollbar> </div> </div> -<div style="width: 49%;float: right;background-color: #f4f4f5;height: 550px;"> +<div style="width: 49%;float: right;background-color: #f4f4f5;height: 430px;"> <div v-if="adjustedRects2.length > 0"> <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRects2[0].engineerId }}-{{ adjustedRects2[0].temperingLayoutId }} </div> <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplay2 }}-{{ adjustedRects[0].temperingLayoutId }}</div> --> - <el-scrollbar height="550px" style="background-color: #e9e9eb;"> + <el-scrollbar height="430px" style="background-color: #e9e9eb;"> <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRects2" :key="index" - @click="showDialog(rect)" + @click="showDialog2(rect)" class="rect" :style="{ position: 'absolute', top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`, - backgroundColor: rect.state === 5 ? '#911005' : 'lightblue' }" + backgroundColor: rect.isActive ? '#ADFF2F' : rect.state === 8 ? '#911005' : 'lightblue' }" > <div class="centered-text"> - <div >{{ rect.glassId }}</div> - <div >{{ rect.flowCardId }}</div> - <div>{{ rect.widtha }}*{{ rect.heighta }}</div> + <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div> + <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div> + <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> </div> @@ -355,24 +752,24 @@ </div> <div v-if="dialogFormVisiblea"> <!-- 杩涚倝鍓� --> - <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> + <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading"> <div v-if="adjustedRectsa.length > 0"> <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRectsa[0].engineerId }}-{{ adjustedRectsa[0].temperingLayoutId }} </div> <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplaya }}-{{ adjustedRects[0].temperingLayoutId }}</div> --> - <el-scrollbar height="550px" style="background-color: #e9e9eb;"> + <el-scrollbar height="750px" style="background-color: #e9e9eb;"> <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRectsa" :key="index" - @click="showDialog(rect)" + @click="showDialoga(rect)" class="rect" :style="{ position: 'absolute', top: `${rect.y}px`, left: `${rect.x}px`, width: `${rect.width}px`, height: `${rect.height}px`, - backgroundColor: getRectColora(rect.state) }"> + backgroundColor: rect.isActive ? '#ADFF2F' : getRectColora(rect.state) }"> <div class="centered-text"> - <div>{{ rect.glassId }}</div> - <div >{{ rect.flowCardId }}</div> - <div>{{ rect.widtha }}*{{ rect.heighta }}</div> + <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div> + <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div> + <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> </div> @@ -382,25 +779,25 @@ </div> <div v-if="dialogFormVisibleb"> <!-- 宸插嚭鐐� --> - <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> + <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading"> <div v-if="adjustedRectsb.length > 0"> <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRectsb[0].engineerId }}-{{ adjustedRectsb[0].temperingLayoutId }} </div> <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplayb }}-{{ adjustedRects[0].temperingLayoutId }}</div> --> - <el-scrollbar height="550px" style="background-color: #e9e9eb;"> + <el-scrollbar height="750px" style="background-color: #e9e9eb;"> <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRectsb" :key="index" - @click="showDialog(rect)" + @click="showDialogb(rect)" class="rect" :style="{ position: 'absolute', top: `${rect.y}px`, left: `${rect.x}px`, width: `${rect.width}px`, height: `${rect.height}px`, - backgroundColor: getRectColorb(rect.state) }"> + backgroundColor: rect.isActive ? '#ADFF2F' : getRectColorb(rect.state) }"> <!-- backgroundColor: rect.state === 4 ? '#911005' : '#f8e3c5' }"> --> <div class="centered-text"> - <div >{{ rect.glassId }}</div> - <div >{{ rect.flowCardId }}</div> - <div>{{ rect.widtha }}*{{ rect.heighta }}</div> + <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div> + <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div> + <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> </div> @@ -408,12 +805,95 @@ </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" style="width: 140px;margin-left: 10px;"> +<div v-if="dialogFormVisiblec"> + <!-- 鎵撳嵃 --> + <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading"> + <div style="display: flex; flex-direction: row; align-items: center; margin-top: 5px;margin-left: 10px;"> + <el-input :placeholder="$t('processCard.projectnumber')" v-model="engineerId" autocomplete="off" style="width: 300px;"/> + <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('processCard.inquire') }}</el-button> + <el-button type="info" style="margin-left: 10px;" @click="printing()">{{ $t('processCard.printing') }}</el-button> + </div> + + <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading"> + <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> + <el-table + height="600" + ref="table" + :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" + :data="tableData" + > + <el-table-column prop="engineerId" :label="$t('processCard.project')" width="200" align="center"/> + <el-table-column prop="temperingLayoutId" :label="$t('processCard.layoutID')" align="center"/> + <el-table-column prop="temperingFeedSequence" :label="$t('processCard.temperingfeed')" align="center"/> + <el-table-column prop="glassId" :label="$t('processCard.glassID')" align="center"/> + <el-table-column prop="width" :label="$t('processCard.width')" align="center"/> + <el-table-column prop="height" :label="$t('processCard.height')" align="center"/> + <el-table-column prop="thickness" :label="$t('processCard.thickness')" align="center"/> + </el-table> + </div> + </el-card> + </el-card> +</div> +<!-- 杩涚倝涓� --> +<el-dialog v-model="blind1" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose1"> + <el-button :disabled="!canSelectProject1" type="warning" plain :icon="Delete" @click="handleDamage1" style="width: 150px;margin-left: 10px;"> {{ $t('order.dilapidation') }} </el-button> + </el-dialog> +<el-dialog v-model="blind2" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose2"> + <el-button :disabled="!canSelectProject2" type="warning" plain :icon="Delete" @click="handleDamage2" style="width: 150px;margin-left: 10px;"> + {{ $t('order.dilapidation') }} + </el-button> + </el-dialog> + <!-- 杩涚倝鍓� --> +<el-dialog v-model="blinda" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClosea"> + <el-button type="warning" plain :icon="Delete" @click="handleDamagea" :disabled="!canSelectProjecta" style="width: 150px;margin-left: 10px;"> + {{ $t('order.dilapidation') }} + </el-button> + <el-button :disabled="!cantakea" type="danger" plain @click="takeouta" style="width: 150px;margin-left: 10px;margin-top: 10px;"> + <el-icon class="el-icon--right"><Upload /></el-icon> + {{ $t('order.takeaway') }} + </el-button> + <el-button type="success" plain :icon="Edit" @click="takeona" :disabled="!canona" style="width: 150px;margin-left: 10px;margin-top: 10px;"> + {{ $t('order.takeon') }} + </el-button> + </el-dialog> + <!-- 宸插嚭鐐� --> +<el-dialog v-model="blindb" top="30vh" width="15%" style="text-align: center;" @close="handleDialogCloseb"> + <el-button :disabled="!canSelectProjectb" type="warning" plain :icon="Delete" @click="handleDamageb" style="width: 150px;margin-left: 10px;"> + {{ $t('order.dilapidation') }} + </el-button> + <el-button :disabled="!cantakeb" type="danger" plain @click="takeoutb" style="width: 150px;margin-left: 10px;margin-top: 10px;"> + <el-icon class="el-icon--right"><Upload /></el-icon> + {{ $t('order.takeaway') }} + </el-button> + <!-- <el-button type="success" plain :icon="Edit" @click="takeonb" :disabled="!canonb" style="width: 150px;margin-left: 10px;margin-top: 10px;"> + {{ $t('order.takeon') }} + </el-button> --> </el-dialog> + <el-dialog + v-model="dialogVisible" + width="100%" + top="0vh" + :show-close="false" + > + <div class="custom-title" style="text-align: center; margin-bottom: 20px;"> + {{ $t('processCard.glasstakeout') }} + </div> + <el-table + :data="tableData" + style="width: 100%;height: 760px" + > + <el-table-column prop="flowCardId" :label="$t('processCard.flowcard')" width="140" align="center"/> + <el-table-column prop="layer" :label="$t('processCard.layer')" align="center" width="52"/> + <el-table-column prop="engineerId" :label="$t('processCard.project')" align="center" width="110"/> + <el-table-column prop="temperingLayoutId" :label="$t('processCard.temperinglayout')" align="center" width="52"/> + <el-table-column prop="temperingFeedSequence" :label="$t('processCard.temperingfeed')" align="center" width="52"/> + <el-table-column prop="width" :label="$t('processCard.width')" align="center" width="80"/> + <el-table-column prop="height" :label="$t('processCard.height')" align="center" width="80"/> + <el-table-column prop="thickness" :label="$t('processCard.thickness')" align="center" width="52"/> + </el-table> + </el-dialog> </div> </template> <style scoped> @@ -422,8 +902,8 @@ background-color: #529b2e; text-align: center; display: inline-block; - /* align-items:center; */ - /* justify-content:center; */ + /* align-items:center; */ + /* justify-content:center; */ margin-left: 20px; } #boxb{ @@ -432,16 +912,16 @@ /* display:flex; */ text-align: center; display: inline-block; - align-items:center; - justify-content:center; + align-items:center; + justify-content:center; margin-left: 20px; } #box{ border: 1px solid black; background-color: #337ecc; display:flex; - align-items:center; - justify-content:center; + align-items:center; + justify-content:center; } #home-card { width: 100%; @@ -483,11 +963,10 @@ } .rect { border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */ - background-color: lightblue; /* 璁剧疆鐭╁舰鐨勮儗鏅壊 */ + /* background-color: lightblue; 璁剧疆鐭╁舰鐨勮儗鏅壊 */ } #rect { position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */ - /* 鍏朵粬鏍峰紡 */ } .centered-text { /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */ @@ -497,4 +976,8 @@ height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */ /* font-size: small; */ } +.custom-title { + font-size: 20px; + font-weight: bold; +} </style> \ No newline at end of file -- Gitblit v1.8.0