From a851a0eb0b9c5a8a5e9e4b038fbd1f0bf5f58bbc Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期五, 21 六月 2024 16:12:08 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 UI-Project/src/views/Slicecage/slicecage.vue | 1018 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 733 insertions(+), 285 deletions(-)

diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 1136815..15839b1 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -3,62 +3,167 @@
 import {reactive} from "vue";
 import {useRouter} from "vue-router"
 const router = useRouter()
-
-import { ref } from 'vue'
+import request from "@/utils/request"
+import { WebSocketHost ,host} from '@/utils/constants'
+import { ref, onMounted , onBeforeUnmount} from "vue";
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
 import { ElMessage, ElMessageBox } from 'element-plus'
+import { tr } from "element-plus/es/locale";
 const dialogFormVisible = ref(false)
 const dialogFormVisiblea = ref(false)
 const dialogFormVisibleb = ref(false)
-
+const tableData = ref([])
+const tableDatab = ref([])
+const tableDatac = ref([])
+const tableDatad = ref([])
+const tableDatae = ref([])
+const adjustedRects = ref([]);
+// const height = ref([]);
+const add = ref(false)
+const flowCardId = ref('');
+const gap = ref('');
+const glassId = ref('');
+const glassType = ref('');
+const height = ref('');
+const sequence = ref('');
+const state = ref('');
+const temperingFeedSequence = ref('');
+const temperingLayoutId = ref('');
+const thickness = ref('');
+const width = ref('');
+const carposition1 = ref(60);
+const carposition2 = ref(220);
+const carposition3 = ref(60);
+const carposition4 = ref(260);
+const timers1 =ref(true);
+const timers2 =ref(true);
+const timers3 =ref(true);
+const timers4 =ref(true);
+const cellshow5=ref(false);
+const c1=ref(false);
+const c2=ref(false);
+const cellshow1=ref(true);
+const cellshow2=ref(true);
+const cellshow3=ref(true);
+const cellshow4=ref(true);
+const million=ref(0);
+const million1=ref(0);
+const million3=ref(0);
+const million4=ref(0);
+const cell1=ref(true);
+const cell2=ref(true);
+const cell3=ref(true);
+const cell4=ref(true);
+const cell5=ref(true);
+const cell6=ref(true);
+const cell7=ref(true);
+const cell8=ref(true);
+ 
 const currentPage4 = ref(4)
 const pageSize4 = ref(100)
