wangfei
2024-08-19 902f423642e0bd17806c9b3c8bcabf4d5787772a
钢化模块进炉中视图顺序更改,所有视图点击变色(部分)
3个文件已修改
190 ■■■■ 已修改文件
UI-Project/src/views/Identify/identify.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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) => {  
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>
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 用于添加那些在 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>