From f992cde6426406bc07d35f20b19cbb1ea4d2134b Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期五, 14 二月 2025 16:33:46 +0800
Subject: [PATCH] 卧式缓存时间默认向前推一天,中空一线文字更改,删除下片台模块,更新理片笼图片,解决上片模块预览时推送数据问题,解决清空时间查询报错问题
---
UI-Project/src/assets/screen2.png | 0
UI-Project/config.js | 6
UI-Project/src/views/GlassStorage/rawfilmstorage.vue | 8
UI-Project/src/views/Caching/cachingbefore.vue | 10 +
UI-Project/src/utils/constants.js | 3
UI-Project/src/views/hollow/hollowequipment.vue | 16 +-
UI-Project/src/assets/xiaoche.png | 0
UI-Project/src/assets/zhongkong.png | 0
UI-Project/src/views/Caching/cachingun.vue | 10 +
UI-Project/src/views/Returns/upreturns.vue | 8 -
UI-Project/src/views/Slicecage/slicecage.vue | 10
/dev/null | 209 ----------------------------------
UI-Project/src/views/hollow/hollowslicecage.vue | 14 +-
UI-Project/src/views/Returns/upreturns2.vue | 4
UI-Project/src/assets/ganghuaqian.png | 0
UI-Project/src/router/index.js | 28 ----
16 files changed, 48 insertions(+), 278 deletions(-)
diff --git a/UI-Project/config.js b/UI-Project/config.js
index b0fb835..6213ebc 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,11 +1,13 @@
export default {
// serverUrl: "10.153.19.150:88/api",
// serverUrl: "192.168.2.100:88/api",
- serverUrl: "127.0.0.1:88",
+ serverUrl: "10.153.19.162:88",
+ // serverUrl: "127.0.0.1:88",
// serverUrl: "192.168.0.39:88",
// serverUrl2: "10.153.19.150:88"
// serverUrl2: "192.168.2.100:88"
- serverUrl2: "127.0.0.1:88"
+ serverUrl2: "10.153.19.162:88"
+ // serverUrl2: "127.0.0.1:88"
// serverUrl2: "192.168.0.39:88"
//serverUrl:"res.abeim.cn"
}
\ No newline at end of file
diff --git a/UI-Project/src/assets/ganghuaqian.png b/UI-Project/src/assets/ganghuaqian.png
new file mode 100644
index 0000000..885bccb
--- /dev/null
+++ b/UI-Project/src/assets/ganghuaqian.png
Binary files differ
diff --git a/UI-Project/src/assets/screen2.png b/UI-Project/src/assets/screen2.png
new file mode 100644
index 0000000..1e9dd42
--- /dev/null
+++ b/UI-Project/src/assets/screen2.png
Binary files differ
diff --git a/UI-Project/src/assets/xiaoche.png b/UI-Project/src/assets/xiaoche.png
new file mode 100644
index 0000000..f1fdf46
--- /dev/null
+++ b/UI-Project/src/assets/xiaoche.png
Binary files differ
diff --git a/UI-Project/src/assets/zhongkong.png b/UI-Project/src/assets/zhongkong.png
new file mode 100644
index 0000000..189844b
--- /dev/null
+++ b/UI-Project/src/assets/zhongkong.png
Binary files differ
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index cf10802..fdf4514 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -152,34 +152,6 @@
},
]
},
- /*----------- 涓嬬墖鍙� ----------------*/
- {
- path: 'UnLoadGlass',
- name: 'UnLoadGlass',
- component: () => import('../views/UnLoadGlass/UnLoadGlass.vue'),
- children:[
- {
- path: '/UnLoadGlass/loadmachinerack',
- name: 'loadmachinerack',
- component: () => import('../views/UnLoadGlass/loadmachinerack.vue')
- },
- {
- path: '/UnLoadGlass/loadmachineracktwo',
- name: 'loadmachineracktwo',
- component: () => import('../views/UnLoadGlass/loadmachineracktwo.vue')
- },
- {
- path: '/UnLoadGlass/Landingindication',
- name: 'Landingindication',
- component: () => import('../views/UnLoadGlass/Landingindication.vue')
- },
- {
- path: '/UnLoadGlass/Landingindicationtwo',
- name: 'Landingindicationtwo',
- component: () => import('../views/UnLoadGlass/Landingindicationtwo.vue')
- }
- ]
- },
/*----------- 浠撳偍涓績 ----------------*/
{
path: 'GlassStorage',
diff --git a/UI-Project/src/utils/constants.js b/UI-Project/src/utils/constants.js
index 2cc5dd8..2d3af7d 100644
--- a/UI-Project/src/utils/constants.js
+++ b/UI-Project/src/utils/constants.js
@@ -2,5 +2,6 @@
// export const WebSocketHost = "192.168.0.39";
// export const WebSocketHost = "10.153.19.150";
// export const WebSocketHost = "192.168.2.100";
-export const WebSocketHost = "127.0.0.1";
+export const WebSocketHost = "10.153.19.162";
+// export const WebSocketHost = "127.0.0.1";
export const host = "88";
\ No newline at end of file
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index 5e0d0f1..3a69e5c 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -2,6 +2,7 @@
import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive} from "vue";
import {useRouter} from "vue-router"
import {host, WebSocketHost} from '@/utils/constants'
+import dayjs from 'dayjs';
import request from "@/utils/request"
import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
import {ElMessage, ElMessageBox} from 'element-plus'
@@ -37,9 +38,12 @@
// id: rect.id * 10,
// }));
};
-// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
socket = initializeWebSocket(socketUrl, handleMessage);
+ const endTime = dayjs().startOf('minute'); // 褰撳墠鏃堕棿锛岀簿纭埌鍒嗛挓
+ const startTime = endTime.subtract(1, 'day').startOf('minute'); // 褰撳墠鏃堕棿鐨勫墠涓�澶╋紝绮剧‘鍒板垎閽�
+ // 璁剧疆鏃堕棿鑼冨洿涓� [寮�濮嬫椂闂�, 缁撴潫鏃堕棿]
+ timeRange.value = [startTime.format('YYYY-MM-DD HH:mm:ss'), endTime.format('YYYY-MM-DD HH:mm:ss')];
});
// 鍘嗗彶浠诲姟
const handlehistorical = (row) => {
@@ -66,8 +70,8 @@
try {
const params = {
deviceId: 1,
- startTime: timeRange.value[0] || '',
- endTime: timeRange.value[1] || '',
+ startTime: (timeRange.value && timeRange.value[0]) || '',
+ endTime: (timeRange.value && timeRange.value[1]) || '',
glassId: glassId.value || '',
taskState: taskStat.value,
taskType: taskType.value || ''
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index 8b0cd7e..b83b1af 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -2,6 +2,7 @@
import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive} from "vue";
import {useRouter} from "vue-router"
import {host, WebSocketHost} from '@/utils/constants'
+import dayjs from 'dayjs';
import request from "@/utils/request"
import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
import {ElMessage, ElMessageBox} from 'element-plus'
@@ -36,9 +37,12 @@
// id: rect.id * 10,
// }));
};
-// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
socket = initializeWebSocket(socketUrl, handleMessage);
+ const endTime = dayjs().startOf('minute'); // 褰撳墠鏃堕棿锛岀簿纭埌鍒嗛挓
+ const startTime = endTime.subtract(1, 'day').startOf('minute'); // 褰撳墠鏃堕棿鐨勫墠涓�澶╋紝绮剧‘鍒板垎閽�
+ // 璁剧疆鏃堕棿鑼冨洿涓� [寮�濮嬫椂闂�, 缁撴潫鏃堕棿]
+ timeRange.value = [startTime.format('YYYY-MM-DD HH:mm:ss'), endTime.format('YYYY-MM-DD HH:mm:ss')];
});
// 鍘嗗彶浠诲姟
const handlehistorical = (row) => {
@@ -65,8 +69,8 @@
try {
const params = {
deviceId: 2,
- startTime: timeRange.value[0] || '',
- endTime: timeRange.value[1] || '',
+ startTime: (timeRange.value && timeRange.value[0]) || '',
+ endTime: (timeRange.value && timeRange.value[1]) || '',
glassId: glassId.value || '',
taskState: taskState.value,
taskType: taskType.value || ''
diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
index 6bd3ca1..5c76637 100644
--- a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -101,7 +101,7 @@
}
);
if (confirmResult === 'confirm') {
- var url="/glassStorage/rawGlassStorageDetails/deleteWarehousing?slotId="+row.slotId;
+ var url="/glassStorage/rawGlassStorageDetails/deleteWarehousing?slot="+row.slot;
const response = await request.post(url)
// const response = await request.post("/glassStorage/rawGlassStorageDetails/deleteWarehousing",[row.slotId])
if (response.code === 200) {
@@ -192,7 +192,7 @@
}
);
if (confirmResult === 'confirm') {
- var url="/glassStorage/rawGlassStorageDetails/outWarehousing?slotId="+row.slotId;
+ var url="/glassStorage/rawGlassStorageDetails/outWarehousing?slotId="+row.slot;
const response = await request.post(url)
// const response = await request.post("/glassStorage/rawGlassStorageDetails/outWarehousing",[row.slotId])
if (response.code === 200) {
@@ -220,8 +220,8 @@
}
}
const response = await request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", {
- beginDate: timeRange.value[0],
- endDate: timeRange.value[1],
+ beginDate: (timeRange.value && timeRange.value[0]) || '',
+ endDate: (timeRange.value && timeRange.value[1]) || '',
taskState: stateList,
taskType: celllist
})
diff --git a/UI-Project/src/views/Returns/upreturns.vue b/UI-Project/src/views/Returns/upreturns.vue
index f92f0fb..7974878 100644
--- a/UI-Project/src/views/Returns/upreturns.vue
+++ b/UI-Project/src/views/Returns/upreturns.vue
@@ -119,7 +119,7 @@
window.localStorage.setItem('filmRemove', filmRemove.value)
if (response.code == 200) {
ElMessage.success(response.message);
- // closeWebSocket(socket);
+ closeWebSocket(socket);
tableData.value = response.data;
dialogFormVisible.value = false;
selectedProjectNo.value = '';
@@ -181,7 +181,7 @@
canSelectProjecta.value = false;
canSelectProjectb.value = false;
canSelectProjectc.value = true;
- // socket = initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
blind.value = false;
} else {
ElMessage.error(response.message);
@@ -384,10 +384,6 @@
</el-button>
<div style="margin-left: 70px;">{{ upstatus }}</div>
<i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
- <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;">{{
- $t('basicData.change')
- }}
- </el-button>
</div>
<el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;" type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
<el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
diff --git a/UI-Project/src/views/Returns/upreturns2.vue b/UI-Project/src/views/Returns/upreturns2.vue
index c75bc53..cc5ced8 100644
--- a/UI-Project/src/views/Returns/upreturns2.vue
+++ b/UI-Project/src/views/Returns/upreturns2.vue
@@ -119,7 +119,7 @@
window.localStorage.setItem('filmRemove', filmRemove.value)
if (response.code == 200) {
ElMessage.success(response.message);
- // closeWebSocket(socket);
+ closeWebSocket(socket);
tableData.value = response.data;
dialogFormVisible.value = false;
selectedProjectNo.value = '';
@@ -181,7 +181,7 @@
canSelectProjecta.value = false;
canSelectProjectb.value = false;
canSelectProjectc.value = true;
- // socket = initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
blind.value = false;
} else {
ElMessage.error(response.message);
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 6dcef31..f07969e 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -1007,7 +1007,7 @@
</div>
<!-- // 鐖剁骇妗� -->
<div class="img-dlpl" >
- <div class="img-car1" :style="'z-index:999;left:270px;top:' + 350*carPosition[0] + 'px;position:absolute;'">
+ <div class="img-car1" :style="'z-index:999;left:375px;top:' + 350*carPosition[0] + 'px;position:absolute;'">
<div
v-for="(rect, index) in adjusta"
:key="rect.id"
@@ -1021,7 +1021,7 @@
>
</div>
</div>
- <div class="img-car4" :style="'z-index:999;left:740px;top:' + 350*carPosition[1] + 'px;position:absolute;'">
+ <div class="img-car4" :style="'z-index:999;left:770px;top:' + 350*carPosition[1] + 'px;position:absolute;'">
<div
v-for="(rect, index) in adjust"
:key="rect.id"
@@ -1853,7 +1853,7 @@
.img-dlpl{
margin-left: 20px;
margin-top: 0px;
- background-image:url('../../assets/dlpl9.png');
+ background-image:url('../../assets/ganghuaqian.png');
background-repeat: no-repeat;
background-attachment: local;
min-height: 400px;
@@ -1865,7 +1865,7 @@
}
.img-car1{
display: flex;
- background-image:url('../../assets/lp9.png');
+ background-image:url('../../assets/xiaoche.png');
position: absolute;
background-repeat: no-repeat;
background-attachment: local;
@@ -1878,7 +1878,7 @@
}
.img-car4{
display: flex;
- background-image:url('../../assets/lpa9.png');
+ background-image:url('../../assets/xiaoche.png');
position: absolute;
background-repeat: no-repeat;
background-attachment: local;
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
deleted file mode 100644
index 2d83c1a..0000000
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ /dev/null
@@ -1,187 +0,0 @@
-<template>
- <div class="glass-rack">
- <div >
- <svg width="500" height="370" xmlns="http://www.w3.org/2000/svg">
- <g stroke="null" id="Layer_1">
- <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
- <g v-for="(rack, index) in racks" :key="index" :data="tableData">
- <rect
- :x="rack.x"
- :y="rack.y"
- :width="rack.width"
- :height="rack.height"
- :fill="rack.fillColor"
- :data-index="index"
- class="rack-rect"
- @click="showRectInfo(rack)"
- />
- <rect
- :x="calculateItemXPosition(rack, rack.item, index)"
- :y="calculateItemYPosition(rack, rack.item, index)"
- :width="rack.item.width"
- :height="rack.item.height"
- :fill="rack.item.fillColor"
- />
- <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 1 }}{{ $t('reportWork.workstation') }}</text>
- <text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
- </g>
- </g>
- </svg>
- </div>
- </div>
-</template>
-<script setup>
-import { ref, watchEffect ,onMounted,onUnmounted} from 'vue';
-import { useI18n } from 'vue-i18n'
-const { t } = useI18n()
-let language = ref(localStorage.getItem('lang') || 'zh')
-import Swal from 'sweetalert2'
-import request from "@/utils/request";
-import { initializeWebSocket,closeWebSocket } from '@/utils/WebSocketService';
- import { WebSocketHost } from '@/utils/constants';
-const racks = ref([
- { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456',downGlassInfoList:"" } },
-
- { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' ,downGlassInfoList:""} },
-
- { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678',downGlassInfoList:"" } },
-
-]);
-watchEffect(() => {
- // 瑙﹀彂鏁版嵁鍙樺寲鏃堕噸鏂版覆鏌�
-});
-const calculateItemXPosition = (rack, item, index) => {
- if (index === 0 ) {
- return rack.x;
- } else if (index === 1 ) {
- return rack.x + (rack.width - item.width) / 2;
- } else {
- return rack.x + rack.width - item.width;
- }
-};
-const calculateItemYPosition = (rack, item, index) => {
- if (index === 0 ) {
- return rack.y + (rack.height - item.height) / 2;
- } else if (index === 1) {
- return rack.y + rack.height - item.height;
- } else {
- return rack.y + (rack.height - item.height) / 2;
- }
-};
-const fetchFlowCardId = async () => {
- try {
- const response = await request.get('unLoadGlass/downWorkStation/getwo');
- if (response.code === 200) {
- console.log(response);
- // 閬嶅巻鍝嶅簲鏁版嵁骞舵浛鎹acks鏁扮粍涓殑item灞炴��
- response.data.forEach((itemData, index) => {
- if (index < racks.value.length) {
- const rack = racks.value[index];
- rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
- const newItem = {
- content: itemData.item.content,
- fillColor: itemData.item.fillColor,
- width: itemData.item.width === 0 ? "" : 10,
- height: itemData.item.height === 0 ? "" : 90,
- downGlassInfoList:itemData.item.downGlassInfoList
- };
- if (index === 1 && itemData.item.width > 0) {
- newItem.width = 100;
- newItem.height = 20;
- }
- rack.item = newItem;
- console.log(racks.value); // 鎵撳嵃鏇存柊鍚庣殑 racks 鍊�
- }
-});
- } else {
- ElMessage.error(response.msg);
- }
- } catch (error) {
- console.error(error);
- }
-};
-let socket = null;
-const socketUrl = `ws://${WebSocketHost}:8085/api/talk/unloadglass2`;
-const handleMessage = (data) => {
- data.glassinfo[0].forEach((itemData, index) => {
- if (index < racks.value.length) {
- const rack = racks.value[index];
- rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
- const newItem = {
- content: itemData.item.content,
- fillColor: itemData.item.fillColor,
- width: itemData.item.width === 0 ? "" : 10,
- height: itemData.item.height === 0 ? "" : 90,
- downGlassInfoList:itemData.item.downGlassInfoList
- };
- if (index === 1 && itemData.item.width > 0) {
- newItem.width = 100;
- newItem.height = 20;
- }
- rack.item = newItem;
- }
-});
-};
-onMounted(() => {
- fetchFlowCardId();
- socket = initializeWebSocket(socketUrl, handleMessage);
-});
- onUnmounted(() => {
- if (socket) {
- closeWebSocket(socket);
- }
- });
-const showCustomAlert = (downGlassInfoList) => {
- let tableContent = '<table border="1" style="border-collapse: collapse; width: 100%;">';
- tableContent += '<tr><th style="background-color: #f2f2f2;">鐜荤拑ID</th><th style="background-color: #f2f2f2;">鑶滅郴</th><th style="background-color: #f2f2f2;">鍘氬害</th><th style="background-color: #f2f2f2;">瀹藉害</th><th style="background-color: #f2f2f2;">楂樺害</th></tr>';
- downGlassInfoList.forEach(info => {
- tableContent += `<tr>
- <td>${info.glassId}</td>
- <td>${info.Filmsid}</td>
- <td>${info.thickness}</td>
- <td>${info.width}</td>
- <td>${info.height}</td>
- </tr>`;
- });
- tableContent += '</table>';
- Swal.fire({
- // title: '鐜荤拑淇℃伅',
- title: t('reportWork.glassinformation'),
- html: tableContent,
- customClass: {
- popup: 'format-pre'
- }
- });
-};
- const showRectInfo = (rack) => {
- const content = rack.item.content;
- console.log(rack.item.downGlassInfoList[0].flowCardId)
- console.log(content)
- if(content==rack.item.downGlassInfoList[0].flowCardId){
- const downGlassInfoList = rack.item.downGlassInfoList;
- console.log(downGlassInfoList)
- showCustomAlert(downGlassInfoList);
- }
- };
-</script>
-<style scoped>
-.glass-rack {
- /* margin-left: 10px; */
- width: 500px;
- margin-top: 5px;
-}
-.rack-rect:hover {
- cursor: pointer;
-}
-.custom-popover-class {
- background-color: lightgrey;
- color: black;
- border: 1px solid black;
-}
-.format-pre pre {
- background: #49483e;
- color: #f7f7f7;
- padding: 10px;
- font-size: 14px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
deleted file mode 100644
index cd6109c..0000000
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ /dev/null
@@ -1,188 +0,0 @@
-<template>
- <div class="glass-rack">
- <div >
- <svg width="500" height="370" xmlns="http://www.w3.org/2000/svg">
- <g stroke="null" id="Layer_1">
- <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
- <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"
- @click="showRectInfo(rack)"
- />
- <rect
- :x="calculateItemXPosition(rack, rack.item, index)"
- :y="calculateItemYPosition(rack, rack.item, index)"
- :width="rack.item.width"
- :height="rack.item.height"
- :fill="rack.item.fillColor"
- />
- <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 4 }}{{ $t('reportWork.workstation') }}</text>
- <text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
- </g>
- </g>
- </svg>
- </div>
- </div>
-</template>
-<script setup>
-import { ref, watchEffect ,onMounted,onUnmounted} from 'vue';
-import { useI18n } from 'vue-i18n'
- const { t } = useI18n()
- let language = ref(localStorage.getItem('lang') || 'zh')
-import Swal from 'sweetalert2'
-import request from "@/utils/request";
-import { initializeWebSocket,closeWebSocket } from '@/utils/WebSocketService';
-import { WebSocketHost ,host} from '@/utils/constants'
-const racks = ref([
- { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
-
- { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } },
-
- { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678' } },
-
-]);
-watchEffect(() => {
- // 瑙﹀彂鏁版嵁鍙樺寲鏃堕噸鏂版覆鏌�
-});
-// 璁$畻鍏冪礌浣嶇疆鐨勫嚱鏁�
-const calculateItemXPosition = (rack, item, index) => {
- if (index === 0) {
- return rack.x;
- } else if (index === 1) {
- return rack.x + (rack.width - item.width) / 2;
- } else {
- return rack.x + rack.width - item.width;
- }
-};
-const calculateItemYPosition = (rack, item, index) => {
- if (index === 0) {
- return rack.y + (rack.height - item.height) / 2;
- } else if (index === 1) {
- return rack.y + rack.height - item.height;
- } else {
- return rack.y + (rack.height - item.height) / 2;
- }
-};
-const fetchFlowCardId = async () => {
- try {
- const response = await request.get('unLoadGlass/downWorkStation/getwo2');
- if (response.code === 200) {
- console.log(response);
- // 閬嶅巻鍝嶅簲鏁版嵁骞舵浛鎹acks鏁扮粍涓殑item灞炴��
- response.data.forEach((itemData, index) => {
- if (index < racks.value.length) {
- const rack = racks.value[index];
- rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
- const newItem = {
- content: itemData.item.content,
- fillColor: itemData.item.fillColor,
- width: itemData.item.width === 0 ? "" : 10,
- height: itemData.item.height === 0 ? "" : 90
- };
- console.log(itemData.item.fullCardColor);
- if (index === 1 && itemData.item.width > 0) {
- newItem.width = 100;
- newItem.height = 20;
- }
- rack.item = newItem;
- console.log(racks.value);
- }
-});
- } else {
- ElMessage.error(response.msg);
- }
- } catch (error) {
- console.error(error);
- }
-};
-let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass3`;
-const handleMessage = (data) => {
- data.glassinfo2[0].forEach((itemData, index) => {
- if (index < racks.value.length) {
- const rack = racks.value[index];
- rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
- const newItem = {
- content: itemData.item.content,
- fillColor: itemData.item.fillColor,
- width: itemData.item.width === 0 ? "" : 10,
- height: itemData.item.height === 0 ? "" : 90,
- downGlassInfoList:itemData.item.downGlassInfoList
- };
- if (index === 1 && itemData.item.width > 0) {
- newItem.width = 100;
- newItem.height = 20;
- }
- rack.item = newItem;
- }
-});
-};
-onMounted(() => {
- fetchFlowCardId();
- socket = initializeWebSocket(socketUrl, handleMessage);
-});
- onUnmounted(() => {
- if (socket) {
- closeWebSocket(socket);
- }
- });
-const showCustomAlert = (downGlassInfoList) => {
- let tableContent = '<table border="1" style="border-collapse: collapse; width: 100%;">';
- tableContent += '<tr><th style="background-color: #f2f2f2;">鐜荤拑ID</th><th style="background-color: #f2f2f2;">鑶滅郴</th><th style="background-color: #f2f2f2;">鍘氬害</th><th style="background-color: #f2f2f2;">瀹藉害</th><th style="background-color: #f2f2f2;">楂樺害</th></tr>';
- downGlassInfoList.forEach(info => {
- tableContent += `<tr>
- <td>${info.glassId}</td>
- <td>${info.Filmsid}</td>
- <td>${info.thickness}</td>
- <td>${info.width}</td>
- <td>${info.height}</td>
- </tr>`;
- });
- tableContent += '</table>';
- Swal.fire({
- title: t('reportWork.glassinformation'),
- // title: '鐜荤拑淇℃伅',
- html: tableContent,
- customClass: {
- popup: 'format-pre'
- }
- });
-};
- const showRectInfo = (rack) => {
- const content = rack.item.content;
- console.log(rack.item.downGlassInfoList[0].flowCardId)
- console.log(content)
- if(content==rack.item.downGlassInfoList[0].flowCardId){
- const downGlassInfoList = rack.item.downGlassInfoList;
- console.log(downGlassInfoList)
- showCustomAlert(downGlassInfoList);
- }
- };
-</script>
-<style scoped>
-.glass-rack {
- /* margin-left: 20px; */
- width: 500px;
- margin-top: 5px;
-}
-.rack-rect:hover {
- cursor: pointer;
-}
-.custom-popover-class {
- background-color: lightgrey;
- color: black;
- border: 1px solid black;
-}
-.format-pre pre {
- background: #49483e;
- color: #f7f7f7;
- padding: 10px;
- font-size: 14px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/PrintCustomLabelSemi1.vue b/UI-Project/src/views/UnLoadGlass/PrintCustomLabelSemi1.vue
deleted file mode 100644
index 6f42cef..0000000
--- a/UI-Project/src/views/UnLoadGlass/PrintCustomLabelSemi1.vue
+++ /dev/null
@@ -1,195 +0,0 @@
-<script setup>
-import request from "@/utils/request"
-import {ElMessage} from "element-plus"
-import {onMounted, ref} from "vue"
-// import {useRouter} from 'vue-router'
-// import {changeFilterEvent, filterChanged} from "@/hook"
-// import {useI18n} from 'vue-i18n'
-// import deepClone from "@/utils/deepClone";
-import companyInfo from "@/lang/companyInfo"
-const company = companyInfo()
-//璇█鑾峰彇
-const {t} = useI18n()
-// let router = useRouter()
-let produceList = ref([])
-let labelList = ref([])
-let titleList = ref([])
-let dataList = ref([])
-let list = ref([])
-let lastList=ref([])
-let filterData = ref({})
-const data = ref({
- printList: []
-})
-// const {currentRoute} = useRouter()
-// const route = currentRoute.value
-// data.value.printList = JSON.parse(route.query.printList)
-// const type = route.query.type
-// const faceOrientation = route.query.faceOrientation
-// const lableType = route.query.lableType
-let props = defineProps({
- printFlowCardId: null,
- printLayer: null,
- printGlassId: null,
-})
-onMounted(async () => {
- const response = await request.post('/unLoadGlass/downGlassInfo/downGlassLabelPrint', {
- flowCardId: props.printFlowCardId,
- layer: props.printLayer,
- glassId: props.printGlassId
- });
- if (response.code == 200) {
- console.log("lastList.value",response.data)
- lastList.value=response.data;
- } else {
- ElMessage.error(response.message);
- }
- }
-)
-// // 鎵撳嵃鏂规硶
-// const printFlowCard = () => {
-// // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
-// let el = document.getElementById("printFlowCard");
-// let doc = document;
-// let body = doc.body || doc.getElementsByTagName("body")[0];
-// let printId = "print-" + Date.now();
-// // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
-// let content = doc.createElement("div");
-// content.id = printId;
-// // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
-// let style = doc.createElement("style");
-// style.innerHTML =
-// "body>#" +
-// printId +
-// "{display:none}@media print{" +
-// "@page {" +
-// " size: auto; " +
-// " margin: 2mm 2mm 2mm 2mm; " +
-// " }body>:not(#" +
-// printId +
-// "){display:none !important}body>#" +
-// printId +
-// "{display:block;padding-top:1px}}";
-// //
-// content.innerHTML = el.outerHTML;
-// // // console.log("el.outerHTML", el.outerHTML);
-// body.appendChild(style);
-
-// // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
-// // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
-// body.appendChild(content);
-// setTimeout(() => {
-// window.print();
-// body.removeChild(content);
-// body.removeChild(style);
-// }, 20);
-// }
-</script>
-<template>
- <!-- <el-button id="printButton" @click="printFlowCard();">鎵撳嵃</el-button> -->
- <div id="printFlowCard" >
- <template v-for="(item,index) in lastList">
- <div id="entirety" >
- <div class="row1">
- <div style="position: absolute;font-weight: bold;margin-left: 5px;" v-if="item.tempering_layout_id!=null">{{ item.tempering_layout_id }}/{{ item.tempering_feed_sequence }}</div>
- <span>{{ item.customer_name }}</span>
- <span>{{ item.order_id }}</span>
- <span v-if="item.process.includes('澶硅兌')">鑳剁墖</span>
- <span v-else-if="item.process.includes('涓┖')">涓┖</span>
-<span v-else-if="item.process.includes('鐧惧彾')">鐧惧彾</span>
-<span v-else></span>
- <div style="position: absolute;font-weight: bold;margin-left: 210px;margin-top: -26px;" >{{ index+1 }}</div>
- </div>
- <div class="row2">
- <span>{{ item.project }}</span>
- <span>{{ item.building_number }}</span>
- </div>
- <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div>
- <div class="row3" v-else>{{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}</div>
- <div class="row5">
- <span>{{item.glass_child }}</span>
- <span>{{ item.processing_note }}</span>
- </div>
- </div>
- <div style="width: 20px" v-if="index%2===0"></div>
- <div class="print-page" v-else></div>
- </template>
- </div>
-</template>
-<style scoped>
-* {
- margin: 0;
- padding: 0;
-}
-#printButton {
- /*margin-top: -20px;*/
- width: 100px;
-}
-#printFlowCard {
- display: flex;
- justify-content: left;
- flex-wrap: wrap;
- width: 500px;
-}
-#entirety{
- text-align: center;
- width: 46%;
- height: 170px;
- border: black 1px;
- word-wrap: break-word;
- margin-left: 10px;
-}
-.row1 {
- font-size: 12pt;
- font-weight: bold;
- height: 35px;
-}
-.row1 span {
- font-size: 12pt;
-}
-.row2 {
- font-size: 14pt;
- font-weight: bold;
- height: 35px;
-}
-.row2 span {
- font-size: 12pt;
-}
-span {
- font-size: 12pt;
- font-weight: bold;
-}
-.row3 {
- margin-top: -5px;
- height: 35px;
- font-size: 22pt;
- font-weight: bolder;
- line-height: 35px;
-}
-.row5 {
- height: 50px;
- font-weight: bold;
- font-size: 12pt;
- /* margin-left: 20px; */
-}
-.row5 span {
- font-size: 12pt;
-}
-.row6 {
- height: 15px;
- font-weight: bold;
- font-size: 8pt;
-}
-@media print {
- .print-page {
- page-break-after: always; /* 娣诲姞鍒嗛〉绗︼紝鍦ㄦ瘡涓猵rint-page div涔嬪悗鍒嗛〉 */
- }
- div {
- page-break-inside: avoid;
- }
- @page {
- size: auto; /* auto is the initial value */
- margin: 2mm 2mm 2mm 2mm; /* this affects the margin in the printer settings */
- }
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
deleted file mode 100644
index 94f7c26..0000000
--- a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
+++ /dev/null
@@ -1,386 +0,0 @@
-<script setup>
-import { useI18n } from 'vue-i18n'
- const { t } = useI18n()
- let language = ref(localStorage.getItem('lang') || 'zh')
-import {Search} from "@element-plus/icons-vue";
-import {useRouter} from "vue-router"
-const router = useRouter()
-import request from "@/utils/request"
-import { WebSocketHost ,host} from '@/utils/constants'
-import { ref, onMounted , onBeforeUnmount, reactive, computed,onUnmounted } from "vue";
-import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { ElMessage, ElMessageBox } from 'element-plus'
-import companyInfo from "@/lang/companyInfo";
-import QRCode from "qrcode";
-const company = companyInfo()
-const printMerge = null
-let props = defineProps({
- printFlowCardId: null,
- printLayer: null,
-})
-let produceList = ref([])
-const handleGetQRCode = async () => {
- for (let i = 0; i < produceList.value.length; i++) {
- const technologyNumber = produceList.value[i].detail[0].technologyNumber.toString(); // 杞崲涓哄瓧绗︿覆浠ヤ究澶勭悊姣忎釜瀛楃
- produceList.value[i].detail[0]["qrcodeList"] = []; // 鍒濆鍖栦竴涓┖鏁扮粍鐢ㄦ潵瀛樺偍 QR Code
- for (let j = 0; j < technologyNumber.length; j++) {
- const processId = produceList.value[i].detail[0].process_id;
- const url = `${processId}/${technologyNumber[j]}`;
- // 鐢熸垚 QR Code 骞跺瓨鍌ㄥ埌鏁扮粍涓�
- const qrcodeData = await QRCode.toDataURL(url);
- produceList.value[i].detail[0]["qrcodeList"].push({
- qrcode: qrcodeData,
- technologyNumber: technologyNumber[j]
- });
- }
- }
-};
-//鏍规嵁杈撳叆鐨勬暟閲忛噸鏂版眹鎬�
-const handleSummary = () => {
- for (let i = 0; i < produceList.value.length; i++) {
- //鏁伴噺
- let totalQuantity = 0;
- //钀芥灦鏁伴噺
- let totalQuantity1 = 0;
- //闈㈢Н
- let totalArea = 0;
- //钀芥灦闈㈢Н
- let totalArea1 = 0;
- //閲嶉噺
- let totalWeight = 0;
- //钀芥灦閲嶉噺
- let totalWeight1 = 0;
- // 瀵规瘡涓泦鍚堜腑鐨� detailList 杩涜璁$畻
- produceList.value[i].detailList.forEach(collection => {
- totalQuantity += collection.quantity * 1;
- totalQuantity1 += collection.quantity1 * 1;
- //姣忎釜搴忓彿闈㈢Н
- collection.total_area = parseFloat((collection.width * collection.height * collection.quantity / 1000000).toFixed(2))
- totalArea += collection.total_area * 1;
- collection.total_area1 = parseFloat((collection.width * collection.height * collection.quantity1 / 1000000).toFixed(2))
- totalArea1 += collection.total_area1 * 1;
- totalWeight += collection.width * collection.height * collection.quantity / 1000000 * collection.separation * 2.5 * 1;
- totalWeight1 += collection.width * collection.height * collection.quantity1 / 1000000 * collection.separation * 2.5 * 1;
- //姣忎釜搴忓彿鍛ㄩ暱
- collection.perimeter = parseFloat(((collection.width * 2 + collection.height * 2) * collection.quantity / 1000).toFixed(3))
- });
- // 杈撳嚭姣忎釜闆嗗悎涓殑鎬绘暟閲�
- produceList.value[i].detail[0].quantity = totalQuantity
- produceList.value[i].detail[0].quantity1 = totalQuantity1
- produceList.value[i].detail[0].gross_area = totalArea
- produceList.value[i].detail[0].gross_area1 = totalArea1
- produceList.value[i].detail[0].weight = totalWeight
- produceList.value[i].detail[0].weight1 = totalWeight1
- }
-}
-onMounted(async () => {
- console.log(props.printFlowCardId,props.printLayer)
- try {
- const response = await request.post('/unLoadGlass/downGlassInfo/downGlassPrint',{
- flowCardId:props.printFlowCardId,
- layer:props.printLayer
- });
- if (response.code == 200) {
- // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
- produceList.value = response.data;
- ElMessage.success(response.message);
- for (let j = 0; j < produceList.value.length; j++) {
- let sumWeight = 0
- produceList.value[j].detailList.forEach((item, index) => {
- // 瑙f瀽 separation 瀛楁鐨� JSON 瀛楃涓�
- let separationObj = JSON.parse(item.separation);
- // 鑾峰彇 thickness 鐨勫師濮嬪��
- let thicknessValue = separationObj.thickness;
- // 鍘婚櫎 'mm' 鍗曚綅
- let thicknessWithoutUnit = thicknessValue.replace('mm', '');
- item.separation = thicknessWithoutUnit
- sumWeight += item.width * item.height * item.quantity / 1000000 * item.separation * 2.5 * 1;
- });
- produceList.value[j].detail[0].weight = sumWeight
- }
- handleGetQRCode()
- handleSummary()
- // printFlowCard();
- } else {
- // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
- ElMessage.error(response.message);
- }
- } catch (error) {
- // 澶勭悊閿欒
- console.error(error);
- }
-});
-</script>
-<template>
- <div id="printFlowCard">
- <table v-for="(item,id) in produceList" id="contentTable" :key="id">
- <thead>
- <tr v-for="(itemFlow,index) in item.detail" :key="index">
- <td colspan="29">
- <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px "/></div>
- <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
- <div>{{ company.companyName }}</div>
- <div>鐢熶骇娴佺▼鍗�</div>
- <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">
- {{itemFlow.otherRemarks}}
- 娴佺▼鍗″彿锛� {{
- itemFlow.process_id
- }}/{{ itemFlow.technologyNumberMerge }} 鍏� {{ flowCardCount }} 鏋�
- </div>
- <div v-else style="text-align: right;font-weight: bolder">
- {{itemFlow.otherRemarks}}
- 娴佺▼鍗″彿锛� {{
- itemFlow.process_id
- }}/{{ itemFlow.technologyNumber }} 鍏� {{ flowCardCount }} 鏋�
- </div>
- </td>
- </tr>
- <tr v-for="(items,index) in item.detail" :key="index">
- <td class="tdNowrap">瀹㈡埛鍚嶇О锛�</td>
- <td colspan="2">{{ items.customer_name }}</td>
- <td class="tdNowrap">椤圭洰鍚嶇О锛�</td>
- <td colspan="2">{{ items.project }}</td>
- <td class="tdNowrap">宸ヨ壓娴佺▼锛�</td>
- <td colspan="22" style="width: 500px">{{ items.process }}</td>
- </tr>
- <tr v-for="(itemTr,index) in item.detail" :key="index">
- <td class="tdNowrap">纾ㄨ竟绫诲瀷锛�</td>
- <td colspan="2">{{ itemTr.edging_type }}</td>
- <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
- <td colspan="2">{{ itemTr.glass_child }}</td>
- <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
- <td colspan="22">{{ itemTr.product_name }}</td>
- </tr>
- <tr>
- <td rowspan='2'>搴忓彿</td>
- <!-- <td rowspan='2'>缂栧彿</td> -->
- <td rowspan="2">灏忕墖椤哄簭</td>
- <td rowspan='2' style="width: 90px">瀹�*楂�</td>
- <td rowspan='2'>鏁伴噺</td>
- <td rowspan='2'>钀芥灦</td>
- <td rowspan='2'>闈㈢Н</td>
- <td rowspan='2'>鍛ㄩ暱</td>
- <td rowspan='2'>鍗婂緞</td>
- <td rowspan='2'>澶囨敞</td>
- <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td>
- </tr>
- <tr>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- <td>{{ company.printLabel.printFlowCard.patch }}</td>
- <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
- </tr>
- </thead>
- <tbody>
- <tr v-for="(itemDatile,index) in item.detailList" :key="index">
- <td>{{ itemDatile.order_number }}</td>
- <!-- <td>{{ itemDatile.s01Value }}</td> -->
- <td>{{ itemDatile.technology_number }}</td>
- <td>{{ itemDatile.child_width }}</td>
- <td class="item" style="width: 5%;height: 100%;">
- {{ itemDatile.quantity }}
- <!-- <input v-model="itemDatile.quantity" style="width: 100%;height: 100%" @keyup="handleSummary()"/> -->
- </td>
- <td>{{ itemDatile.quantity1 }}</td>
- <td>{{ itemDatile.total_area }}</td>
- <td>{{ itemDatile.perimeter }}</td>
- <td>{{ itemDatile.bend_radius }}</td>
- <td>{{ itemDatile.remarks }}</td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- </tbody>
- <tfoot>
- <tr style="height: 14px">
- <td v-for="(itemsum,index) in item.detail" :key="index" colspan="29">
- 鏁伴噺锛�
- <label>{{ itemsum.quantity }}</label>
- 钀芥灦鏁伴噺锛�
- <label>{{ itemsum.quantity1 }}</label>
- 闈㈢Н锛�
- <label>{{ parseFloat(itemsum.gross_area.toFixed(2)) }}</label>
- 钀芥灦闈㈢Н锛�
- <label>{{ parseFloat(itemsum.gross_area1.toFixed(2)) }}</label>
- 閲嶉噺锛�
- <label>{{ parseFloat(itemsum.weight.toFixed(2)) }}</label>
- 钀芥灦閲嶉噺锛�
- <label>{{ parseFloat(itemsum.weight1.toFixed(2)) }}</label>
- </td>
- </tr>
- <tr v-for="(itemtextarea,index) in item.detail" :key="index">
- <td>瀹屽伐绛惧悕</td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- </tr>
- <tr>
- <td>鐢熶骇鏃ユ湡</td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- </tr>
- <tr>
- <td>璐ㄦ绛惧悕</td>
- <td colspan="2"></td>
- <td colspan="2">鐢熶骇绛惧悕</td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- <td colspan="2"></td>
- </tr>
- <tr>
- <td>鍘熺墖绠卞彿</td>
- <td colspan="28"></td>
- </tr>
- <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
- <td colspan="29">
- <span style="display: flex;">
- <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
- <div class='qrCode' style="width: 80px;height: 80px;">
- <img :src=qrCodeItems.qrcode>
- </div>
- <span style="float: left;font-weight: bolder">{{
- qrCodeItem.process_id + "/" + qrCodeItems.technologyNumber
- }}</span>
- </span>
- </span>
- </td>
- </tr>
- <tr v-for="(itemtextareas,index) in item.detail" :key="index">
- <td colspan="29" rowspan="6" style="width: 480px;height: 150px ">
- <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;overflow: hidden;">{{itemtextareas.processing_note}}</textarea>
- </div>
- </td>
- </tr>
- </tfoot>
- </table>
- </div>
-</template>
-<style scoped>
-* {
- margin: 0;
- padding: 0;
- text-align: center;
-}
-#printFlowCard {
- text-align: center;
-//font-weight: bolder; height: 600px;
-}
-#contentTable {
- border-collapse: collapse;
- border: 1px solid black;
- width: 100%;
-}
-#contentTable thead {
- font-size: 13px;
- font-weight: bolder;
-}
-#contentTable thead div {
- font-size: 15px;
- font-weight: bolder;
-}
-#contentTable tr td {
- border: 1px solid black;
- height: 18px;
- font-weight: bolder;
-}
-#contentTable tbody {
-
-}
-.tdNowrap {
-
-}
-#contentTable tfoot {
- font-size: 12px;
- font-weight: bolder;
-}
-input{
- border: none;
- background: none;
-}
-@media print {
- @page {
- size: auto;
- margin: 4mm 5mm 5mm 5mm
- }
- table {
- page-break-before: always;
- page-break-inside: auto;
- }
- #contentTable thead {
- display: table-header-group;
- }
- tfoot {
- display: table-footer-group;
- page-break-inside: avoid;
- }
-}
-.qrCode img {
- width: 100%;
- height: 100%;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/UnLoadGlass.vue b/UI-Project/src/views/UnLoadGlass/UnLoadGlass.vue
deleted file mode 100644
index 33a37c6..0000000
--- a/UI-Project/src/views/UnLoadGlass/UnLoadGlass.vue
+++ /dev/null
@@ -1,51 +0,0 @@
-<script setup>
-import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
-import {useRouter} from "vue-router";
-let indexFlag=$ref(1)
-function changeRouter(index){
- indexFlag=index
-}
-</script>
-<template>
- <div id="main-div">
- <!-- <div id="div-title">
- <el-breadcrumb :separator-icon="ArrowRight">
- <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/UnLoadGlass/loadmachinerack' }">涓嬬墖绠$悊</el-breadcrumb-item>
- <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/UnLoadGlass/loadmachinerack' }">涓嬬墖淇℃伅</el-breadcrumb-item>
- <el-breadcrumb-item v-show="false" :to="{ path: '/main/product/test1' }">娴嬭瘯</el-breadcrumb-item>
- </el-breadcrumb>
- </div> -->
- <div id="main-body">
- <router-view />
- </div>
- </div>
-</template>
-<style scoped>
-#main-div{
- width: 100%;
- height: 100%;
-}
-#div-title{
- height: 2%;
- width: 100%;
-}
-#searchButton{
- margin-top: -5px;
- margin-left: 1rem;
-}
-/* #searchButton1{
-//margin-left: 10rem;
-} */
-/*main-body鏍峰紡*/
-#main-body{
- width: 100%;
- height: 95%;
- /* margin-top: 1%; */
-}
-#select{
- margin-left:0.5rem;
-}
-:deep(.indexTag .el-breadcrumb__inner){
- color: #5CADFE !important;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
deleted file mode 100644
index a0d68df..0000000
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ /dev/null
@@ -1,584 +0,0 @@
-<script setup>
-import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
-import {useRouter} from "vue-router"
-import {useI18n} from 'vue-i18n'
-import {ElMessage} from 'element-plus'
-import request from "@/utils/request";
-import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
-import {host, WebSocketHost} from '@/utils/constants'
-const router = useRouter()
-const {t} = useI18n()
-let language = ref(localStorage.getItem('lang') || 'zh')
-const printLoading = ref(true)
-const fullFlowCard = ref('')
-const autoPrint = ref(false)
-const takeGlass = ref([])
-const scanGlass = ref([])
-const dialogFormVisiblea = ref(false)
-const dialogFormVisiblea2 = ref(false)
-const dialogFormVisibleaDownGlass = ref(false)
-const dialogFormVisibleaDownGlasss = ref(false)
-const loading = ref(false);
-const dialogFormVisible = ref(false);
-const workstationId = ref('');
-const workFlowCard = ref('');
-const selectedProjectNoa = ref(null);
-const flowCardId = ref('');
-const flowCardOptions = ref('[]');
-const tableData = reactive([]);
-const downGlass = ref([]);
-const selectValuesa = reactive({});
-const selectOptionsa = ref([]);
-const dialogTableVisible = ref(false)
-const dialogTableVisible1 = ref(false)
-const printFlowCardId = ref('')
-const printLayer = ref('')
-const printGlassId = ref('')
-const now = new Date();
-const timeRange = ref([])
-const browser = ref(false)
-const handleChange = async () => {
- console.log("瑙﹀彂寮�鍏�")
- try {
- const body = {
- flag: autoPrint.value,
- };
- var url = "/unLoadGlass/downWorkStation/autoPrint?flag=" + autoPrint.value;
- const response = await request.post(url)
- if (response.code == 200) {
- ElMessage.success(response.message);
- autoPrint.value = response.data
- } else {
- ElMessage.error(response.message);
- }
- } catch (error) {
- console.error(error);
- }
-}
-const confirmBrowser = () => {
- if (/chrome|chromium/i.test(navigator.userAgent) && !/edg/i.test(navigator.userAgent)) {
- browser.value = true
- } else if (/edg/i.test(navigator.userAgent)) {
- browser.value = false
- } else {
- browser.value = false
- }
-}
-const handleInputChangea = (value, rowId) => {
- selectValuesa[rowId] = value;
-};
-// 鏂规硶
-const handleSelectionChange = () => {
- // 澶勭悊琛ㄦ牸琛岄�夋嫨浜嬩欢
-};
-const handleBindRack = (row) => {
- workstationId.value = row.workstationId;
- flowCardId.value = row.flowCardId;
- fetchFlowCardId();
- dialogFormVisiblea.value = true;
-};
-//鑾峰彇娴佺▼鍗″彿
-const fetchFlowCardId = async () => {
- try {
- const response = await request.get('unLoadGlass/downWorkStation/getflowCardId');
- console.log(response)
- if (response.code === 200) {
- flowCardOptions.value = response.data.filter(item => item !== null)
- .map(item => ({ flowcard_id: item.flow_card_id }));
- console.log(flowCardOptions.value);
- }
- else {
- ElMessage.error(response.msg);
- }
- } catch (error) {
- console.error(error);
- }
-};
-//纭
-const handleConfirm = async () => {
- try {
- const firstPart = flowCardId.value.split('|')[0].trim(); //
- const twoPart = flowCardId.value.split('|')[1].trim(); //
- const response = await request.post('unLoadGlass/downWorkStation/updateFlowCardId', {
- workstationId: workstationId.value,
- flowCardId: firstPart,
- layer: twoPart
- });
- if (response.code == 200) {
- ElMessage.success(response.message);
- updatePageData();
- dialogFormVisiblea.value = false;
- } else {
- ElMessage.error(response.msg);
- }
- } catch (error) {
- console.error(error);
- }
-};
-const updatePageData = () => {
- fetchTableData()
-};
-const handleBindRack2 = (row) => {
- workstationId.value = row.workstationId;
- dialogFormVisiblea2.value = true;
- workFlowCard.value = row.flowCardId;
-};
-//娓呴櫎鍐呭
-const handleclear = async () => {
- try {
- const response = await request.post('unLoadGlass/downWorkStation/clear', {
- workstationId: workstationId.value,
- });
- if (response.code === 200) {
- ElMessage.success(response.message);
- dialogFormVisiblea2.value = false;
- if (fullFlowCard.value == workFlowCard.value) {
- fullFlowCard.value = "";
- }
- } else if (response.code === 500) {
- ElMessage.error(response.message);
- dialogFormVisiblea2.value = false;
- }
- } catch (error) {
- ElMessage.error("娓呴櫎澶辫触");
- dialogFormVisiblea2.value = false;
- }
-};
-// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
-const fetchTableData = async () => {
- try {
- const response = await request.get('unLoadGlass/downWorkStation/getone');
- if (response.code === 200) {
- tableData.splice(0, tableData.length, ...response.data);
- } else {
- ElMessage.error(response.msg);
- }
- } catch (error) {
- ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
- }
-};
-let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass`;
-const handleMessage = (data) => {
- if (data.downGlassInfos != null) {
- downGlass.value = data.downGlassInfos[0];
- }
- if (data.engineerIdList != null) {
- selectOptionsa.value = data.engineerIdList[0]
- }
- if (data.autoPrint != null) {
- autoPrint.value = data.autoPrint[0];
- }
- if (data.takeGlass != null) {
- takeGlass.value = data.takeGlass[0];
- let width = takeGlass.value.width;
- let height = takeGlass.value.height;
- if (width < height) {
- takeGlass.value.width = height;
- takeGlass.value.height = width;
- }
- }
- if (data.scanGlass != null) {
- scanGlass.value = data.scanGlass[0];
- let width = scanGlass.value.width;
- let height = scanGlass.value.height;
- if (width < height) {
- scanGlass.value.width = height;
- scanGlass.value.height = width;
- }
- if(autoPrint.value == true && browser.value == true){
- open1(scanGlass);
- }
- }
- //鑷姩鎵撳嵃
- if (fullFlowCard.value == "" && autoPrint.value == true && browser.value == true) {
- for (let i = 0; i < tableData.length; i++) {
- if (tableData[i].totalQuantity != 0) {
- if (tableData[i].totalQuantity == tableData[i].racksNumber + tableData[i].otherNumber && fullFlowCard.value != tableData[i].flowCardId) {
- // printFlowCardId.value = tableData[i].flowCardId;
- fullFlowCard.value = tableData[i].flowCardId;
- open(tableData[i]);
- break;
- }
- } else {
- console.log("娌℃湁flowCardId")
- }
- }
- }
- if (data.params != null) {
- tableData.splice(0, tableData.length, ...data.params[0]);
- }
-};
-onMounted(() => {
- confirmBrowser();//鑾峰彇娴忚鍣�
- fetchFlowCardId();
- fetchTableData(); // 鑾峰彇鏁版嵁
- socket = initializeWebSocket(socketUrl, handleMessage);
-});
-onUnmounted(() => {
- if (socket) {
- closeWebSocket(socket);
- }
-});
-onBeforeUnmount(() => {
- console.log("鍏抽棴浜�")
- closeWebSocket();
-});
-const getTagType = (status) => {
- return status === 1 ? 'success' : 'danger';
-}
-const toggleStatus = (row) => {
- // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
- row.enableState = 1 - row.enableState; // Toggle between 0 and 1
- // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
- updateRowStatus(row);
-};
-const updateRowStatus = async (row) => {
- try {
- const response = await request.post('unLoadGlass/downWorkStation/updateDownWorkstation', {
- enableState: row.enableState,
- id: row.id
- });
- console.log('Updated row status:', response.data);
- } catch (error) {
- console.error('Error updating row status:', error);
- }
-};
-// 鏌ヨ鏁版嵁
-const selectDownGlassData = async () => {
- const response = await request.post("/unLoadGlass/downGlassInfo/setDownGlassInfoRequest", {
- workStationId: selectValuesa[0],
- engineerId: selectValuesa[1],
- beginDate: timeRange.value[0],
- endDate: timeRange.value[1],
- })
- if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.message);
- }
-}
-const open = async (row) => {
- printFlowCardId.value = row.flowCardId;
- printLayer.value = row.layer
- dialogTableVisible.value = true;
- setTimeout(() => {
- printFlowCard();
- dialogTableVisible.value = false;
- }, 2000);
-}
-const open1 = async (row) => {
- printFlowCardId.value = row.flowCardId;
- printLayer.value = row.layer
- printGlassId.value = row.glassId
- dialogTableVisible1.value = true;
- setTimeout(() => {
- printFlowCard1();
- //dialogTableVisible1.value = false;
- }, 1000);
-}
-const printFlowCard = () => {
- // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
- let el = document.getElementById("child");
- let doc = document;
- let body = doc.body || doc.getElementsByTagName("body")[0];
- let printId = "print-" + Date.now();
- // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
- let content = doc.createElement("div");
- content.id = printId;
- // alert(/Chrome/.test(userAgent) && !/Edge/.test(userAgent));
- // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
- let style = doc.createElement("style");
- console.log("style1:" + style.innerHTML)
- style.innerHTML =
- "body>#" +
- printId +
- "{display:none;}@media print{" +
- "@page {" +
- " size: auto; " +
- " margin: 10mm 5mm 10mm 5mm; " +
- " }body>:not(#" +
- printId +
- "){display:none !important;}body>#" +
- printId +
- "{display:block;}#" +
- printId +
- "{display: block; padding: 0; margin: 0; width: 100%; position: absolute; top: 0; left: 0; height: 100vh; box-sizing: border-box;}} ";
- content.innerHTML = el.outerHTML;
- // // console.log("el.outerHTML", el.outerHTML);
- body.appendChild(style);
- // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
- // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
- body.appendChild(content);
- setTimeout(() => {
- window.print();
- body.removeChild(content);
- body.removeChild(style);
- }, 20);
-}
-const printFlowCard1 = () => {
- // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
- let el = document.getElementById("printFlowCard");
- let doc = document;
- let body = doc.body || doc.getElementsByTagName("body")[0];
- let printId = "print-" + Date.now();
- // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
- let content = doc.createElement("div");
- content.id = printId;
- // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
- let style = doc.createElement("style");
- style.innerHTML =
- "body>#" +
- printId +
- "{display:none}@media print{" +
- "@page {" +
- " size: auto; " +
- " margin: 2mm 2mm 2mm 2mm; " +
- " }body>:not(#" +
- printId +
- "){display:none !important}body>#" +
- printId +
- "{display:block;padding-top:1px}}";
- //
- content.innerHTML = el.outerHTML;
- // // console.log("el.outerHTML", el.outerHTML);
- body.appendChild(style);
- // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
- // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
- body.appendChild(content);
- setTimeout(() => {
- window.print();
- body.removeChild(content);
- body.removeChild(style);
- }, 20);
-}
-// beforeUnmount(() => {
-// closeWebSocket();
-// });
-// setInterval(fetchTableData, 2000)
-</script>
-<template>
- <div style="height: 500px;">
- <div>
- <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary"
- @click="dialogFormVisibleaDownGlass = true">{{ $t('reportWork.details') }}
- </el-button>
- <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary"
- @click="dialogFormVisibleaDownGlasss = true">{{ $t('reportWork.filming') }}
- </el-button>
- <el-switch style="margin-top: 10px;margin-left: 15px;margin-bottom: 10px;" v-model="autoPrint" class="mb-2"
- :inactive-text="$t('basicData.printing')" @change="handleChange"/>
- <el-card style="flex: 1;" v-loading="loading">
- <el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading">
- <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
- <el-table height="350px" ref="table" @selection-change="handleSelectionChange" :data="tableData"
- :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
- <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" />
- <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')"
- min-width="120" />
- <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" />
- <el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')"
- min-width="120" />
- <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
- <el-table-column prop="layer" align="center" :label="$t('reportWork.cenumber')" min-width="120" />
- <el-table-column prop="otherNumber" align="center" :label="$t('reportWork.artificialorder')" min-width="120" />
- <!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> -->
- <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
- <el-table-column align="center" :label="$t('reportWork.startstatus')" min-width="80" prop="enableState">
- <template #default="scope">
- <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)">
- {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="400">
- <template #default="scope">
- <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�'"
- @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}
- </el-button>
- <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear')
- }}</el-button>
- <el-button @click="open(scope.row)" :disabled="scope.row.flowCardId == null">{{ $t('reportWork.processcard') }}</el-button>
- <el-button @click="open1(scope.row)" :disabled="scope.row.flowCardId == null">{{ $t('reportWork.printlabels') }}</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%" :title="$t('reportWork.information')">
- <div style="margin-bottom: 10px;margin-top: -20px;">
- <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('reportWork.cstation')" clearable style="margin-top: -6px;">
- <el-option :label="$t('reportWork.all')" value="0"></el-option>
- <el-option label="1" value="1"></el-option>
- <el-option label="2" value="2"></el-option>
- <el-option label="3" value="3"></el-option>
- <el-option label="4" value="4"></el-option>
- <el-option label="5" value="5"></el-option>
- <el-option label="6" value="6"></el-option>
- <el-option label="7" value="7"></el-option>
- </el-select>
- <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('basicData.plselectproject')" clearable style="margin-left: 10px;margin-top: -6px;"
- @input="handleInputChangea($event, row.id)">
- <el-option v-for="item in selectOptionsa" :key="item" :label="item" :value="item" />
- </el-select>
- <span style="margin-left: 10px;margin-top: 15px;" class="demonstration">{{ $t('reportWork.timeperiod') }}</span>
- <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" :start-placeholder="$t('reportmanage.starttime')"
- value-format="YYYY-MM-DD hh:mm:ss" :end-placeholder="$t('reportmanage.endtime')" style="margin-left: 10px;">
- </el-date-picker>
- <el-button type="primary" style="margin-left: 10px;margin-top: -6px;" @click="selectDownGlassData()">{{
- $t('reportmanage.inquire')
- }}
- </el-button>
- </div>
- <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="downGlass"
- :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
- <el-table-column prop="workStationId" align="center" :label="$t('reportWork.stationnumber')" min-width="80" />
- <el-table-column prop="engineerId" align="center" :label="$t('basicData.projectnumber')" min-width="80" />
- <el-table-column prop="flowCardId" align="center" :label="$t('workOrder.cardnumber')" min-width="80" />
- <el-table-column prop="layer" align="center" :label="$t('searchOrder.ceng')" min-width="120" />
- <el-table-column prop="sequence" align="center" :label="$t('reportWork.order')" min-width="150" />
- <el-table-column prop="width" align="center" :label="$t('basicData.width')" min-width="120" />
- <el-table-column prop="height" align="center" :label="$t('basicData.height')" min-width="120" />
- <el-table-column prop="Filmsid" align="center" :label="$t('basicData.coatingtypes')" min-width="120" />
- <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')" min-width="120" />
- <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="120" />
- </el-table>
- </el-dialog>
- <el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" :title="$t('searchOrder.filminformation')">
- <div style="display:flex;justify-content: space-around;">
- <el-card
- style="display: flex; justify-content: center; align-items: center; width:800px; height: 800px;position: relative;">
- <div
- :style="{ width: takeGlass.width + 'px', height: takeGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (takeGlass.width > takeGlass.height ? takeGlass.width : takeGlass.height) + ')' }">
- </div>
- <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:170px;">
- <div>{{ $t('reportWork.glassmation') }}</div>
- <div><el-button type="primary" @click="open1(takeGlass)" >{{ $t('reportWork.printlabels') }}</el-button></div>
- <div>{{ takeGlass.flowCardId }}</div>
- <div>{{ takeGlass.layer }}</div>
- <div>{{ takeGlass.glassId }}</div>
- <div>{{ takeGlass.width }}</div>
- <div>{{ takeGlass.height }}</div>
- </div>
- </el-card>
- <el-card
- style="display: flex; justify-content: center; align-items: center; width: 800px; height: 800px;position: relative;">
- <div
- :style="{ width: scanGlass.width + 'px', height: scanGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (scanGlass.width > scanGlass.height ? scanGlass.width : scanGlass.height) + ')' }">
- </div>
- <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:200px;">
- <div>{{ $t('reportWork.barcodescanner') }}</div>
- <div><el-button type="primary" @click="open1(scanGlass)" >{{ $t('reportWork.printlabels') }}</el-button></div>
- <div>{{ scanGlass.flowCardId }}</div>
- <div>{{ scanGlass.layer }}</div>
- <div>{{ scanGlass.glassId }}</div>
- <div>{{ scanGlass.width }}</div>
- <div>{{ scanGlass.height }}</div>
- </div>
- </el-card>
- </div>
- </el-dialog>
- </el-card>
- <!-- workstationId: '1',
- workstationId: '1005',
- flowCardId: '183.6',
- totalquantity: '1991',
- racksnumber:"1",
- work_state: '寰呰瘑鍒�', -->
- <div style="display: flex;" class="awatch">
- <div id="main-body">
- <Landingindication></Landingindication>
- </div>
- <div id="main-bodya">
- <Landingindicationtwo></Landingindicationtwo>
- </div>
- </div>
- </el-card>
- </div>
- <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
- <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
- <el-form size="mini" label-width="100px">
- <el-form label-width="210px" label-position="right">
- <el-form-item :label="$t('reportWork.shelfnumbera')" :required="true" style="width: 25vw">
- <el-input v-model="workstationId" autocomplete="off" />
- </el-form-item>
- <el-form-item :label="$t('reportWork.cardnumbera')" :required="true" style="width: 25vw;">
- <el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')">
- <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id"
- :value="item.flowcard_id" />
- </el-select>
- </el-form-item>
- </el-form>
- </el-form>
- </div>
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="handleConfirm">
- {{ $t('reportWork.sure') }}
- </el-button>
- <el-button @click="dialogFormVisiblea = false">{{ $t('reportWork.cancel') }}</el-button>
- </div>
- </template>
- </el-dialog>
- <el-dialog v-model="dialogFormVisiblea2" top="21vh" width="30%" :title="$t('reportWork.clearglass')">
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="handleclear">
- {{ $t('reportWork.sure') }}
- </el-button>
- <el-button @click="dialogFormVisiblea2 = false">{{ $t('reportWork.cancel') }}</el-button>
- </div>
- </template>
- </el-dialog>
- <el-dialog id="sizePrintCalrd" v-model="dialogTableVisible" destroy-on-close>
- <print-flow id="child" :printFlowCardId="printFlowCardId" :printLayer="printLayer"
- style="width: 100%;height: 100%"/>
- </el-dialog>
- <el-dialog id="sizePrintCalrd1" v-model="dialogTableVisible1" destroy-on-close>
- <print-label id="printFlowCard" :printFlowCardId="printFlowCardId" :printLayer="printLayer"
- :printGlassId="printGlassId" style=""/>
- </el-dialog>
- </div>
-</template>
-<style scoped>
-#dt {
- display: block;
- float: left;
- line-height: 20px;
- margin-left: 100px;
-}
-#dta {
- display: block;
- float: left;
- line-height: 20px;
- margin-left: 80%;
-}
-#dialog-footer {
- text-align: center;
- margin-top: -15px;
-}
-#message {
- text-align: center;
- align-items: center;
- color: black;
- width: 200px;
- height: 100px;
- background-color: #337ecc;
- margin-left: 28%;
-}
-.awatch {
- max-width: 100%;
-}
-#main-body {
- margin-top: -40px;
- margin-left: 150px;
-}
-#main-bodya {
- margin-top: -40px;
- margin-left: 100px;
-}
-:deep(#sizePrintCalrd .el-dialog__body) {
- height: 85%;
- width: 100%;
- overflow-y: auto;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue b/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
deleted file mode 100644
index 6b6c564..0000000
--- a/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
+++ /dev/null
@@ -1,209 +0,0 @@
-<script setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
-import {useRouter} from "vue-router"
-const router = useRouter()
-const dialogFormVisiblea = ref(false)
-import { ref } from 'vue'
-import { ElMessage, ElMessageBox } from 'element-plus'
-// import Landingindication from "./Landingindication.vue";
-import Landingindicationtwo from "./Landingindicationtwo.vue";
-const tableData = [
- {
- id: '1',
- long: '1005',
- wide: '183.6',
- thick: '1991',
- state: '鏈惎鐢�',
- },
- {
- id: '2',
- long: '105',
- wide: '183',
- thick: '191',
- state: '鏈惎鐢�'
- },
- {
- id: '3',
- long: '105',
- wide: '183',
- thick: '191',
- state: '鏈惎鐢�'
- },
- {
- id: '4',
- long: '105',
- wide: '183',
- thick: '191',
- state: '鏈惎鐢�'
- },
- {
- id: '5',
- long: '105',
- wide: '183',
- thick: '191',
- state: '鏈惎鐢�'
- },
-]
-const open = () => {
- ElMessageBox.confirm(
- '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
- '鎻愮ず',
- {
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }
- )
- .then(() => {
- ElMessage({
- type: 'success',
- message: '鍒犻櫎鎴愬姛锛�',
- })
- })
- .catch(() => {
- ElMessage({
- type: 'info',
- message: '鍒犻櫎澶辫触',
- })
- })
-}
-const getTableRow = (row,type) =>{
- switch (type) {
- case 'edit' :{
- router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
- break
- }
- case 'delete':{
- alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
- break
- }
- }
-}
-const dialogForm = () => {
- ElMessageBox.confirm(
- '鏄惁娓呯┖璇ユ潯淇℃伅?',
- '鎻愮ず',
- {
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }
- )
-}
-const gridOptions = reactive({
- border: "full",//琛ㄦ牸鍔犺竟妗�
- keepSource: true,//淇濇寔婧愭暟鎹�
- align: 'center',//鏂囧瓧灞呬腑
- stripe:true,//鏂戦┈绾�
- rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
- id: 'OrderList',
- showFooter: true,//鏄剧ず鑴�
- printConfig: {},
- importConfig: {},
- exportConfig: {},
- scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
- showOverflow:true,
- columnConfig: {
- resizable: true,
- useKey: true
- },
- filterConfig: { //绛涢�夐厤缃」
- remote: true
- },
- customConfig: {
- storage: true
- },
- editConfig: {
- trigger: 'click',
- mode: 'row',
- showStatus: true
- },
- data: [
- {
- 'id': '1',
- 'long': '5',
- 'wide': '1005',
- 'thick': '183.6',
- }
- ],
-})
-</script>
-<template>
- <div>
- <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
- <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
- <el-table height="100%" ref="table"
- @selection-change="handleSelectionChange"
- :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="id" align="center" label="涓嬬墖浣�" min-width="80" />
- <el-table-column prop="long" align="center" label="鏋跺彿" min-width="120" />
- <el-table-column prop="wide" align="center" label="娴佺▼鍗″彿" min-width="120" />
- <el-table-column prop="wide" align="center" label="鎬绘暟閲�" min-width="120" />
- <el-table-column prop="wide" align="center" label="宸茶惤鏋舵暟閲�" min-width="120" />
- <el-table-column prop="state" align="center" label="鍚敤鐘舵��" min-width="120" />
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
- <template #default>
- <el-button size="mini" type="text" plain v-show="state !== '宸插惎鐢�' " @click="dialogFormVisiblea = true">缁戝畾鏋跺瓙</el-button>
- <el-button size="mini" type="text" plain @click="dialogForm">娓呯┖</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </el-card>
- </div>
- <div style="display: flex;">
- <!-- <div id="main-body">
- <Landingindication></Landingindication>
- </div> -->
- <div id="main-body">
- <Landingindicationtwo></Landingindicationtwo>
- </div>
- </div>
- <el-dialog v-model="dialogFormVisiblea" top="21vh" width="30%" title="缁戝畾鏋跺瓙" >
- <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
- <el-form size="mini" label-width="150px">
- <el-form label-width="100px" label-position="right">
- <el-form-item label="鏋跺彿锛�" :required="true" style="width: 18vw">
- <el-input autocomplete="off"/>
- </el-form-item>
- <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 18vw;">
- <el-input autocomplete="off" />
- </el-form-item>
- </el-form>
- </el-form>
- </div>
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="dialogFormVisiblea = false">
- 纭
- </el-button>
- <el-button @click="dialogFormVisiblea = false">鍙栨秷</el-button>
- </div>
- </template>
- </el-dialog>
-</template>
-<style scoped>
-#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
-#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
-#dialog-footer{
- text-align: center;
- margin-top: -15px;
-}
-#message{
- text-align: center;
- align-items: center;
- color: black;
- width: 200px;
- height: 100px;
- background-color: #337ecc;
- margin-left: 28%;
-}
-#awatch{
- height: 450px;
-}
-#main-body{
- margin-top: -10px;
- margin-left: 450px;
-}
-</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hollowequipment.vue b/UI-Project/src/views/hollow/hollowequipment.vue
index f02ebb7..eb0a183 100644
--- a/UI-Project/src/views/hollow/hollowequipment.vue
+++ b/UI-Project/src/views/hollow/hollowequipment.vue
@@ -279,14 +279,14 @@
<div id="dt" style="font-size: 15px;">
<div>
<el-form-item :label="$t('hellow.intervalFrameHeightbOne')" :required="true" style="width: 16vw;">
- <el-input :placeholder="$t('hellow.intervalFrameHeightbOne')" v-model="intervalFrameHeightOne" autocomplete="off" />
+ <el-input :placeholder="$t('hellow.intervalFrameHeightaOne')" v-model="intervalFrameHeightOne" autocomplete="off" />
</el-form-item></div></div>
</el-col>
<el-col :span="9">
<div id="dta" style="font-size: 15px;">
<div>
<el-form-item :label="$t('hellow.intervalFrameHeightbTwo')" :required="true" style="width: 16vw;">
- <el-input :placeholder="$t('hellow.intervalFrameHeightbTwo')" v-model="intervalFrameHeightTwo" autocomplete="off" />
+ <el-input :placeholder="$t('hellow.intervalFrameHeightaTwo')" v-model="intervalFrameHeightTwo" autocomplete="off" />
</el-form-item>
</div></div>
</el-col>
@@ -296,14 +296,14 @@
<div id="dt" style="font-size: 15px;">
<div>
<el-form-item :label="$t('hellow.intervalFrameHeightbThree')" :required="true" style="width: 16vw;">
- <el-input :placeholder="$t('hellow.intervalFrameHeightbThree')" v-model="intervalFrameHeightThree" autocomplete="off" />
+ <el-input :placeholder="$t('hellow.intervalFrameHeightaThree')" v-model="intervalFrameHeightThree" autocomplete="off" />
</el-form-item></div></div>
</el-col>
<el-col :span="9">
<div id="dta" style="font-size: 15px;">
<div>
<el-form-item :label="$t('hellow.intervalFrameHeightbFour')" :required="true" style="width: 16vw;">
- <el-input :placeholder="$t('hellow.intervalFrameHeightbFour')" v-model="intervalFrameHeightFour" autocomplete="off" />
+ <el-input :placeholder="$t('hellow.intervalFrameHeightaFour')" v-model="intervalFrameHeightFour" autocomplete="off" />
</el-form-item>
</div></div>
</el-col>
@@ -556,14 +556,14 @@
<div id="dt" style="font-size: 15px;">
<div>
<el-form-item :label="$t('hellow.intervalFrameHeightbOne')" :required="true" style="width: 16vw;">
- <el-input :placeholder="$t('hellow.intervalFrameHeightbOne')" v-model="intervalFrameHeightOne" autocomplete="off" />
+ <el-input :placeholder="$t('hellow.intervalFrameHeightaOne')" v-model="intervalFrameHeightOne" autocomplete="off" />
</el-form-item></div></div>
</el-col>
<el-col :span="9">
<div id="dta" style="font-size: 15px;">
<div>
<el-form-item :label="$t('hellow.intervalFrameHeightbTwo')" :required="true" style="width: 16vw;">
- <el-input :placeholder="$t('hellow.intervalFrameHeightbTwo')" v-model="intervalFrameHeightTwo" autocomplete="off" />
+ <el-input :placeholder="$t('hellow.intervalFrameHeightaTwo')" v-model="intervalFrameHeightTwo" autocomplete="off" />
</el-form-item>
</div></div>
</el-col>
@@ -573,14 +573,14 @@
<div id="dt" style="font-size: 15px;">
<div>
<el-form-item :label="$t('hellow.intervalFrameHeightbThree')" :required="true" style="width: 16vw;">
- <el-input :placeholder="$t('hellow.intervalFrameHeightbThree')" v-model="intervalFrameHeightThree" autocomplete="off" />
+ <el-input :placeholder="$t('hellow.intervalFrameHeightaThree')" v-model="intervalFrameHeightThree" autocomplete="off" />
</el-form-item></div></div>
</el-col>
<el-col :span="9">
<div id="dta" style="font-size: 15px;">
<div>
<el-form-item :label="$t('hellow.intervalFrameHeightbFour')" :required="true" style="width: 16vw;">
- <el-input :placeholder="$t('hellow.intervalFrameHeightbFour')" v-model="intervalFrameHeightFour" autocomplete="off" />
+ <el-input :placeholder="$t('hellow.intervalFrameHeightaFour')" v-model="intervalFrameHeightFour" autocomplete="off" />
</el-form-item>
</div></div>
</el-col>
diff --git a/UI-Project/src/views/hollow/hollowslicecage.vue b/UI-Project/src/views/hollow/hollowslicecage.vue
index ffe3d0b..9a6abe8 100644
--- a/UI-Project/src/views/hollow/hollowslicecage.vue
+++ b/UI-Project/src/views/hollow/hollowslicecage.vue
@@ -484,7 +484,7 @@
</div>
<!-- // 鐖剁骇妗� -->
<div class="img-dlpl" >
- <div class="img-car1" :style="'z-index:999;left:270px;top:' + 350*carPosition[0] + 'px;position:absolute;'">
+ <div class="img-car1" :style="'z-index:999;left:475px;top:' + 1450*carPosition[0] + 'px;position:absolute;'">
<div
v-for="(rect, index) in adjusta"
:key="rect.id"
@@ -498,7 +498,7 @@
>
</div>
</div>
- <div class="img-car4" :style="'z-index:999;left:740px;top:' + 350*carPosition[1] + 'px;position:absolute;'">
+ <div class="img-car4" :style="'z-index:999;left:890px;top:' + 50*carPosition[1] + 'px;position:absolute;'">
<div
v-for="(rect, index) in adjust"
:key="rect.id"
@@ -1019,19 +1019,19 @@
.img-dlpl{
margin-left: 20px;
margin-top: 0px;
- background-image:url('../../assets/dlpl9.png');
+ background-image:url('../../assets/zhongkong.png');
background-repeat: no-repeat;
background-attachment: local;
- min-height: 400px;
+ min-height: 700px;
width: 1200px;
max-width: 100%;
- background-size: 1200px 400px;
+ background-size: 1200px 700px;
overflow: hidden;
position:relative
}
.img-car1{
display: flex;
- background-image:url('../../assets/lp9.png');
+ background-image:url('../../assets/xiaoche.png');
position: absolute;
background-repeat: no-repeat;
background-attachment: local;
@@ -1044,7 +1044,7 @@
}
.img-car4{
display: flex;
- background-image:url('../../assets/lpa9.png');
+ background-image:url('../../assets/xiaoche.png');
position: absolute;
background-repeat: no-repeat;
background-attachment: local;
--
Gitblit v1.8.0