-const tableData = [
-  {
-    id: '1',
-    a: '1',
-    b: '1',
-    c: '123456789',
-    d: '1568251',
-    e: '1',
-    f: '100',
-    g: '',
-  },
-]
-const tableDatab = [
-  {
-    id: '2',
-    a: '2',
-    b: '2',
-    c: '123456789',
-    d: '1568251',
-    e: '1',
-    f: '100',
-    g: '',
-  }
-]
-const dialogForm = () => {
-  ElMessageBox.confirm(
-    '纭畾瑕佹�ュ仠鍚�?',
-    '鎻愮ず',
-    {
-      confirmButtonText: '鏄�',
-      cancelButtonText: '鍚�',
-      type: 'warning',
+ 
+  var timer=setInterval(() => {
+    // console.log(million.value,million1.value);
+    million.value+=1;
+    if(million.value-million1.value!==12){
+      
+      if(million.value-million1.value>=2){
+        if(carposition1.value==220){
+          timers1.value=false;
+        }else if(carposition1.value==60){
+          timers1.value=true;
+        }
+        if(timers1.value==true){
+          carposition1.value=carposition1.value+16;
+        }else{
+          carposition1.value=carposition1.value-16;
+        }
+ 
+        
+        if(carposition2.value==220){
+          timers2.value=false;
+        }else if(carposition2.value==60){
+          timers2.value=true;
+        }
+        if(timers2.value==true){
+          carposition2.value+=16;
+        }else{
+          carposition2.value-=16;
+        }
+      }else{
+ 
+      }
+    }else{
+      million1.value=million.value;
+    
+      if(cellshow1.value==true){
+        cellshow1.value=false;
+      }else{
+        cellshow1.value=true;
+      }
+      if(cellshow2.value==true){
+        cellshow2.value=false;
+      }else{
+        cellshow2.value=true;
+      }
     }
-  )
-    .then(() => {
-      ElMessage({
-        type: 'success',
-        message: '鎬ュ仠鎴愬姛锛�',
-      })
-    })
-    .catch(() => {
-      ElMessage({
-        type: 'info',
-        message: '鎬ュ仠澶辫触',
-      })
-    })
-}
+    
+  }, 1000);
+ 
+  var timer=setInterval(() => {
+    // console.log(million3.value,million4.value);
+    million3.value+=1;
+    if(million3.value-million4.value!==12){
+      
+      if(million3.value-million4.value>=2){
+        if(carposition3.value==260){
+          timers3.value=false;
+        }else if(carposition3.value==60){
+          timers3.value=true;
+        }
+        if(timers3.value==true){
+          carposition3.value=carposition3.value+20;
+        }else{
+          carposition3.value=carposition3.value-20;
+        }
+ 
+        
+        if(carposition4.value==260){
+          timers4.value=false;
+        }else if(carposition4.value==60){
+          timers4.value=true;
+        }
+        if(timers4.value==true){
+          carposition4.value+=20;
+        }else{
+          carposition4.value-=20;
+        }
+      }else{
+ 
+      }
+    }else{
+      million4.value=million3.value;
+      if(cellshow5.value==true){
+        cellshow5.value=false;
+        
+      }else{
+        cellshow5.value=true;
+        
+      }
+      if(cellshow3.value==true){
+        cellshow3.value=false;
+      }else{
+        cellshow3.value=true;
+      }
+      if(cellshow4.value==true){
+        cellshow4.value=false;
+      }else{
+        cellshow4.value=true;
+      }
+    }
+    
+  }, 1000);
+
 const getTableRow = (row,type) =>{
   switch (type) {
     case 'edit' :{
@@ -72,68 +177,199 @@
     }
   }
 }
-
-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',
+const handleBindRack = (row) => {
+  add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+// 娣诲姞
+const handleConfirm = async () => {
+  try {
+    const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/insertBigStorageCageDetails', {
+      flowCardId: flowCardId.value,
+      gap: gap.value,
+      glassId: glassId.value,
+      glassType: glassType.value,
+      height: height.value,
+      sequence: sequence.value,
+      state: state.value,
+      temperingFeedSequence: temperingFeedSequence.value,
+      temperingLayoutId: temperingLayoutId.value,
+      thickness: thickness.value,
+      width: width.value,
+    }); 
+    if (response.code == 200) {
+      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+      ElMessage.success(response.message);
+      add.value = false;
+     tableData.value = response.data;
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
     }
-  ],
-})
-</script>
+  } catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+};
+// 鏄惁绂佺敤
+const toggleEnableState = async (row) => {
+  const newState = row.enableState === 1 ? 0 : 1;  
+  console.log(row.slot);
+  console.log(row.enableState);
+  var url="/cacheVerticalGlass/bigStorageCage/updateStorageCageDisabled?slot="+row.slot + "&enableState=" + newState;
+      console.log(url);
+      const response = await request.get(url) 
+  if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+  row.enableState = newState;  
+};
+// const tableData = ref([  
+//   // ...鎮ㄧ殑琛ㄦ牸鏁版嵁  
+//   id: 
+//   deviceId slot enableState remainWidth
 
