严智鑫
2024-05-07 b365a0879edc787655b908b0dbb65b5e966bb23b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<template>  
<!-- <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> -->
  <div id="app" style="margin-top: 20px;">  
    <div  
      :style="{ width: `${olWidth}px`, height: `${olHeight}px`,position: 'relative' }"  
    > 
    <div  
      v-for="(rect, index) in adjustedRects"  
      :key="index"  
      class="rect"  
      :style="{ position: 'absolute', top: `${rect.y_axis}px`, left: `${rect.x_axis}px`, width: `${rect.width}px`, height: `${rect.height}px` }"  
    >
     <!-- 箭头 -->  
     <div id="arrow"></div>  
     <div id="line"></div>  
     <!-- <div  class="centered-text" >NG24030401B01</div> -->
     <div  class="centered-text">
    <div>{{ rect.process_id }}</div>  
    <div style="margin-top: 50px;margin-left: -85px;">{{ rect.width }}*{{ rect.height }}</div>  
  </div>
  </div> 
   </div>
  </div>  
</template>  
  
<script setup>  
import { ref, onMounted } from 'vue';  
import request from "@/utils/request"
const olWidth = ref(); 
const olHeight = ref();
const process_id = ref(); // 用于存储process_id的响应式引用 
// const rects = ref([]); // 用于存储矩形数据的响应式引用  
const adjustedRects = ref([]);
onMounted(async () => {  
  try {  
    const response = await request.post('/cacheGlass/taskCache/currentCutTerritory'); // 替换为你的API端点  
    if (response.code === 200) {  
      // const process_id = response.data[0].process_id
      const rawRects = response.data; // 设置矩形数据  
      console.log(response.data);
      const { olWidth: newolWidth, olHeight: newolHeight, process_id: newprocess_id  } = response.data; // 获取尺寸  
      olWidth.value = newolWidth; // 设置容器宽度  
      olHeight.value = newolHeight; // 设置容器高度  
      process_id.value = newprocess_id;  
 
      adjustedRects.value = rawRects.map(rect => ({  
        ...rect, // 复制原始对象的其他属性  
        x_axis: (rect.x_axis*100) * 0.005, // 将x值除以3  
        y_axis: (rect.y_axis*100) * 0.005,
        width: (rect.width*100) * 0.004 ,
        height:( rect.height*100) * 0.004 ,
      }));  
        console.log(rect);
 
      //   console.log( (rect.width*100) / 300 );
    } else {  
      // console.error('Failed to fetch rectangles from API.');  
      console.error('Failed to fetch rects from API.'); 
    }  
  } catch (error) {  
    // console.error('Error fetching rectangles :', error);
    console.error('Error fetching rects :', error);  
  }  
});  
</script>  
  
<style scoped>  
.rect {  
  border: 1px solid black; /* 设置矩形的边框 */  
  background-color: lightblue; /* 设置矩形的背景色 */  
.centered-text {
  /* 设置文字居中样式 */  
  display: flex;  
  justify-content: center;  
  align-items: center;  
  height: 100%; /* 确保div占据整个矩形的高度 */  
#rect {  
  position: relative; /* 确保箭头可以相对于矩形定位 */  
  /* 其他样式 */  
}  
 
#arrow {  
  position: absolute;  
  top: 70%; /* 箭头位于矩形中间 */  
  left: 200px; /* 箭头在矩形左侧一些距离 */  
  transform: translateY(-50%); /* 垂直居中 */  
  width: 0;  
  height: 0;  
  border-top: 10px solid transparent; /* 上边框 */  
  border-bottom: 10px solid transparent; /* 下边框 */  
  border-right: 20px solid #911005; /* 右边框,形成箭头 */  
  /* 根据需要调整边框大小和颜色 */  
}  
  
#line {  
  position: absolute;  
  top: 70%; /* 直线位于矩形中间 */  
  left: 210px; /* 直线在箭头右侧一些距离 */  
  transform: translateY(-50%); /* 垂直居中 */  
  height: 2px; /* 直线的高度 */  
  width: 240px; /* 直线的长度,根据需要调整 */  
  background-color: #911005; /* 直线的颜色 */  
}  
</style>