<template>
|
<el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
|
<el-scrollbar height="700px">
|
<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"
|
@click="handleBind"
|
: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>
|
<!-- 点击弹出 -->
|
<el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;">
|
<!-- <template #footer> -->
|
<!-- <div id="dialog-footer"> -->
|
<el-button type="warning" plain :icon="Delete" @click="handle" style="width: 120px;margin-left: 10px;">
|
破损
|
</el-button>
|
<el-button type="danger" plain @click="blind = false" style="width: 120px;margin-top: 10px;">
|
<el-icon class="el-icon--right"><Upload /></el-icon>
|
人工拿走</el-button>
|
<!-- </div> -->
|
<!-- </template> -->
|
</el-dialog>
|
</div>
|
</div>
|
</el-scrollbar>
|
</el-card>
|
</template>
|
|
<script setup lang="ts">
|
import { Delete, Upload } from '@element-plus/icons-vue'
|
import { ref, onMounted } from 'vue';
|
import request from "@/utils/request"
|
const blind = ref(false)
|
const olWidth = ref();
|
const olHeight = ref();
|
const process_id = ref(); // 用于存储process_id的响应式引用
|
// const rects = ref([]); // 用于存储矩形数据的响应式引用
|
const adjustedRects = ref([]);
|
const handleBind = (row) => {
|
|
blind.value = true; // 打开绑定架子对话框
|
};
|
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>
|