From 902f423642e0bd17806c9b3c8bcabf4d5787772a Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期一, 19 八月 2024 15:18:04 +0800
Subject: [PATCH] 钢化模块进炉中视图顺序更改,所有视图点击变色(部分)
---
UI-Project/src/views/Identify/identify.vue | 16 +++
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue | 76 ++++++++++++++++++
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 98 ++++++++++++++++++-----
3 files changed, 161 insertions(+), 29 deletions(-)
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index d973668..d71f75c 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -21,7 +21,7 @@
@click="showDialog(rect.glass_id)"
:style="{ position: 'absolute',
top: `${rect.y_axis}px`, left: `${rect.x_axis}px`, width: `${rect.width}px`, height: `${rect.height}px`,
- backgroundColor: getRectColor(rect.glass_state)
+ backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor(rect.glass_state)
}"
>
<!-- 绠ご -->
@@ -34,7 +34,7 @@
</div>
</div>
</el-scrollbar>
- <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;">
+ <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
<el-button type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;">
{{ $t('order.dilapidation') }}
</el-button>
@@ -76,7 +76,16 @@
function showDialog(glassId: number) {
currentGlassId.value = glassId;
blind.value = true;
+ adjustedRects.value = adjustedRects.value.map(rect =>
+ rect.glass_id === glassId ? { ...rect, isActive: true } : rect
+ );
}
+const handleDialogClose = () => {
+ adjustedRects.value = adjustedRects.value.map(rect => ({
+ ...rect,
+ isActive: false
+ }));
+}
// 鐮存崯
const handleDamage = async () => {
try {
@@ -221,7 +230,8 @@
widtha: rect.width ,
heighta: rect.height ,
height: rect.height * 0.165 ,
- glass_state: rect.glass_state
+ glass_state: rect.glass_state,
+ isActive: false
}));
};
webSocket.onerror = (error) => {
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 1b332f2..3d790cf 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -25,9 +25,10 @@
const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
const handleMessage = (data) => {
// 杩涚倝涓�
- if(data.intoGlass!=null){
- adjustedRects1.value = data.intoGlass[0].map(rect => {
- const scaleFactor = 794.67/5087;
+ if(data.intoGlass2!=null){
+ adjustedRects2.value = data.intoGlass2[0].map(rect => {
+ isActive: false
+ const scaleFactor = 794.67/5087;
let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
@@ -63,9 +64,10 @@
}else{
adjustedRects1.value = ''
}
- if(data.intoGlass2!=null){
- adjustedRects2.value = data.intoGlass2[0].map(rect => {
- const scaleFactor = 794.67/5087;
+ if(data.intoGlass!=null){
+ adjustedRects1.value = data.intoGlass[0].map(rect => {
+ isActive: false
+ const scaleFactor = 794.67/5087;
let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
@@ -104,7 +106,8 @@
// 杩涚倝鍓�
if(data.waitingGlass!=null){
adjustedRectsa.value = data.waitingGlass[0].map(rect => {
- const scaleFactor = 1621.78/5190;
+ isActive: false
+ const scaleFactor = 1621.78/5190;
let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
@@ -143,8 +146,10 @@
// 宸插嚭鐐�
if(data.outGlass!=null){
adjustedRectsb.value = data.outGlass[0].map(rect => {
- const scaleFactor = 1621.78/5190;
- let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
+ isActive: false
+ 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;
@@ -155,21 +160,23 @@
}
if (rect.angle === 0) {
adjustedWidth = widtha * scaleFactor;
- adjustedHeight = heighta * 0.16;
+ adjustedHeight = heighta * scaleFactory;
// adjustedWidtha = widtha;
// adjustedHeighta = heighta;
// newX = 5190 - (rect.yCoordinate + widtha);
+ newY = 2800 - (rect.xCoordinate + heighta);
} else {
adjustedWidth = heighta * scaleFactor;
- adjustedHeight = widtha * 0.16;
+ adjustedHeight = widtha * scaleFactory;
// adjustedWidtha = heighta;
// adjustedHeighta = widtha;
// newX = 5190 - (rect.yCoordinate + heighta);
+ newY = 2800 - (rect.xCoordinate + widtha);
}
return {
...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
x: newX * scaleFactor,
- y: rect.xCoordinate * 0.16,
+ y: newY * scaleFactory,
width: adjustedWidth,
height: adjustedHeight,
widtha: rect.width,
@@ -224,11 +231,56 @@
// if (adjustedRects[0].engineerId != null) {
// engineerIdDisplay = adjustedRects[0].engineerId
// }
-function showDialog(rect) {
+function showDialog1(rect) {
currentGlassId.value = rect.glassId;
currenttemperingFeedSequence.value = rect.temperingFeedSequence;
blind.value = true;
-}
+ adjustedRects1.value = adjustedRects1.value.map(rect =>
+ rect.glass_id === glassId ? { ...rect, isActive: true } : rect
+ );
+}
+function showDialog2(rect) {
+ currentGlassId.value = rect.glassId;
+ currenttemperingFeedSequence.value = rect.temperingFeedSequence;
+ blind.value = true;
+ adjustedRects2.value = adjustedRects2.value.map(rect =>
+ rect.glass_id === glassId ? { ...rect, isActive: true } : rect
+ );
+}
+function showDialoga(rect) {
+ currentGlassId.value = rect.glassId;
+ currenttemperingFeedSequence.value = rect.temperingFeedSequence;
+ blind.value = true;
+ adjustedRectsa.value = adjustedRectsa.value.map(rect =>
+ rect.glass_id === glassId ? { ...rect, isActive: true } : rect
+ );
+}
+function showDialogb(rect) {
+ currentGlassId.value = rect.glassId;
+ currenttemperingFeedSequence.value = rect.temperingFeedSequence;
+ blind.value = true;
+ adjustedRectsb.value = adjustedRectsb.value.map(rect =>
+ rect.glass_id === glassId ? { ...rect, isActive: true } : rect
+ );
+}
+const handleDialogClose = () => {
+ adjustedRects1.value = adjustedRects1.value.map(rect => ({
+ ...rect,
+ isActive: false
+ }));
+ // adjustedRects2.value = adjustedRects2.value.map(rect => ({
+ // ...rect,
+ // isActive: false
+ // }));
+ // adjustedRectsa.value = adjustedRectsa.value.map(rect => ({
+ // ...rect,
+ // isActive: false
+ // }));
+ adjustedRectsb.value = adjustedRectsb.value.map(rect => ({
+ ...rect,
+ isActive: false
+ }));
+}
// 鐮存崯
const handleDamage = async () => {
try {
@@ -274,14 +326,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>
@@ -302,14 +354,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>
@@ -334,11 +386,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>
@@ -361,11 +413,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>
@@ -379,7 +431,7 @@
</el-card>
</div>
-<el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;">
+<el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
<el-button type="warning" plain :icon="Delete" @click="handleDamage" style="width: 140px;margin-left: 10px;">
{{ $t('order.dilapidation') }}
</el-button>
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index 8f28ec9..62f5a07 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -39,6 +39,7 @@
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.width;
@@ -67,17 +68,79 @@
height: adjustedHeight,
widtha: rect.width,
heighta: rect.height,
+ // isActive: false,
};
});
}
};
+// const handleMessage = (data) => {
+// // 鍋囪 data.overGlass[0] 鏄煩褰㈡暟缁�
+// const newRects = data.overGlass[0].map(newRect => ({
+// ...newRect,
+// const scaleFactor = 1621.78 / 5190;
+// let widtha, heighta, adjustedWidth, adjustedHeight;
+
+// // 浜ゆ崲瀹藉害鍜岄珮搴︼紙濡傛灉鐭╁舰鏄�滄í鍚戔�濈殑锛�
+// if (rect.width < rect.height) {
+// widtha = rect.height;
+// heighta = rect.width;
+// } else {
+// widtha = rect.width;
+// heighta = rect.height;
+// }
+
+// // 鏍规嵁瑙掑害璋冩暣瀹藉害鍜岄珮搴�
+// if (rect.angle === 0) {
+// adjustedWidth = widtha * scaleFactor;
+// adjustedHeight = heighta * 0.16;
+// } else {
+// adjustedWidth = heighta * scaleFactor;
+// adjustedHeight = widtha * 0.16;
+// }
+
+// // 娉ㄦ剰锛氳繖閲屽彲鑳介渶瑕侀噸鏂拌�冭檻 newX 鐨勮绠楁柟寮�
+// // 鏆傛椂淇濈暀涓哄師濮� yCoordinate 鐨勫鐞嗭紝浣嗛�氬父 x 鍧愭爣涓嶅簲鏉ヨ嚜 y 鍧愭爣
+// let newX = rect.yCoordinate; // 鍙兘鏄釜閿欒锛岄櫎闈炴湁鐗瑰畾鐢ㄩ��
+
+// // 杩斿洖鏂扮殑鐭╁舰瀵硅薄
+// return {
+// ...rect, // 澶嶅埗鍘熷鐭╁舰鐨勬墍鏈夊睘鎬�
+// xcoordinate: newX * scaleFactor, // 娉ㄦ剰锛氳繖閲岀殑 newX 鍙兘闇�瑕佽皟鏁�
+// ycoordinate: rect.xCoordinate * 0.16,
+// width: adjustedWidth,
+// height: adjustedHeight,
+// widtha,
+// heighta,
+// isActive: false, // 榛樿涓洪潪婵�娲荤姸鎬�
+// // 鍙互娣诲姞鍏朵粬闇�瑕佺殑灞炴��
+// }
+// }));
+
+ // 浣跨敤鏂版暟鎹洿鏂� adjustedRects
+ // 娉ㄦ剰锛氳繖閲屾垜浠亣璁� adjustedRects.value 涓殑鐭╁舰涔熸湁 id 灞炴��
+// adjustedRects.value = adjustedRects.value.map(oldRect => {
+// const updatedRect = newRects.find(newRect => newRect.id === oldRect.id);
+// if (updatedRect) {
+// // 濡傛灉鎵惧埌浜嗗搴旂殑鐭╁舰锛屽垯鍚堝苟灞炴�у拰淇濈暀鍘熷婵�娲荤姸鎬侊紙濡傛灉闇�瑕佺殑璇濓級
+// // 浣嗗湪杩欎釜渚嬪瓙涓紝鎴戜滑鎬绘槸灏� isActive 璁剧疆涓� false
+// return {
+// ...oldRect,
+// ...updatedRect, // 鍚堝苟鏂扮煩褰㈢殑灞炴�э紝浣嗕細瑕嗙洊 isActive
+// isActive: false, // 鎬绘槸璁剧疆涓� false锛岄櫎闈炴偍鏈夋洿澶嶆潅鐨勯�昏緫
+// };
+// }
+// // 濡傛灉娌℃湁鎵惧埌瀵瑰簲鐨勭煩褰紝鍒欎繚鐣欏師鏍�
+// return oldRect;
+// }).concat(newRects.filter(newRect => !adjustedRects.value.some(oldRect => oldRect.id === newRect.id)));
+// // concat 鐢ㄤ簬娣诲姞閭d簺鍦� adjustedRects.value 涓笉瀛樺湪鐨勬柊鐭╁舰
+// };
function updateRectColors() {
adjustedRects.value.forEach(rect => {
if (rect.glassId === glassId) {
rect.state = 8;
}
});
-}
+}
function getRectColora(state) {
switch (state) {
case 3:
@@ -89,10 +152,16 @@
}
}
function showDialog(rect) {
+ rect.isActive = true;
currentGlassId.value = rect.glassId;
currenttemperingFeedSequence.value = rect.temperingFeedSequence;
blind.value = true;
}
+const handleDialogClose = () => {
+ adjustedRects.value.forEach(rect => {
+ rect.isActive = false; // 鍏抽棴瀵硅瘽妗嗘椂閲嶇疆鎵�鏈夌煩褰㈢殑 isActive 鐘舵��
+ });
+};
// 鐮存崯
const handleDamage = async () => {
try {
@@ -147,7 +216,8 @@
class="rect"
:style="{ position: 'absolute', top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}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>
@@ -160,7 +230,7 @@
</div>
</el-card>
</div>
- <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;">
+ <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
<el-button type="warning" plain :icon="Delete" @click="handleDamage" style="width: 140px;margin-left: 10px;">
{{ $t('order.dilapidation') }}
</el-button>
--
Gitblit v1.8.0