zhoushihao
2025-03-03 bd21c609d3e0f325f10f20bb1f59ae24a4b35dc2
UI-Project/src/views/NewPage.vue
@@ -5,21 +5,22 @@
<el-input v-model="current" style="margin-left: 20px;margin-top: 15px;width: 240px" placeholder="请输入工程号" @input="updateUrl"/>
    <el-button style="margin-top: 15px;margin-left: 15px;"  type="primary" @click="fetchData">查询</el-button>  
  </div>  
  <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;margin-right: 10px;width: 1850px;" height="900" v-loading="loading">
  <el-card style="flex: 1;margin-left: 400px;margin-top: 50px;margin-right: 10px;width: 1100px;" height="900" v-loading="loading">
  <div v-for="(row, rowIndex) in divsData" :key="rowIndex" class="row">  
      <div v-for="(rect, colIndex) in row" :key="colIndex" class="div-container">  
  <el-scrollbar height="430px" width="900px" style="background-color: #e9e9eb;">
  <div  style="position: relative;width: 100%;height: 100%;">
    <div
    <div style="text-align: center;">炉号:{{ getAdjustedRectsForRow(rowIndex)[0].layout_id }}  ----   装载率:{{ getAdjustedRectsForRow(rowIndex)[0].olLayoutRate }}</div>
  <el-scrollbar height="550px" width="1000px" style="background-color: #e9e9eb;">
  <div  style="position: relative;width: 100%;height: 100%;">
    <div
      v-for="(rect, index) in getAdjustedRectsForRow(rowIndex)"
    :key="index"  
    class="rect"
    :style="{ position: 'absolute',
    :style="{ position: 'absolute',
     top: `${rect.y_axis}px`, 
     left: `${rect.x_axis}px`,
     width: `${rect.width}px`,  
       height: `${rect.height}px`,  
      backgroundColor:  '#911005'}">
      backgroundColor:  'lightblue'}">
   <div  class="centered-text">
  <div style="font-size: 15px;font-weight: bold;">{{ rect.process_id }}</div>  
  <div style="font-size: 15px;font-weight: bold;">{{ rect.project_no }}</div>  
@@ -33,7 +34,6 @@
 </el-card>
</div>
</template>  
   <script setup>  
   import { ref, onMounted, watch, watchEffect } from 'vue';  
   import { useRoute, useRouter } from 'vue-router';  
@@ -49,7 +49,6 @@
   onMounted(() => {  
     if (route.query.current) {  
       current.value = route.query.current;
       console.log(current.value);
       window.localStorage.setItem('current', current.value)
     }  
   });  
@@ -59,13 +58,10 @@
           const response = await request.post(`/cacheGlass/taskCache/temperingTerritory?current=${current}`);
         if (response.code === 200) {  
           rawData.value = response.data;
                 console.log(rawData.value);
                 processData(rawData.value);
         } else {
          //  ElMessage.warning(res.msg)
         } else {
         }  
       } catch (error) {
         // console.error('Error fetching rects :', error);
       } catch (error) {
       }  
     }); 
   watch(  
@@ -80,7 +76,8 @@
       const response = await request.post(`/cacheGlass/taskCache/temperingTerritory?current=${current.value}`);
       if (response.code === 200) {
          rawData.value = response.data;
          console.log(rawData.value);
          console.log(response.data);
          processData(rawData.value);
  }  
} catch (error) {  
@@ -91,32 +88,37 @@
};
   function processData(data) {  
const groupedData = [];  
for (let i = 0; i < data.length; i += 2) {
  groupedData.push(data.slice(i, i + 2));
for (let i = 0; i < data.length; i += 1) {
  groupedData.push(data.slice(i, i + 1));
}  
divsData.value = groupedData;
adjustedRectsPerRow.value = divsData.value.map(() => []);
divsData.value.forEach((row, rowIndex) => {
  const rawRowData = rawData.value[rowIndex];
  if (rawRowData) {
adjustedRectsPerRow.value[rowIndex] = rawRowData.map(rect => {
      let adjustedWidth, adjustedHeight,newX;
      if (rect.rotate_angle  === 0) {
       newX = rect.olHeight -(rect.y_axis + rect.height);
       adjustedWidth = rect.height * (900/rect.olHeight);
       adjustedHeight = rect.width * (430/rect.olWidth);
      } else {
        newX = rect.olHeight -(rect.y_axis + rect.width);
       adjustedWidth = rect.width * (900/rect.olHeight);
       adjustedHeight = rect.height * (430/rect.olWidth);
      }
      // 该页面为顺时针旋转90度
const rowIndex = divsData.value;
  adjustedRectsPerRow.value = divsData.value.map(() => []);
divsData.value.forEach((row, rowIndex) => {
  const rawRowData = rawData.value[rowIndex].listGlass;
  if (rawRowData) {
adjustedRectsPerRow.value[rowIndex] = rawRowData.map(rect => {
      let adjustedWidth, adjustedHeight,newX,widtha,heighta;
      if (rect.width < rect.height) {
        widtha = rect.height;
        heighta = rect.width;
      }else {
        widtha = rect.width;
        heighta = rect.height;
      }
      if (rect.rotate_angle  === 90) {
       newX = rect.olHeight -(rect.y_axis + heighta);
       adjustedWidth = heighta * (1000/rect.olHeight);
       adjustedHeight = widtha * (550/rect.olWidth);
      } else {
        newX = rect.olHeight -(rect.y_axis + widtha);
       adjustedWidth = widtha * (1000/rect.olHeight);
       adjustedHeight = heighta * (550/rect.olWidth);
  }
      let adjustedRect = {  
        ...rect,
        // x_axis: rect.y_axis * (959.35/rect.olHeight),
        y_axis: rect.x_axis * (430/rect.olWidth),
        x_axis: newX * (900/rect.olHeight),
        // y_axis: rect.x_axis * (430/rect.olWidth),
        y_axis: rect.x_axis * (550/rect.olWidth),
        x_axis: newX * (1000/rect.olHeight),
        width: adjustedWidth,  
        height: adjustedHeight,  
        widtha: rect.width,  
@@ -128,24 +130,21 @@
});  
}
// 方法用于获取当前行的adjustedRects  
function getAdjustedRectsForRow(rowIndex) {
function getAdjustedRectsForRow(rowIndex) {
return adjustedRectsPerRow.value[rowIndex] || [];  
}  
   </script>
</script>
<style scoped>  
.row {  
display: flex;  
justify-content: space-between;  
margin-bottom: 20px;
}
}
.div-container {  
width: 900px;
width: 1000px;
float: left;
background-color: #f4f4f5;
height: 430px;
height: 550px;
box-sizing: border-box;
}
}
</style>