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>&nbsp;
-        <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>&nbsp;
-        <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>&nbsp;
-        <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}}&nbsp;&nbsp;
-            娴佺▼鍗″彿锛� {{
-              itemFlow.process_id
-            }}/{{ itemFlow.technologyNumberMerge }} 鍏� {{ flowCardCount }} 鏋�
-          </div>
-          <div v-else style="text-align: right;font-weight: bolder">
-            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
-            娴佺▼鍗″彿锛� {{
-              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