From df751d889379e025237eb51e7764fa69e886f4a9 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期二, 20 八月 2024 10:18:10 +0800
Subject: [PATCH] 掰片/识别、钢化模块点击弹出时玻璃变色提示
---
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 404 ++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 267 insertions(+), 137 deletions(-)
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 3ab4e62..53f6d84 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -13,7 +13,10 @@
const dialogFormVisible = ref(false)
const dialogFormVisiblea = ref(true)
const dialogFormVisibleb = ref(false)
-const blind = ref(false)
+const blind1 = ref(false)
+const blind2 = ref(false)
+const blinda = ref(false)
+const blindb = ref(false)
const width = ref();
const height = ref();
const adjustedRects1 = ref([]);
@@ -23,11 +26,10 @@
const currentGlassId = ref(null);
const currenttemperingFeedSequence = ref(null);
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) {
+ const newRects = data.intoGlass2[0].map(rect => {
+ const scaleFactor = 794.67/5087;
let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
@@ -38,47 +40,40 @@
heighta = rect.height;
}
if (rect.angle === 0) {
- adjustedWidth = widtha * 0.12;
+ adjustedWidth = widtha * scaleFactor;
adjustedHeight = heighta * 0.1;
- adjustedWidtha = widtha;
- adjustedHeighta = heighta;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
newX = 5087 - (rect.yCoordinate + widtha);
} else {
- adjustedWidth = heighta * 0.12;
+ adjustedWidth = heighta * scaleFactor;
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);
- // }
+ // 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,
- 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 = adjustedRects2.value.map(oldRect => {
+ const newRect = newRects.find(r => r.glassId === oldRect.glassId);
+ if (newRect) {
+ return { ...oldRect, ...newRect, isActive: oldRect.isActive };
+ }
+ return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�
+ }).concat(newRects.filter(r => !adjustedRects2.value.some(o => o.glassId === r.glassId)));
+ }
+ if (data.intoGlass && data.intoGlass.length > 0) {
+ const newRects = data.intoGlass[0].map(rect => {
+ const scaleFactor = 794.67/5087;
let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
@@ -89,47 +84,40 @@
heighta = rect.height;
}
if (rect.angle === 0) {
- adjustedWidth = widtha * 0.12;
+ adjustedWidth = widtha * scaleFactor;
adjustedHeight = heighta * 0.1;
- adjustedWidtha = widtha;
- adjustedHeighta = heighta;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
newX = 5087 - (rect.yCoordinate + widtha);
} else {
- adjustedWidth = heighta * 0.12;
+ adjustedWidth = heighta * scaleFactor;
adjustedHeight = widtha * 0.1;
- adjustedWidtha = heighta;
- adjustedHeighta = widtha;
+ // 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,
+ xcoordinate: newX * scaleFactor,
ycoordinate: rect.xCoordinate * 0.1,
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 => {
+ });
+ // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��
+ adjustedRects1.value = adjustedRects1.value.map(oldRect => {
+ const newRect = newRects.find(r => r.glassId === oldRect.glassId);
+ if (newRect) {
+ return { ...oldRect, ...newRect, isActive: oldRect.isActive };
+ }
+ return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�
+ }).concat(newRects.filter(r => !adjustedRects1.value.some(o => o.glassId === r.glassId)));
+ }
+ if (data.waitingGlass && data.waitingGlass.length > 0) {
+ const newRects = 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) {
@@ -140,35 +128,42 @@
heighta = rect.height;
}
if (rect.angle === 0) {
- adjustedWidth = widtha * 0.24;
+ adjustedWidth = widtha * scaleFactor;
adjustedHeight = heighta * 0.16;
- adjustedWidtha = widtha;
- adjustedHeighta = heighta;
+ // 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;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
newX = 5190 - (rect.yCoordinate + heighta);
}
return {
...rect,
- x: newX * 0.24,
+ x: newX * scaleFactor,
y: rect.xCoordinate * 0.16,
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 = adjustedRectsa.value.map(oldRect => {
+ const newRect = newRects.find(r => r.glassId === oldRect.glassId);
+ if (newRect) {
+ return { ...oldRect, ...newRect, isActive: oldRect.isActive };
+ }
+ return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�
+ }).concat(newRects.filter(r => !adjustedRectsa.value.some(o => o.glassId === r.glassId)));
+ }
+ if (data.outGlass && data.outGlass.length > 0) {
+ const newRects = data.outGlass[0].map(rect => {
+ const scaleFactor = 1621.78/5190;
+ const scaleFactory = 550/2800;
+ let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta,newY;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
widtha = rect.height;
@@ -178,32 +173,40 @@
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 = adjustedRectsb.value.map(oldRect => {
+ const newRect = newRects.find(r => r.glassId === oldRect.glassId);
+ if (newRect) {
+ return { ...oldRect, ...newRect, isActive: oldRect.isActive };
+ }
+ return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�
+ }).concat(newRects.filter(r => !adjustedRectsb.value.some(o => o.glassId === r.glassId)));
+ }
+};
onMounted(() => {
initializeWebSocket(socketUrl, handleMessage);
});
@@ -236,25 +239,68 @@
return '#911005';
}
}
-// 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;
+}
+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;
+}
+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;
+}
+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;
+}
+ 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,
@@ -265,7 +311,76 @@
})
if (response.code == 200) {
ElMessage.success(response.message);
- blind.value = false;
+ blind1.value = false;
+ updateRectColors();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+const handleDamage2 = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ // temperingFeedSequence: currenttemperingFeedSequence.value,
+ line: 4001,
+ status: 2,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ blind2.value = false;
+ updateRectColors();
+ } 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,
+ // temperingFeedSequence: currenttemperingFeedSequence.value,
+ line: 4001,
+ status: 2,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ blinda.value = false;
+ updateRectColors();
+ } 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,
+ // temperingFeedSequence: currenttemperingFeedSequence.value,
+ line: 4001,
+ status: 2,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ blindb.value = false;
updateRectColors();
} else {
// 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -298,14 +413,14 @@
<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 === 5 ? '#911005' : 'lightblue' }"
>
<div class="centered-text">
<div >{{ rect.glassId }}</div>
@@ -326,14 +441,14 @@
<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 === 5 ? '#911005' : 'lightblue' }"
>
<div class="centered-text">
<div >{{ rect.glassId }}</div>
@@ -358,11 +473,11 @@
<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>
@@ -385,11 +500,11 @@
<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>
@@ -402,9 +517,24 @@
</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;">
+
+<el-dialog v-model="blind1" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose1">
+ <el-button type="warning" plain :icon="Delete" @click="handleDamage1" style="width: 140px;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 type="warning" plain :icon="Delete" @click="handleDamage2" style="width: 140px;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" style="width: 140px;margin-left: 10px;">
+ {{ $t('order.dilapidation') }}
+ </el-button>
+ </el-dialog>
+<el-dialog v-model="blindb" top="30vh" width="15%" style="text-align: center;" @close="handleDialogCloseb">
+ <el-button type="warning" plain :icon="Delete" @click="handleDamageb" style="width: 140px;margin-left: 10px;">
{{ $t('order.dilapidation') }}
</el-button>
</el-dialog>
@@ -416,8 +546,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{
@@ -426,16 +556,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%;
--
Gitblit v1.8.0