+// ]);  
+ // 鍒犻櫎 
+ const opena = async(row) => {  
+  try {  
+    const confirmResult = await ElMessageBox.confirm(  
+      '鏄惁鍒犻櫎璇ユ潯淇℃伅?',  
+      '鎻愮ず',  
+      {  
+        confirmButtonText: '鏄�',  
+        cancelButtonText: '鍙栨秷',  
+        type: 'warning',  
+      }  
+    );  
+    if (confirmResult === 'confirm') {  
+      // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/deleteBigStorageCageDetails", {
+        menuId: row.id,
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+        // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛  
+      ElMessage.error(response.msg);
+        // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); 
+      }  
+    }  
+  } catch (error) {  
+    // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑  
+    console.error('鍙戠敓閿欒:', error);  
+  }  
+}; 
+
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+  // 鏇存柊 tableData 鐨勬暟鎹�
+  tableDatac.value = data.bigStorageCageDetailsOutTask[0]
+  tableDatad.value = data.bigStorageCageDetailsFeedTask[0]
+  tableData.value = data.bigStorageCageInfo[0]
+  tableDatab.value = data.temperingGlassInfoList[0]
+  tableDatae.value = data.bigStorageCageUsage[0]
+  adjustedRects.value = data.bigStorageCageInfo1[0]
+  // adjustedRects.value = data.bigStorageCageInfo1[0].map(rect => ({  
+  //           ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+  //           height: rect.length *0.5,
+            
+  //         })); 
+  window.localStorage.setItem('length', data.bigStorageCageInfo1[0].length)
+  let length = window.localStorage.getItem('length')
+  console.log(length);
+  
+};
+// function getRectHeight(length: number) {  
+//   return length > 0 ? 29 / length : 29;
+// } 
+// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
+onMounted(() => {
+  // fetchFlowCardId();
+  // fetchTableData(); // 鑾峰彇鏁版嵁
+  initializeWebSocket(socketUrl, handleMessage);
+});
+function getStatusType(enableState: number) {  
+  switch (enableState) {  
+    case 0:
+      return 'warning';  
+    case 1: 
+      return 'success';  
+  }  
+}  
+function getStatusText(enableState: number) {
+  switch (enableState) {
+    case 0:  
+      return '绂佺敤';  
+    case 1:  
+      return '鍚敤'; 
+  }  
+}
+function getStatusTypea(ishorizontal: number) {  
+  switch (ishorizontal) {  
+    case 0:
+      return 'warning';  
+    case 1: 
+      return 'success';  
+  }  
+}  
+function getStatusTexta(ishorizontal: number) {
+  switch (ishorizontal) {
+    case 0:  
+      return '涓嶆帴鍙�';  
+    case 1:  
+      return '鎺ュ彈'; 
+  }  
+}
+function getStatusTypeb(state: number) {  
+  switch (state) {  
+    case 0:
+      return 'success';  
+    case 1: 
+      return 'primary';  
+  }  
+}  
+function getStatusTextb(state: number) {
+  switch (state) {
+    case 0:  
+      return '鍑虹墖瀹屾垚';  
+    case 1:  
+      return '绛夊緟涓�'; 
+    case 2:  
+      return '绛夊緟涓�'; 
+  }  
+}
+onBeforeUnmount(() => {
+  console.log("鍏抽棴浜�")
+  closeWebSocket();
+});
+</script>
+ 
 <template>
   <div style="height: 700px;">
-    <!-- <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">鎵嬪姩杩涚墖</el-button> -->
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisiblea = true">璁㈠崟淇℃伅</el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisiblea = true">鐞嗙墖绗间俊鎭�</el-button>
     <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="success" @click="dialogFormVisibleb = true">鍑虹墖闃熷垪</el-button>
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger">缁堟杩涚墖</el-button>
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger">缁堟鍑虹墖</el-button>
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger"  @click="dialogForm">杞�ュ仠</el-button>
-    
     <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: 100px;">
         <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="鍑虹墖鐜荤拑ID" min-width="80" />
-          <el-table-column prop="a" align="center" label="绗煎瓙" min-width="120" />
-          <el-table-column prop="b" align="center" label="鏍煎瓙" min-width="120" />
-          <el-table-column prop="c" align="center" label="宸ョ▼鍙�" min-width="120" />
-          <el-table-column prop="d" align="center" label="娴佺▼鍗″彿" min-width="120" />
-          <el-table-column prop="e" align="center" label="閽㈠寲鐗堝浘鍙�" min-width="157" />
-          <el-table-column prop="f" align="center" label="灏哄" min-width="120" />
-          <el-table-column prop="g" align="center" label="缁撴潫浠诲姟" min-width="120" />
+        :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="bigStorageCageOutTask.glassId" align="center" label="鍑虹墖鐜荤拑ID" min-width="80" />
+          <el-table-column prop="bigStorageCageOutTask.startSlot" align="center" label="璧峰浣嶇疆" min-width="120" />
+          <el-table-column prop="bigStorageCageOutTask.endSlot" align="center" label="鐩爣浣嶇疆" min-width="120" />
+          <el-table-column prop="bigStorageCageOutTask.trainNumber" align="center" label="杞︽" min-width="120" />
+          <el-table-column prop="bigStorageCageOutTask.serialNumber" align="center" label="搴忓彿" min-width="120" />
+          <el-table-column prop="bigStorageCageOutTask.taskState" align="center" label="浠诲姟鐘舵��" min-width="157">
+          <template #default="scope">
+            <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0?"绛夊緟杩涚墖":"杩涜涓�"  }}</el-tag>
+          </template>
+          </el-table-column>
+          <el-table-column fixed="right" label="缁撴潫浠诲姟" align="center" width="150">
+            <template #default="scope">
+              <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">瀹屾垚浠诲姟</el-button>
+            </template>
+        </el-table-column>
         </el-table>
       </div>
     </el-card>
