From 91e4ba507f9806c975a4273154d79f1a43b836c4 Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期一, 29 四月 2024 13:42:29 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- UI-Project/src/views/Identify/identify.vue | 288 +++++++++++++++++++------------------------------------- 1 files changed, 99 insertions(+), 189 deletions(-) diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue index d8d5d79..e9ddd51 100644 --- a/UI-Project/src/views/Identify/identify.vue +++ b/UI-Project/src/views/Identify/identify.vue @@ -1,193 +1,103 @@ -<template> - <el-card style="margin-left: 10px; margin-top: 10px; margin-right: 10px;" v-loading="loading"> - <div style="display: flex;margin-bottom: 30px;"> - <div style="margin-left: 400px; font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div> - <div style="margin-left: 150px; font-size: 20px;">鐗堝浘缂栧彿锛�1</div> - </div> - <el-scrollbar height="650px"> - <div id="home-card"> - <div id="home-item" v-for="n in 20" :key="n"> - <svg width="100%" height="400" xmlns="http://www.w3.org/2000/svg" style="margin-top: -100px;margin-left: -80px;"> - <defs> - <marker id="arrow" markerUnits="strokeWidth" markerWidth="12" markerHeight="12" viewBox="0 0 12 12" refX="6" - refY="6" orient="auto"> - <path d="M2,2 L10,6 L2,10 L2,2" style="fill: #911005;" /> - </marker> - </defs> - <g v-for="(rack, index) in racks" :key="index"> - <rect - :x="rack.x" - :y="rack.y" - :width="rack.width" - :height="rack.height" - :fill="rack.fillColor" - :data-index="index" - class="rack-rect" - style="stroke:#c8c9cc;stroke-width:3;" - @click="showRectInfo(rack)" - /> - <line x1='510' y1='309' x2='260' y2='310' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'> - </line> - <text x="370" y="240" dominant-baseline="middle" text-anchor="middle">NG2024030501A-01</text> - <text x="370" y="260" dominant-baseline="middle" text-anchor="middle">500*300</text> - - <g v-for="(item, itemIndex) in rack.items" :key="itemIndex"> - <rect - :x="calculateItemXPosition(rack, item, itemIndex)" - :y="calculateItemYPosition(rack, item, itemIndex)" - :width="item.width" - :height="item.height" - :fill="item.fillColor" - /> - </g> - </g> - </svg> - </div> - </div> - </el-scrollbar> - </el-card> -</template> - -<script> -import Swal from 'sweetalert2' -import request from "@/utils/request"; - - -request.get("/TidyUpGlassModule/CurrentCutTerritory").then((res) => { - if (res.code == 200) { - console.log(res.data); - } else { - ElMessage.warning(res.msg) - router.push("/login") - } - }); - -export default { - data() { - return { - loading: false, - racks: [ - { - x: 70, y: 126, width: 600, height: 240, fillColor: '#93d2f3', - items: [ - { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456',y: '20'}, - { position: 'bottom-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' }, - { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG12345678' } - ] - }, - - // Add more racks and items here as needed - ], - }; - }, +<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 v-if="process_id" class="centered-text">{{ process_id }}</div> --> + </div> + </div> + </div> +</template> - methods: { - calculateItemXPosition(rack, item, index) { - if (item.position === 'top-right' || item.position === 'bottom-right') { - return Math.min(rack.x + rack.width - item.width, rack.x + rack.width); - } else { - return rack.x; - } - }, - - calculateItemYPosition(rack, item, index) { - if (item.position === 'bottom-left' || item.position === 'bottom-right') { - return Math.min(rack.y + rack.height - item.height, rack.y + rack.height); - } else { - return rack.y; - } - }, - - showCustomAlert(content) { - Swal.fire({ - // type: 'warning', // 寮规绫诲瀷 - title: '璇ョ墖鐜荤拑鐘舵��', //鏍囬 - // text: "娉ㄩ攢鍚庡皢鏃犳硶鎭㈠锛岃璋ㄦ厧鎿嶄綔锛�", //鏄剧ず鍐呭 +<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'); // 鏇挎崲涓轰綘鐨凙PI绔偣 + 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; - confirmButtonColor: '#3085d6',// 纭畾鎸夐挳鐨� 棰滆壊 - confirmButtonText: '浜哄伐鎷胯蛋',// 纭畾鎸夐挳鐨� 鏂囧瓧 - showCancelButton: true, // 鏄惁鏄剧ず鍙栨秷鎸夐挳 - cancelButtonColor: '#d33', // 鍙栨秷鎸夐挳鐨� 棰滆壊 - cancelButtonText: "鐮存崯", // 鍙栨秷鎸夐挳鐨� 鏂囧瓧 + adjustedRects.value = rawRects.map(rect => ({ + ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬� + x_axis: (rect.x_axis*100) * 0.005, // 灏唜鍊奸櫎浠�3 + y_axis: (rect.y_axis*100) * 0.005, + width: (rect.width*100) * 0.004 , + height:( rect.height*100) * 0.004 , + })); + console.log(rect); - // focusCancel: true, // 鏄惁鑱氱劍 鍙栨秷鎸夐挳 - reverseButtons: true // 鏄惁 鍙嶈浆 涓や釜鎸夐挳鐨勪綅缃� 榛樿鏄� 宸﹁竟 纭畾 鍙宠竟 鍙栨秷 -}).then((isConfirm) => { - try { - //鍒ゆ柇 鏄惁 鐐瑰嚮鐨� 纭畾鎸夐挳 - if (isConfirm.value) { - Swal.fire("浜哄伐鎷胯蛋", "鐐瑰嚮浜嗕汉宸ユ嬁璧�", "success"); - } - else { - Swal.fire("鐮存崯", "鐐瑰嚮浜嗙牬鎹�", "error"); - } - } catch (e) { - alert(e); - } -}); - }, - - showRectInfo(rectInfo) { - const contents = rectInfo.items.map(item => item.content).join(', '); - this.$nextTick(() => { - this.showCustomAlert(contents); - }); - }, - } -}; -</script> + // 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; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */ + /* 鍏朵粬鏍峰紡 */ +} -<style scoped> -.glass-rack { - width: 100%; - height: 80vh; -} -.rack-rect:hover { - cursor: pointer; -} -.custom-popover-class { - background-color: lightgrey; - color: black; - border: 1px solid black; -} - -#home-card { - width: 100%; - overflow: hidden; - padding: 10px 0px; - display: flex; - flex-wrap: wrap; - #home-item { - border-style: solid; - border-width: 1px; - border-color: #E4E4E4; - width: calc(34% - 20px); - padding: 20px 0px 20px 20px; - margin-right: 20px; - margin-bottom: 10px; - display: flex; - justify-content: center; - /* align-items: center; */ - background: #fff; - width: 700px; - #home-img { - display: inline-block; - width: 160px; - height: 60px; - margin: 0; - padding: 0; - } - #home-right { - display: flex; - flex-direction: column; - justify-content: center; - align-items: flex-start; - margin-left: 10px; - #home-num { - font-size: 40px; - margin: 5px 0; - } - } - } - } -</style> +#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> \ No newline at end of file -- Gitblit v1.8.0