wangfei
2024-08-27 3048ae014effa8f8ba92395eeb1e69f18e76ebf0
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -85,63 +85,15 @@
};  
const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
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) {
  //       widtha = rect.height;
  //       heighta = rect.width;
  //     }else {
  //       widtha = rect.width;
  //       heighta = rect.height;
  //     }
  //     if (rect.angle === 0) {
  //   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);
  // }
  //       return {
  //       ...rect,
  //       xcoordinate: newX * scaleFactor,
  //       ycoordinate: rect.xCoordinate * 0.1,
  //       width: adjustedWidth,
  //       height: adjustedHeight,
  //       widtha: rect.width,
  //       heighta: rect.height,
  //     }
  //   });
  //   // 合并新旧矩形,保留 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)));
  // }
  // else {
  //   adjustedRects2.value = ''
  // }
  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) {
@@ -153,13 +105,13 @@
      }
      if (rect.angle === 0) {  
    adjustedWidth = widtha * scaleFactor;
    adjustedHeight = heighta * 0.1;
    adjustedHeight = heighta * scaleFactorY;
    // adjustedWidtha = widtha;  
    // adjustedHeighta = heighta;   
    newX = 5087 - (rect.yCoordinate + widtha); 
    } else {  
    adjustedWidth = heighta * scaleFactor;  
    adjustedHeight = widtha * 0.1;
    adjustedHeight = widtha * scaleFactorY;
    // adjustedWidtha = widtha;  
    // adjustedHeighta = heighta;  
    newX = 5087 - (rect.yCoordinate + heighta); 
@@ -167,14 +119,13 @@
        return {  
        ...rect, 
        xcoordinate: newX * scaleFactor,
        ycoordinate: rect.xCoordinate * 0.1,
        ycoordinate: rect.xCoordinate * scaleFactorY,
        width: adjustedWidth,  
        height: adjustedHeight,  
        widtha: rect.width, 
        heighta: rect.height,
      }
    });   
    // 合并新旧矩形,并保留 isActive 状态  
    adjustedRects2.value = existingRects.map(oldRect => {  
      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
@@ -187,67 +138,15 @@
  else if (data.intoGlass2 == null) {
    adjustedRects2.value = []
  }
  // 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) {
  //       widtha = rect.height;
  //       heighta = rect.width;
  //     }else {
  //       widtha = rect.width;
  //       heighta = rect.height;
  //     }
  //     if (rect.angle === 0) {
  //   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);
  // }
  //       return {
  //       ...rect,
  //       xcoordinate: newX * scaleFactor,
  //       ycoordinate: rect.xCoordinate * 0.1,
  //       width: adjustedWidth,
  //       height: adjustedHeight,
  //       widtha: rect.width,
  //       heighta: rect.height,
  //     }
  //   });
  //   // 合并新旧矩形,保留 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)));
  // }
  // else {
  //   adjustedRects1.value = ''
  // }
  if (data.intoGlass && data.intoGlass.length > 0) {  
    // 提取新的矩形ID  
    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 =  794.67/5087; 
      const scaleFactorY =  430/2800;
      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
      let newX = rect.yCoordinate; 
      if (rect.width < rect.height) {
@@ -259,13 +158,13 @@
      }
      if (rect.angle === 0) {  
    adjustedWidth = widtha * scaleFactor;
    adjustedHeight = heighta * 0.1;
    adjustedHeight = heighta * scaleFactorY;
    // adjustedWidtha = widtha;  
    // adjustedHeighta = heighta;  
    newX = 5087 - (rect.yCoordinate + widtha); 
    } else {  
    adjustedWidth = heighta * scaleFactor;  
    adjustedHeight = widtha * 0.1;
    adjustedHeight = widtha * scaleFactorY;
    // adjustedWidtha = widtha;  
    // adjustedHeighta = heighta;  
    newX = 5087 - (rect.yCoordinate + heighta);  
@@ -273,14 +172,13 @@
        return {  
        ...rect, 
        xcoordinate: newX * scaleFactor,
        ycoordinate: rect.xCoordinate * 0.1,
        ycoordinate: rect.xCoordinate * scaleFactorY,
        width: adjustedWidth,  
        height: adjustedHeight,  
        widtha: rect.width, 
        heighta: rect.height,
      }
    });     
    // 合并新旧矩形,并保留 isActive 状态  
    adjustedRects1.value = existingRects.map(oldRect => {  
      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
@@ -293,69 +191,16 @@
  else if (data.overGlass == null) {
    adjustedRects1.value = []
  }
  // 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) {
  //       widtha = rect.height;
  //       heighta = rect.width;
  //     }else {
  //       widtha = rect.width;
  //       heighta = rect.height;
  //     }
  // if (rect.angle === 0) {
  //   adjustedWidth = widtha * scaleFactor;
  //   adjustedHeight = heighta * 0.16;
  //   // adjustedWidtha = widtha;
  //   // adjustedHeighta = heighta;
  //   newX = 5190 - (rect.yCoordinate + widtha);
  //   } else {
  //   adjustedWidth = heighta * scaleFactor;
  //   adjustedHeight = widtha * 0.16;
  //   // adjustedWidtha = widtha;
  //   // adjustedHeighta = heighta;
  //   newX = 5190 - (rect.yCoordinate + heighta);
  // }
  // return {
  //   ...rect,
  //   x: newX * scaleFactor,
  //   y: rect.xCoordinate * 0.16,
  //   width: adjustedWidth,
  //   height: adjustedHeight,
  //   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)));
  // }
  // else {
  //   adjustedRectsa.value = ''
  // }
  if (data.waitingGlass && data.waitingGlass.length > 0) {  
    // 提取新的矩形ID  
    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 =  1621.78/5190;
  let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
      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;
@@ -366,13 +211,13 @@
      }
  if (rect.angle === 0) {  
    adjustedWidth = widtha * scaleFactor;  
    adjustedHeight = heighta * 0.16;
    adjustedHeight = heighta * scaleFactorY;
    // adjustedWidtha = widtha;  
    // adjustedHeighta = heighta;  
    newX = 5190 - (rect.yCoordinate + widtha); 
    } else {  
    adjustedWidth = heighta * scaleFactor;  
    adjustedHeight = widtha * 0.16;
    adjustedHeight = widtha * scaleFactorY;
    // adjustedWidtha = widtha;  
    // adjustedHeighta = heighta;  
    newX = 5190 - (rect.yCoordinate + heighta);  
@@ -380,14 +225,13 @@
  return {  
    ...rect, 
    x: newX * scaleFactor,  
    y: rect.xCoordinate * 0.16,
    y: rect.xCoordinate * scaleFactorY,
    width: adjustedWidth,  
    height: adjustedHeight,  
    widtha: rect.width, 
    heighta: rect.height,
  }
    });
    });
    // 合并新旧矩形,并保留 isActive 状态  
    adjustedRectsa.value = existingRects.map(oldRect => {  
      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
@@ -403,14 +247,12 @@
  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 =  1621.78/5190;
      const scaleFactory =  550/2800;
      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) {
@@ -462,10 +304,31 @@
onMounted(() => {
  initializeWebSocket(socketUrl, handleMessage);
});
function updateRectColors() {
function updateRectColorsa() {
  adjustedRectsa.value.forEach(rect => {  
    if (rect.glassId === glassId) {  
      rect.state = 5;
      rect.state = 8;
    }
  });
}
function updateRectColorsb() {
  adjustedRectsb.value.forEach(rect => {
    if (rect.glassId === glassId) {
      rect.state = 8;
    }
  });
}
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;
    }
  });  
}  
@@ -477,7 +340,7 @@
      return '#95d475';
    case -1:  
      return '#CDAF95';  
    case 5:
    case 8:
      return '#911005';  
  }
}
@@ -487,7 +350,7 @@
      return '#eebe77';  
    case 4:  
      return '#CD6090';
    case 5:
    case 8:
      return '#911005';  
  }  
}
@@ -564,7 +427,7 @@
    if (response.code == 200) {
      ElMessage.success(response.message);
      blind1.value = false;
      updateRectColors();
      updateRectColors1();
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -587,7 +450,7 @@
    if (response.code == 200) {
      ElMessage.success(response.message);
      blind2.value = false;
      updateRectColors();
      updateRectColors2();
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -610,7 +473,7 @@
    if (response.code == 200) {
      ElMessage.success(response.message);
      blinda.value = false;
      updateRectColors();
      updateRectColorsa();
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -633,7 +496,7 @@
    if (response.code == 200) {
      ElMessage.success(response.message);
      blindb.value = false;
      updateRectColors();
      updateRectColorsb();
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -641,7 +504,7 @@
}
catch (error) {
    // 处理错误
    console.error(error);
    // console.error(error);
  }
}
onBeforeUnmount(() => {
@@ -657,11 +520,11 @@
    <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"
@@ -673,7 +536,7 @@
       left: `${rect.xcoordinate}px`,
        width: `${rect.width}px`, 
        height: `${rect.height}px`,
        backgroundColor: rect.isActive ? '#ADFF2F' : rect.state === 5 ? '#911005' : 'lightblue' }"
        backgroundColor: rect.isActive ? '#ADFF2F' : rect.state === 8 ? '#911005' : 'lightblue' }"
    >
     <div  class="centered-text">
    <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>  
@@ -685,11 +548,11 @@
   </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"
@@ -701,7 +564,7 @@
       left: `${rect.xcoordinate}px`, 
       width: `${rect.width}px`, 
       height: `${rect.height}px`,
       backgroundColor: rect.isActive ? '#ADFF2F' : rect.state === 5 ? '#911005' : 'lightblue' }"
       backgroundColor: rect.isActive ? '#ADFF2F' : rect.state === 8 ? '#911005' : 'lightblue' }"
       >
     <div  class="centered-text">
    <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>  
@@ -717,11 +580,11 @@
    </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"  
@@ -744,11 +607,11 @@
</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"