@@ -141,175 +377,279 @@
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
         <el-table height="100%" ref="table" 
         @selection-change="handleSelectionChange"
-        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="id" align="center" label="杩涚墖鐜荤拑ID" min-width="80" />
-          <el-table-column prop="a" align="center" label="绗煎瓙" min-width="120" />
-          <el-table-column prop="b" align="center" label="鏍煎瓙" min-width="120" />
-          <el-table-column prop="c" align="center" label="宸ョ▼鍙�" min-width="120" />
-          <el-table-column prop="d" align="center" label="娴佺▼鍗″彿" min-width="120" />
-          <el-table-column prop="e" align="center" label="閽㈠寲鐗堝浘鍙�" min-width="157" />
-          <el-table-column prop="f" align="center" label="灏哄" min-width="120" />
-          <el-table-column prop="g" align="center" label="缁撴潫浠诲姟" min-width="120" />
+        :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" label="杩涚墖鐜荤拑ID" min-width="80" />
+          <el-table-column prop="bigStorageCageFeedTask.targetSlot" align="center" label="鐩爣浣嶇疆" min-width="120" />
+          <!-- <el-table-column prop="task_type" align="center" label="浠诲姟绫诲瀷" min-width="120" />娌℃湁杩斿洖瀛楁 -->
+          <el-table-column prop="bigStorageCageFeedTask.taskState" align="center" label="浠诲姟鐘舵��" min-width="120">
+          <template #default="scope">
+            <el-tag type="success" >{{ scope.row.bigStorageCageFeedTask.taskState==0?"绛夊緟杩涚墖":"杩涜涓�"  }}</el-tag>
+          </template>
+          </el-table-column>
+          <el-table-column prop="bigStorageCageFeedTask.line" align="center" label="绾胯矾" min-width="120" />
+          <el-table-column fixed="right" label="缁撴潫浠诲姟" align="center" width="150">
+            <template #default="scope">
+              <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">瀹屾垚浠诲姟</el-button>
+            </template>
+        </el-table-column>
         </el-table>
       </div>
     </el-card>
     <div style="padding: 10px;display: flex;height:110px;">
-                <div v-for="n in 9" :key="n" id="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#1</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">浣跨敤鐜�</span><span id="zhi">33%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">绌洪棿锛堢墖鏁帮級</span><span id="zhi">555</span>
-                    </el-col>
-                </div>
+            <div v-for="(item, index) in tableDatae" :key="index" id="occupy">  
+               <el-col style="text-align:left;font-weight: bold;">#{{ item.device_id }}</el-col>  
+               <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">  
+                 <span>浣跨敤鐜�</span><span>{{ item.percentage }}</span>  
+               </el-col>  
+               <hr style="width:80%;margin: 0 auto;" />  
+               <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">  
+                 <span>绌洪棽锛堟牸瀛愭暟锛�</span><span>{{ item.count }}</span>  
+               </el-col>  
+             </div>  
     </div>
     <!-- <div id="awatch">
-  <img src="../../assets/lpl.jpg" alt="" style="width: 10%;height: 10%;margin-left: 160px;">
+  <img src="../../assets/cp.png" alt="" style="width: 70%;height: 70%;margin-left: 160px;">
 </div> -->
 <!-- // 鐖剁骇妗� -->
-	<div class="img-list">  
-	<!-- // 娴湪涓婃柟鐨勫浘鐗�  -->
-  <img class="check-img" src="../../assets/lpl.jpg" alt="" style="width: 13%;height: 12%;margin-left: 160px;">
-  <img class="check-imga" src="../../assets/lpl.jpg" alt="" style="width: 13%;height: 12%;margin-left: 160px;">
-	<!-- // 搴曞浘 -->
-  <img class="data-img " src="../../assets/dlpl.png" alt="" style="width: 1200px;height: 400px;margin-left: 130px;margin-top: 50px;">
-	</div>
+<div class="img-dlpl" >
+    <div class="img-car1" :style="'z-index:999;left:247px;top:' + carposition1 + 'px;position:absolute;'">
+      <div v-show="cellshow1" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
+    </div>
+    <div v-show="c1" class="img-car2" :style="'z-index:999;left:704px;top:' + carposition2 + 'px;position:absolute;'">
+      <div v-show="cellshow2" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
+    </div>
+    
+    <div v-show="c2" class="img-car3" :style="'z-index:999;left:247px;top:' + carposition3 + 'px;position:absolute;'">
+      <div v-show="cellshow3" style="margin-top:10px;width:220px;height:5px;background-color:#409EFF;"></div>
+    </div>
+    <div class="img-car4" :style="'z-index:999;left:704px;top:' + carposition4 + 'px;position:absolute;'">
+      <div v-show="cellshow4" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
+    </div>
+    <div v-show="cell1" style="width: 227px;height: 29px;position: absolute;top:55px;left: 465px;">
+      <div  
+      v-for="(item, index) in adjustedRects"  
+      :key="index"  
+      :style="{
+       top: `1px`, width: `227px`,
+      backgroundColor: '#409EFF',
+      height: `height`+ `px`
+       }"  
+    >
+    </div>
+      <!-- <div   
+        v-for="(item, index) in adjustedRects" 
+        height: `${rect.height}px`,  
+        :key="index"   
+        :style="{  
+        width: '227px',  
+        height: '1px',
+        backgroundColor: '#409EFF',  
+        top: '1px'
+      }"  
+      >  
+      </div> -->
+    </div>
+   <!-- <div v-show="cell2" style="width: 227px;height: 29px;position: absolute;top:86px;left: 465px;background-color: #409EFF;">
+    </div>
+     <div v-show="cell3" style="width: 227px;height: 29px;position: absolute;top:117px;left: 465px;background-color: #409EFF;">
+    </div>
+  <div v-show="cell4" style="width: 227px;height: 29px;position: absolute;top:148px;left: 465px;background-color: #409EFF;">
+    </div>
+  <div v-show="cell5" style="width: 227px;height: 29px;position: absolute;top:208px;left: 465px;background-color: #409EFF;">
+    </div>
+  <div v-show="cell6" style="width: 227px;height: 29px;position: absolute;top:238px;left: 465px;background-color: #409EFF;">
+    </div>
+  <div v-show="cell7" style="width: 227px;height: 29px;position: absolute;top:269px;left: 465px;background-color: #409EFF;">
+    </div>
+  <div v-show="cell8" style="width: 227px;height: 29px;position: absolute;top:300px;left: 465px;background-color: #409EFF;">
+    </div> -->
+</div>
   </div>
-<el-dialog v-model="dialogFormVisible" top="12vh" width="85%" title="璇风‘璁ょ幓鐠冧俊鎭�" >
-  <div style="margin-left: 50px;margin-bottom: 10px;">
-    <div style="display: flex;">
-    <p style="margin-top: 4px;">纭鐘舵��:</p>
-    <el-button style="margin-left: 10px;size: mini;" type="success">鍏佽</el-button>
-    <el-button style="margin-left: 10px;size: mini;" type="danger">涓嶅厑璁�</el-button>
-    <p style="margin-left: 60px;margin-top: 4px;">褰撳墠鐘舵��:</p>
-    <div style="margin-top: 4px; margin-left: 10px;">鎵嬪姩</div>
-    <el-button style="margin-left: 10px;size: mini;" type="primary">鍒囨崲</el-button>
-    <el-input  placeholder="璇疯緭鍏ョ幓鐠僫d" style="width: 180px;size: mini;margin-left: 60px;"></el-input>
-    <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
-    <p style="margin-left: 60px;margin-top: 4px;">鐜荤拑id:</p>
-    <el-input  style="width: 180px;size: mini;margin-left: 30px;"></el-input>
-  </div>
-    <div style="display: flex;">
-      <p style="margin-left: 290px;margin-top: 20px;font-weight: bold;">涓婄墖浣�</p>
-      <p style="margin-left: 630px;margin-top: 20px;font-weight: bold;">鎵爜浣�</p>
-    </div>
-    <div style="display: flex;">
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
+  <el-dialog v-model="add" top="20vh" width="60%" title="娣诲姞鐞嗙墖绗间俊鎭�" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="150px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="鐜荤拑ID锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ョ幓鐠僆D" v-model="glassId" 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="灏忕墖鍦ㄦ牸鍐呯殑椤哄簭锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ュ皬鐗囧湪鏍煎唴鐨勯『搴�" v-model="sequence" autocomplete="off" />
+              </el-form-item></div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ユ祦绋嬪崱鍙�" v-model="flowCardId" 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="鐜荤拑绫诲瀷锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ョ幓鐠冪被鍨�" v-model="glassType" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="瀹斤細" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ュ" v-model="width" 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="楂橈細" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ラ珮" v-model="height" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="鍘氬害锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ュ帤搴�" v-model="thickness" 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="閽㈠寲鐗堝浘ID锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ラ挗鍖栫増鍥綢D" v-model="temperingLayoutId" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="閽㈠寲鐗堝浘鐗囧簭锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ラ挗鍖栫増鍥剧墖搴�" v-model="temperingFeedSequence" 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="鍚敤鐘舵�侊細" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ュ惎鐢ㄧ姸鎬�" v-model="state" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item label="鐜荤拑闂撮殭锛�" :required="true" style="width: 20vw;">
+                <el-input placeholder="璇疯緭鍏ョ幓鐠冮棿闅�" v-model="gap" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">
+          纭
+        </el-button>
+        <el-button @click="add = false">鍙栨秷</el-button>
       </div>
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
-      </div>
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
-      </div>
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
-      </div>
-    </div>
-        </div>
-  <template #footer>
-    <div id="dialog-footer">
-      <el-button type="primary" @click="dialogFormVisible = false">
-        纭
-      </el-button>
-      <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
-    </div>
-  </template>
-</el-dialog>
-<el-dialog v-model="dialogFormVisiblea" top="10vh" width="85%" title="璁㈠崟淇℃伅" >
-  <el-input  placeholder="璇疯緭鍏ュ伐绋嬪彿" style="width: 180px;size: mini;"></el-input>
-    <el-button style="margin-left: 10px;size: mini;" type="primary">鏌ヨ</el-button>
-    <el-table  ref="table" style="margin-top: 20px;height: 500px;"
-        @selection-change="handleSelectionChange"
-        :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="ida" align="center" label="鐜荤拑id" min-width="80" />
-          <el-table-column prop="typea" align="center" label="宸ョ▼鍙�" min-width="120" />
-          <el-table-column prop="typea" align="center" label="闀�" min-width="120" />
-          <el-table-column prop="typea" align="center" label="瀹�" min-width="120" />
-          <el-table-column prop="typea" align="center" label="鍘�" min-width="120" />
+    </template>
+  </el-dialog>
+<el-dialog v-model="dialogFormVisiblea" top="5vh" width="90%" title="鐞嗙墖绗间俊鎭�" >
+    <el-table  
+          :data="tableData" 
+          height="600"
+          @expand-change="handleExpandChange"  
+          row-key="id" 
+          default-expand-all
+          :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+        >  
+          <el-table-column type="expand">  
+            <template #default="props">  
+              <div v-if="props.row.bigStorageCageDetails && props.row.bigStorageCageDetails.length">  
+                <el-table  
+                  :data="props.row.bigStorageCageDetails"  
+                  border
+                  style="width: 100%;margin-left: 20px;"  
+                  row-key="id"  
+                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+                >  
+          <!-- <el-table-column prop="menuName" label="浜岀骇鑿滃崟鏍�" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/>   -->
+          <el-table-column prop="glassId" label="鐜荤拑ID" align="center" min-width="100"/>  
+          <el-table-column prop="sequence" align="center" label="灏忕墖鍦ㄦ牸鍐呯殑椤哄簭" min-width="120" />
+          <el-table-column prop="flowCardId" align="center" label="娴佺▼鍗″彿" min-width="120" />
+          <el-table-column prop="glassType" align="center" label="鐜荤拑绫诲瀷" min-width="100" />
+          <el-table-column prop="width" align="center" label="瀹�" min-width="80" />
+          <el-table-column prop="height" align="center" label="楂�" min-width="80" />
+          <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="80" />
+          <el-table-column prop="temperingLayoutId" align="center" label="閽㈠寲鐗堝浘ID" min-width="100" />
+          <el-table-column prop="temperingFeedSequence" align="center" label="閽㈠寲鐗堝浘鐗囧簭" min-width="120" />
+          <el-table-column
+            align="center"
+            label="鍚敤鐘舵��"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusType(scope.row.state)">  
+          {{ getStatusText(scope.row.state) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="gap" align="center" label="鐜荤拑闂撮殭" min-width="80" />
+           <el-table-column fixed="right" label="鎿嶄綔" align="center"  min-width="180">
+            <template #default="scope">
+              <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">鐮存崯</el-button>
+              <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button>
+              <el-button size="mini" type="text" plain @click="opena(scope.row)">鍑虹墖</el-button>
+            </template>
+        </el-table-column>
+                </el-table>  
+              </div>  
+            </template>  
+          </el-table-column>  
+          <el-table-column prop="id" label="澶х悊鐗囩琛↖D" align="center" min-width="100"/>  
+          <el-table-column prop="deviceId" align="center" label="鐞嗙墖绗煎彿" min-width="150" />
+          <el-table-column prop="slot" align="center" label="鏍呮牸鍙�" min-width="150" />
+          <el-table-column
+          align="center"
+            label="鍚敤鐘舵��"
+            min-width="80"
+            prop="enableState"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.enableState === 1 ? 'success' : 'danger'"  
+            @click="toggleEnableState(scope.row)"  
+          >  
+            {{ scope.row.enableState === 1 ? '鍚敤' : '绂佺敤' }}  
+          </el-tag>  
+        </template> 
+          </el-table-column>
+          <el-table-column prop="remainWidth" align="center" label="鍓╀綑瀹藉害" min-width="120" />
+          
+       <el-table-column fixed="right" label="鎿嶄綔" align="center">
+            <template #default="scope">
+              <el-button size="mini" type="text" plain  @click="handleBindRack(scope.row)">娣诲姞</el-button>
+            </template>
+        </el-table-column>
         </el-table>
         <div id="demo-pagination-block">
     <el-pagination
@@ -328,32 +668,62 @@
   </div>
 </el-dialog>
 <el-dialog v-model="dialogFormVisibleb" top="10vh" width="85%" title="鍑虹墖闃熷垪" >
-  <div style="display: flex;">
-  <p style="margin-top: 4px;">闃熷垪鐘舵�侊細</p>
-  <p style="margin-top: 4px;">寮�濮�</p>
+  <!-- <div style="display: flex;">
+  <p style="margin-top: 3px;">闃熷垪鐘舵�侊細</p>
+  <p style="margin-top: 3px;">寮�濮�</p>
     <el-button style="margin-left: 10px;size: mini;" type="danger">鍋滄</el-button>
     <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
-  </div>
+  </div> -->
     <el-table  ref="table" style="margin-top: 20px;height: 500px;"
-        @selection-change="handleSelectionChange"
         :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="id" align="center" label="閾濇id" min-width="80" />
-          <el-table-column prop="type" align="center" label="鐜荤拑id" min-width="120" />
-          <el-table-column prop="type" align="center" label="璁㈠崟缂栧彿" min-width="120" />
-          <el-table-column prop="type" align="center" label="鍒楄〃缂栧彿" min-width="120" />
-          <el-table-column prop="type" align="center" label="绠卞瓙缂栧彿" min-width="120" />
-          <el-table-column prop="type" align="center" label="闀�" min-width="120" />
-          <el-table-column prop="type" align="center" label="瀹�" min-width="120" />
-          <el-table-column prop="type" align="center" label="鐜荤拑鐘舵��" min-width="120" />
-          <el-table-column prop="type" align="center" label="椤哄簭" min-width="120" />
-          <el-table-column prop="type" align="center" label="瀹屾垚" min-width="120" />
-          <el-table-column prop="type" align="center" label="鎿嶄綔" min-width="120" />
+          <el-table-column prop="id" fixed align="center" label="閽㈠寲灏忕墖淇℃伅琛╥d" min-width="150"/>
+          <el-table-column prop="flowcardId" fixed align="center" label="娴佺▼鍗�" min-width="120" />
+          <el-table-column prop="glassType" align="center" label="娴佺▼鍗$幓鐠冪被鍨�" min-width="150" />
+          <el-table-column prop="width" align="center" label="瀹�" min-width="80" />
+          <el-table-column prop="height" align="center" label="楂�" min-width="80" />
+          <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="80" />
+          <el-table-column prop="filmsid" align="center" label="鑶滅郴" min-width="80" />
+          <el-table-column
+            align="center"
+            label="閽㈠寲鏄惁鎺ュ彈妯斁"
+            min-width="150"
+            prop="ishorizontal"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypea(scope.row.ishorizontal)">  
+          {{ getStatusTexta(scope.row.ishorizontal) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="temperingLayoutId" align="center" label="閽㈠寲鐗堝浘id" min-width="120" />
+          <el-table-column prop="temperingFeedSequence" align="center" label="閽㈠寲鐗堝浘鐗囧簭" min-width="120" />
+          <el-table-column prop="xCoordinate" align="center" label="x鍧愭爣" min-width="80" />
+          <el-table-column prop="yCoordinate" align="center" label="y鍧愭爣" min-width="80" />
+          <el-table-column prop="angle" align="center" label="鏃嬭浆瑙掑害锛堥�嗘椂閽堬級" min-width="150" />
+          <el-table-column
+            align="center"
+            label="鐘舵��"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.state)">  
+          {{ getStatusTextb(scope.row.state) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="150">
+            <template #default="scope">
+              <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">鐮存崯</el-button>
+              <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">鍒犻櫎</el-button>
+            </template>
+        </el-table-column>
         </el-table>
 </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{
@@ -374,7 +744,7 @@
 }
 #occupy {
     height: 100%;
-    width: 10%;
+    width: 15%;
     background-color: white;
     margin: 0px 8px 0px 8px;
     border: 1px #EBEEF5 solid;
@@ -401,7 +771,7 @@
      width: 0 !important;height: 0;
    }
    .img-list{
-	
+    
   position:relative;
 }
 .data-img{
@@ -412,7 +782,7 @@
   background: rgba(0, 0, 0, 0);
   opacity: 1;
   border-radius: 0.5rem 0.5rem 0px 0px;
-
+ 
 }
 .check-img{
   position: absolute;
@@ -428,9 +798,87 @@
   width: 3.3125rem;
   height: 2.9375rem;
   top:15rem;
-  right: 29rem;
+  right: 28.5rem;
   z-index: 10;
   
 }
-
+.vertical {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 485px; /* 鍒濆浣嶇疆 */
+    left: 899px; /* 姘村钩灞呬腑 */
+    transform: translateX(-50%);
+    animation: move-vertical 6s infinite; /* 浠庝笂鍒颁笅鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+ 
+@keyframes move-vertical {
+    0% {
+        top: 485px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        top: calc(100% - 210px); /* 浠庝笂鍒颁笅缁撴潫浣嶇疆 */
+    }
+}
+ 
+.img-dlpl{
+  margin-left: 200px;
+  background-image:url('../../assets/dlpl.png');
+  background-repeat: no-repeat;
+    background-attachment: local;
+    min-height: 400px;
+    width: 1200px;
+    max-width: 100%;
+    background-size: 1200px 400px;
+    overflow: hidden;
+    position:relative
+}
+.img-car1{
+  background-image:url('../../assets/lp.png');
+  position: absolute;
+  background-repeat: no-repeat;
+    background-attachment: local;
+    min-height: 200px;
+    width: 200px;
+    max-width: 100%;
+    background-size: 200px 70px;
+    overflow: hidden;
+    position:relative
+}
+.img-car2{
+  background-image:url('../../assets/lpa.png');
+  position: absolute;
+  background-repeat: no-repeat;
+    background-attachment: local;
+    min-height: 200px;
+    width: 200px;
+    max-width: 100%;
+    background-size: 200px 70px;
+    overflow: hidden;
+    position:relative
+}
+.img-car3{
+  background-image:url('../../assets/lp.png');
+  position: absolute;
+  background-repeat: no-repeat;
+    background-attachment: local;
+    min-height: 200px;
+    width: 200px;
+    max-width: 100%;
+    background-size: 200px 70px;
+    overflow: hidden;
+    position:relative
+}
+.img-car4{
+  background-image:url('../../assets/lpa.png');
+  position: absolute;
+  background-repeat: no-repeat;
+    background-attachment: local;
+    min-height: 200px;
+    width: 200px;
+    max-width: 100%;
+    background-size: 200px 70px;
+    overflow: hidden;
+    position:relative
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0