From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 04 三月 2025 08:39:55 +0800
Subject: [PATCH] 修改作业等级名称

---
 src/views/intellectInspect/intelligentLine/index.vue | 2357 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 1,430 insertions(+), 927 deletions(-)

diff --git a/src/views/intellectInspect/intelligentLine/index.vue b/src/views/intellectInspect/intelligentLine/index.vue
index fcb8dd4..51d5f1b 100644
--- a/src/views/intellectInspect/intelligentLine/index.vue
+++ b/src/views/intellectInspect/intelligentLine/index.vue
@@ -1,756 +1,493 @@
 <template>
-  <div class="container">
-    <div class="big-title" @click="goBack()">国泰新华智能巡检系统</div>
-    <div style="font-size: 14px;color: #00ffff;margin-top: 4px">{{present}}</div>
-    <div class="btns">
-    <div class="fullbtn" @click="onScreenfullClick">
-      <div class="toFull">
-        <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>
-      </div>
-      <div>全屏</div>
-    </div>
-    <div class="backBtn" @click="goBack()">
-      <img src="../../../assets/loginPage/back-icon.png">
-      <div>退出</div>
-    </div>
-    </div>
-    <div class="blocks">
-      <div class="star-pic">
-        <div class="star-bg"><img src="../../../assets/loginPage/star-bg.png"></div>
-        <div class="star"><img src="../../../assets/loginPage/device-pic.png"></div>
-      </div>
-      <div class="line-map" v-if="data&&data.length>0">
-        <div class="line-item" v-for="(item,index) in data" :key="index">
-          <div class="picbox">
-            <img src="../../../assets/loginPage/equipment.jpg">
-            <p>RFID: <span>{{item.rfid}}</span></p>
-            <p>位置: <span>{{item.region.toString()}}</span></p>
-          </div>
-          <div class="area-head" :class="item.points.some(e=>e.reportResult == null)?'fadeBorder':''">
-            <div class="indicator" :class="item.points.some(e=>e.reportResult == null)?'someUndone':(item.points.some(e=>e.reportResult == 1)?'somewarning':'')">
-              <div class="indi-dot"></div>
-<!--              <div class="indi-pulse"></div>-->
-<!--              <div class="indi-pulse1"></div>-->
+    <div class="container" id="screenFull">
+        <div class="big-title" @click="goBack()">智能巡检系统</div>
+        <div style="height: 20px;font-size: 14px;line-height: 20px; color: #00ffff; margin-top: 4px">{{ present }}</div>
+        <div class="btns">
+<!--            <div class="fullbtn" @click="onScreenfullClick">-->
+<!--                <div class="toFull">-->
+<!--                    <i class="iconfont" :title="全屏" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>-->
+<!--                  <el-icon>-->
+<!--                    <FullScreen v-if="isScreenfull"/>-->
+<!--                    <Close v-else/>-->
+<!--                  </el-icon>-->
+<!--                </div>-->
+<!--                <div>全屏</div>-->
+<!--            </div>-->
+            <div class="backBtn" @click="goBack()">
+                <img src="../../../assets/loginPage/back-icon.png"/>
+                <div>退出</div>
             </div>
-            <div class="arrow" v-if="item.points.some(e=>e.reportResult != null)">
-
-            </div>
-            <div class="top-line" :class="item.points.some(e=>e.reportResult == null)?'fadeLine':''"></div>
-          </div>
-          <div class="more-info">
-            <div class="item" v-for="(t,i) in item.points" :key="i" :class="t.reportResult == null?'undone':(t.reportResult==1?'warning':'')">
-                <section>
-                  <div class="dot"></div>
-                  <div class="pulse"></div>
-                  <div class="pulse1"></div>
-                </section>
-                <div>
-                  <div><span>巡检点:</span><span>{{t.point}}</span></div>
-                  <div><span>巡检状态:</span><span>{{t.pointCheckStatus==1?'未完成':'已完成'}}</span></div>
-                  <div v-if="t.reportResult!=null"><span>巡检指标:</span><span>{{t.quotaContent}}</span></div>
-                  <div v-if="(t.dataReportType==2 || t.dataReportType==3)&&t.secondReferenceResult"><span>参数:</span><span class="target">{{t.secondReferenceResult+t.quotaUnit}}</span></div>
-                  <div><span>巡检结果:</span><span class="target">{{t.reportResult==null?'--':(t.reportResult==0?'正常':'异常')}}</span></div>
-                </div>
-            </div>
-          </div>
         </div>
-        <div class="line-item finish">
-          <div class="picbox"></div>
-          <div class="area-head">
-            <div class="finish-point">
-              <div>
-                完成巡检
+        <div class="blocks">
+            <div>
+            <div class="warning-part" ref="draggableElement">
+              <div class="warn-tit">异常警报:</div>
+              <div class="warn-msg" v-if="excepOrder && excepOrder.length>0">
+                <div class="warn-item" v-for="(item,index) in excepOrder" :key="index">
+                  <div class="i-tit">
+                    编号{{item.pointCode}} 巡检异常!
+                  </div>
+                  <div v-if="item.dataReportType == 2 || item.dataReportType == 3">
+                    正常值:<span>{{(item.secondReferenceSign==1?'>':'>=') + item.secondReferenceValue + ',' + (item.thirdReferenceSign==3?'<':'<=') + item.thirdReferenceValue}}</span>
+                  </div>
+                  <div>
+                    巡检值:
+                    <span v-if="item.dataReportType == 1">{{ item.firstReferenceResult==1?'正常':item.firstReferenceResult==2?'异常':'备'}}</span>
+                    <span v-if="item.dataReportType == 2">{{ item.secondReferenceResult}}</span>
+                  </div>
+                  <div>
+                    已通知负责人:<span>{{item.hiddenDangerHandlerName}}</span>
+                  </div>
+                  <div>
+                    负责人电话:<span>{{item.hiddenDangerHandlerPhone}}</span>
+                  </div>
+                  <div>
+                    工单回执状态:<span>{{item.handlerStatus==1?'待响应':item.handlerStatus==2?'标记误报':item.handlerStatus==3?'自查处理中':item.handlerStatus==4?'已移交上报':item.handlerStatus==5?'待验收':'已完成'}}</span>
+                  </div>
+                </div>
+              </div>
+              <div v-else>
+                暂无异常警报
               </div>
             </div>
-          </div>
+            <div class="star-pic">
+                <dv-decoration-12 scanDur="5" haloDur="4" class="scan"/>
+                <div class="star-bg"><img src="../../../assets/loginPage/star-bg.png" /></div>
+                <div class="star"><img src="../../../assets/loginPage/device-pic.png" /></div>
+            </div>
+            <div class="line-map" v-if="dataList && dataList.length > 0">
+                <div class="line-item" v-for="(item, index) in dataList" :key="index">
+                    <div class="picbox">
+                        <div class="imgbox">
+                            <img :src="item.rfidImage==null?defaultImg:item.rfidImage"/>
+                        </div>
+                        <p>
+                            RFID: <span>{{ item.rfid }}</span>
+                        </p>
+                        <p>
+                            位置: <span>{{ item.region.toString() }}</span>
+                        </p>
+                    </div>
+                    <div class="area-head">
+                        <div class="indicator" :class="item.points.some((e) => e.reportResult == 1) ? 'somewarning' : (item.points.some((e) => e.reportResult == null) ? 'someUndone' : '')">
+                            <div class="indi-dot"></div>
+                            <!--              <div class="indi-pulse"></div>-->
+                            <!--              <div class="indi-pulse1"></div>-->
+                        </div>
+                        <div class="arrow" v-if="item.points.some((e) => e.reportResult != null)"></div>
+                        <div class="top-line" :class="item.points.some((e) => e.reportResult !== null) ? '' : 'fadeLine'"></div>
+                    </div>
+                    <div class="more-info">
+                        <div class="item" v-for="(t, i) in item.points" :key="i" :class="t.reportResult == null ? 'undone' : t.reportResult == 1 ? 'warning' : ''">
+                            <section>
+                                <div class="dot"></div>
+                                <div class="pulse"></div>
+                                <div class="pulse1"></div>
+                            </section>
+                            <div :class="t.reportResult == null ? 'noBorder' : t.reportResult == 1 ? 'redBorder' : ''">
+                                <div>
+                                    <span>巡检点:</span><span>{{ t.point }}</span>
+                                </div>
+                                <div>
+                                    <span>巡检状态:</span><span>{{ t.pointCheckStatus == 1 ? '未完成' : '已完成' }}</span>
+                                </div>
+                                <div v-if="t.reportResult != null">
+                                    <span>巡检指标:</span><span>{{ t.quotaContent }}</span>
+                                </div>
+                                <div v-if="(t.dataReportType == 2 || t.dataReportType == 3) && t.secondReferenceResult">
+                                    <span>参数:</span><span class="target">{{ t.secondReferenceResult + t.quotaUnit }}</span>
+                                </div>
+                                <div>
+                                    <span>巡检结果:</span><span class="target">{{ t.reportResult == null ? '--' : t.reportResult == 0 ? '正常' : t.reportResult == 1 ? '异常' : '备' }}</span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="line-item finish">
+                    <div class="picbox"></div>
+                    <div class="area-head">
+                        <div class="finish-point">
+                            <div>完成巡检</div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="tip" v-else>抱歉,暂时查询不到巡检路线...</div>
+            </div>
         </div>
-      </div>
-      <div class="tip" v-else>
-        抱歉,暂时查询不到巡检路线...
-      </div>
     </div>
-  </div>
 </template>
 
 <script lang="ts">
 import screenfull from 'screenfull';
 import { lineApi } from '/@/api/intelligentLine';
-import { toRefs, reactive, ref, onMounted, onUnmounted } from 'vue';
+import {toRefs, reactive, ref, onMounted, onUnmounted, computed, nextTick, onActivated} from 'vue';
+import {useRoute} from 'vue-router';
 import { storeToRefs } from 'pinia';
 import { initBackEndControlRoutes } from '/@/router/backEnd';
 import { Session } from '/@/utils/storage';
 import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
 import { ElTable } from 'element-plus';
 import { FormInstance, FormRules, ElMessage } from 'element-plus';
-import {useUserInfo} from "/@/stores/userInfo";
+import { useUserInfo } from '/@/stores/userInfo';
 
 // 定义接口来定义对象的类型
 interface stateType {
-  present: string,
-  isScreenfull: boolean,
-  path: string,
-  socket: any,
-  socketData: string,
-  data: Array<any>
+    present: string;
+    path: string;
+    socket: any;
+    socketData: string;
+    data: Array<any>;
+    excepOrder: Array<any>;
+    id: string;
+    defaultImg: string;
+    isDragging:boolean
+    initialX:number|null
+    initialY:number|null
+    xOffset:number|null
+    yOffset:number|null
+    timer: null | any
 }
 export default {
-  name: 'intelligentLine',
-  components: {},
-  setup() {
-    const state = reactive<stateType>({
-      present: '',
-      isScreenfull: false,
-      path: "http://192.168.0.29:8008/ws/test/",
-      socketData: '',
-      socket: null,
-      data: []
-    });
-
-    onMounted(()=>{
-      setInterval(() => {
-        state.present = new Date().toLocaleString()
-      }, 1000)
-      init()
-      // getLine()
-    })
-
-    // socket获取数据
-    const init=()=>{
-      if(typeof(window.WebSocket) === "undefined"){
-        alert("您的浏览器不支持socket")
-      }else{
-        // 实例化socket
-        var url = state.path + '80938081556545536'
-        url = url.replace("https","ws").replace("http","ws");
-        console.log(url,'获取地址')
-        state.socket = new window.WebSocket(url)
-        // 监听socket连接
-        state.socket.onopen=()=>{
-          console.log("socket连接成功")
-        }
-        // 监听socket错误信息
-        state.socket.onerror = ()=>{
-          console.log("socket连接错误")
-        }
-        // 监听socket消息
-        state.socket.onmessage = (msg)=>{
-          console.log(msg,'msg')
-          console.log(typeof msg.data,'type')
-          if(msg.data =='连接成功') return
-          state.socketData = msg.data
-          console.log(JSON.parse(state.socketData),'------------------',)
-          if(typeof JSON.parse(state.socketData) == Array){
-            state.data = JSON.parse(state.socketData)
-            console.log(state.data)
-          }
-          // console.log(msg,'msg')
-          // console.log(this.data,'data-------')
-        }
-      }
-    }
-
-    const send= ()=> {
-      state.socket.send(params)
-    }
-
-
-    // 接口获取数据
-    const getLine = async()=>{
-      let res = await lineApi().getLine({ id: '80647416891768832' });
-      if (res.data.code === '200') {
-        console.log(res.data.data,'获取巡检点')
-        state.data = res.data.data
-        console.log(state.data,'---')
-      } else {
-        ElMessage({
-          type: 'warning',
-          message: res.data.msg
+    name: 'intelligentLine',
+    components: {},
+    setup() {
+        const userInfo = useUserInfo();
+        const { userInfos } = storeToRefs(userInfo);
+        const route = useRoute();
+        const state = reactive<stateType>({
+            present: '',
+            path: '',
+            socketData: '',
+            socket: null,
+            data: [],
+            excepOrder: [],
+            id: '',
+            defaultImg: new URL('../../../assets/default-img.jpg',import.meta.url).href,
+            isDragging: false,
+            initialX: 0,
+            initialY: 0,
+            xOffset: 0,
+            yOffset: 0,
+            timer: null
         });
-      }
+
+        onMounted(() => {
+            state.timer = setInterval(() => {
+                state.present = new Date().toLocaleString();
+            }, 1000);
+            let curId = route.query.id
+            state.id = curId.toString()
+            getLine(state.id)
+            getUrl(state.id)
+            draggableElement.value.addEventListener('mousedown', handleMouseDown);
+            draggableElement.value.addEventListener('mousemove', handleMouseMove);
+            draggableElement.value.addEventListener('mouseup', handleMouseUp);
+        });
+      onActivated(()=>{
+        onScreenfullClick();
+      })
+        const draggableElement = ref(null);
+        const dataList = computed(() => {
+            return userInfos.value.dataList;
+        });
+
+        // 获取url
+
+        const getUrl =async (id:string)=>{
+            const res = await lineApi().getUrl();
+            if (res.data.code === '200') {
+                state.path = 'http://' + res.data.data.ip + ':' + res.data.data.port + '/ws/test/'
+                if (typeof WebSocket === 'undefined') {
+                    alert('您的浏览器不支持socket');
+                } else {
+                    // 实例化socket
+                    let uid =  userInfos.value.uid.toString()
+                    var url = state.path + uid + '*' + id;
+                    url = url.replace('https', 'ws').replace('http', 'ws');
+                    state.socket = new WebSocket(url);
+                    // 监听socket连接
+                    state.socket.onopen = () => {
+                        console.log('socket连接成功');
+                    };
+                    // 监听socket错误信息
+                    state.socket.onerror = () => {
+                        console.log('socket连接错误');
+                    };
+                    // 监听socket消息
+                    state.socket.onmessage = (msg) => {
+                      console.log(msg.data,'msg.data')
+                      console.log(msg.data.rfidInfos,'rfidInfos')
+                        if (msg.data === '连接成功') return;
+                        userInfos.value.dataList = JSON.parse(msg.data).rfidInfos;
+                        state.excepOrder = JSON.parse(msg.data).excepOrder;
+                    };
+                }
+            } else {
+                ElMessage({
+                    type: 'warning',
+                    message: res.data.msg
+                });
+            }
+        }
+
+        // const send = () => {
+        //     state.socket.send(params);
+        // };
+
+        // 接口获取数据
+        const getLine = async (id:string) => {
+            let res = await lineApi().getLine({ id: id });
+            if (res.data.code === '200') {
+                userInfos.value.dataList = res.data.data.rfidInfos
+              if(res.data.data.excepOrder){
+                state.excepOrder = res.data.data.excepOrder
+              }else{
+                state.excepOrder = []
+              }
+            } else {
+                ElMessage({
+                    type: 'warning',
+                    message: res.data.msg
+                });
+            }
+        };
+
+        // 全屏
+        const onScreenfullClick = () => {
+            const element = document.getElementById('screenFull')
+            if (!screenfull.isEnabled) {
+                ElMessage.warning('暂不不支持全屏');
+                return false;
+            }
+            screenfull.toggle(element);
+        };
+
+        // 返回
+        const goBack = () => {
+            window.history.go(-1);
+        };
+
+      const handleMouseDown = (e) => {
+        state.initialX = e.clientX - state.xOffset;
+        state.initialY = e.clientY - state.yOffset;
+        state.isDragging = true;
+      };
+
+      const handleMouseMove = (e) => {
+        if (state.isDragging) {
+          state.xOffset = e.clientX - state.initialX;
+          state.yOffset = e.clientY - state.initialY;
+
+          draggableElement.value.style.transform = `translate3d(${state.xOffset}px, ${state.yOffset}px, 0)`;
+        }
+      };
+
+      const handleMouseUp = () => {
+        state.isDragging = false;
+      };
+
+        // 页面关闭处理
+        onUnmounted(() => {
+            // 销毁监听
+            nextTick(()=>{
+                state.socket.onclose = () => {
+                    console.log('socket已经关闭');
+                };
+            })
+            clearInterval(state.timer)
+          draggableElement.value.removeEventListener('mousedown', handleMouseDown);
+          draggableElement.value.removeEventListener('mousemove', handleMouseMove);
+          draggableElement.value.removeEventListener('mouseup', handleMouseUp);
+        });
+        return {
+            dataList,
+            draggableElement,
+            goBack,
+            onScreenfullClick,
+            ...toRefs(state)
+        };
     }
-
-    // 全屏
-    const onScreenfullClick=()=>{
-       if (!screenfull.isEnabled) {
-         ElMessage.warning('暂不不支持全屏');
-         return false;
-       }
-       screenfull.toggle();
-       screenfull.on('change', () => {
-         if (screenfull.isFullscreen) {
-           state.isScreenfull = true
-         }
-         else{
-           state.isScreenfull = false
-         }
-       });
-     }
-
-     // 返回
-     const goBack = ()=>{
-       window.history.go(-1)
-     }
-
-    // 页面关闭处理
-    onUnmounted( ()=> {
-    // 销毁监听
-      state.socket.onclose = ()=>{
-        console.log("socket已经关闭")
-      }
-    })
-    return{
-      goBack,
-      onScreenfullClick,
-      ...toRefs(state)
-    }
-  }
-}
-// export default {
-//   name: 'NewForm',
-//   props: {
-//
-//   },
-//   data(){
-//     return{
-//       present: '',
-//       isScreenfull: false,
-//       path: "http://192.168.0.29:8008/ws/test/",
-//       socket: null,
-//       socketData: '',
-//       data: []
-//     }
-//   },
-//   created() {
-//     setInterval(() => {
-//       this.present = new Date().toLocaleString()
-//     }, 1000)
-//   },
-//   mounted () {
-//     // 初始化
-//     this.init()
-//     // this.getLine()
-//   },
-//   methods:{
-//     goBack(){
-//       window.history.go(-1)
-//     },
-//
-//     async getLine (){
-//       let res = await lineApi().getLine({ id: '80647416891768832' });
-//       if (res.data.code === '200') {
-//         console.log(res.data.data,'获取巡检点')
-//         this.data = res.data.data
-//         console.log(this.data,'---')
-//       } else {
-//         ElMessage({
-//           type: 'warning',
-//           message: res.data.msg
-//         });
-//       }
-//     },
-//
-//     // 全屏点击时
-//     onScreenfullClick(){
-//       const t = this
-//       if (!screenfull.isEnabled) {
-//         ElMessage.warning('暂不不支持全屏');
-//         return false;
-//       }
-//       screenfull.toggle();
-//       screenfull.on('change', () => {
-//         if (screenfull.isFullscreen) {
-//           t.isScreenfull = true
-//         }
-//         else{
-//           t.isScreenfull = false
-//         }
-//       });
-//     },
-//
-//     // socket获取数据
-//     init: function () {
-//       if(typeof(window.WebSocket) === "undefined"){
-//         alert("您的浏览器不支持socket")
-//       }else{
-//         // 实例化socket
-//         var url = this.path + '80938081556545536'
-//         url = url.replace("https","ws").replace("http","ws");
-//         console.log(url,'获取地址')
-//         this.socket = new window.WebSocket(url)
-//         // 监听socket连接
-//         this.socket.onopen = this.open
-//         // 监听socket错误信息
-//         this.socket.onerror = this.error
-//         // 监听socket消息
-//         this.socket.onmessage = this.getMessage
-//       }
-//     },
-//     open: function () {
-//       console.log("socket连接成功")
-//     },
-//     error: function () {
-//       console.log("连接错误")
-//     },
-//     getMessage: function (msg) {
-//       console.log(typeof msg.data,'type')
-//       if(msg.data =='连接成功') return
-//       this.socketData = msg.data
-//       console.log(JSON.parse(this.socketData),'------------------',)
-//       if(typeof JSON.parse(this.socketData) == Array){
-//         this.data = JSON.parse(this.socketData)
-//         console.log(this.data)
-//       }
-//       // console.log(msg,'msg')
-//       // console.log(this.data,'data-------')
-//     },
-//     send: function () {
-//       this.socket.send(params)
-//     },
-//     close: function () {
-//       console.log("socket已经关闭")
-//     }
-//   },
-//   destroyed () {
-//     // 销毁监听
-//     this.socket.onclose = this.close
-//   }
-// }
+};
 </script>
 
-<!-- Add "scoped" attribute to limit CSS to this component only -->
+<!-- Add "scoped" attribute to limit CSS to this components only -->
 <style scoped lang="scss">
-  @keyframes warn {
-    0% {
-      transform: scale(0.3);
-      -webkit-transform: scale(0.3);
-      opacity: 0.0;
-    }
-
-    25% {
-      transform: scale(0.3);
-      -webkit-transform: scale(0.3);
-      opacity: 0.1;
-    }
-
-    50% {
-      transform: scale(0.5);
-      -webkit-transform: scale(0.5);
-      opacity: 0.3;
-    }
-
-    75% {
-      transform: scale(0.8);
-      -webkit-transform: scale(0.8);
-      opacity: 0.6;
-    }
-
-    100% {
-      transform: scale(1);
-      -webkit-transform: scale(1);
-      opacity: 0.0;
-    }
-  }
-
-  @keyframes warn1 {
-    0% {
-      transform: scale(0.3);
-      -webkit-transform: scale(0.3);
-      opacity: 0.0;
-    }
-
-    25% {
-      transform: scale(0.3);
-      -webkit-transform: scale(0.3);
-      opacity: 0.1;
-    }
-
-    50% {
-      transform: scale(0.3);
-      -webkit-transform: scale(0.3);
-      opacity: 0.3;
-    }
-
-    75% {
-      transform: scale(0.5);
-      -webkit-transform: scale(0.5);
-      opacity: 0.6;
-    }
-
-    100% {
-      transform: scale(0.8);
-      -webkit-transform: scale(0.8);
-      opacity: 0.0;
-    }
-  }
-  
-  @keyframes circle {
-    0% {
-      transform: rotate(0);
-      -webkit-transform: rotate(0);
-    }
-    100% {
-      transform: rotate(360deg);
-      -webkit-transform: rotate(360deg);
-    }
-  }
-  @keyframes run {
-    to {
-      transform: translateX(calc((100vw - 180px)/ 6 - 80px));
-    }
-  }
-  .container{
-    width: 100%;
-    height: 100%;
-    position: relative;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    background: url("../../../assets/loginPage/map-bg.jpg") no-repeat center;
-    background-size: 100% 100%;
-    .big-title{
-      height: 40px;
-      line-height: 40px;
-      font-size: 28px;
-      font-weight: bold;
-      margin: 10px 0 20px;
-      text-align: center;
-      color: #fff;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-    }
-    .btns{
-      position: absolute;
-      z-index: 99999;
-      right: 60px;
-      top: 40px;
-      display: flex;
-      align-items: center;
-      .fullbtn{
-        cursor: pointer;
-        display: flex;
-        align-items: center;
-        margin-right: 20px;
-        .toFull{
-          font-weight: bolder;
-          color: #00FFFF;
-          margin-right: 10px;
+    @media screen and (min-width: 1366px) {
+        .big-title {
+            font-size: 28px;
+            margin: 10px 0 20px;
         }
-        div{
-          font-size: 16px;
-          color: #00FFFF;
-        }
-      }
-
-      .backBtn{
-        cursor: pointer;
-        display: flex;
-        align-items: center;
-        img{
-          width: 14px;
-          height: 14px;
-          margin-right: 10px;
-        }
-        div{
-          font-size: 16px;
-          color: #00FFFF;
-        }
-      }
-    }
-    .blocks{
-      width: 100%;
-      height: calc(100% - 90px);
-      padding: 20px 40px 30px;
-      box-sizing: border-box;
-      display: flex;
-      align-items: flex-start;
-      overflow: hidden;
-      overflow-x: scroll;
-      overflow-y: scroll;
-
-      .line-map{
-        display: flex;
-        justify-content: center;
-        align-items: flex-start;
-
-        .line-item{
-          width: calc((100vw - 180px)/ 6);
-          padding-left: 20px;
-          display: flex;
-          flex-direction: column;
-          align-items: flex-start;
-          margin-right: 20px;
-          flex-wrap: nowrap;
-
-          .picbox{
-            width: 100%;
-            height: calc((100vh - 130px)/ 5);
-            padding: 10px;
-            margin-bottom: 40px;
-            box-sizing: border-box;
-
-            img{
-              display: block;
-              width: 100%;
-              height: 100px;
-              margin-bottom: 10px;
-              border-radius: 4px;
+        .btns {
+            position: absolute;
+            z-index: 99999;
+            right: 60px;
+            top: 40px;
+            div {
+                font-size: 16px;
+                color: #00ffff;
             }
-            p{
-              font-size: 14px;
-              color: rgba(255,255,255,.8);
-              margin-top: 10px;
-              span{
-                color: #fff;
-              }
-            }
-          }
-          .area-head{
-            position: relative;
-            width: 100%;
-            height: 80px;
-            padding-left: 38px;
-            border-left: 1px solid #36FCFC;
+        }
+        .line-item {
+            width: calc((100vw - 40px) / 6);
+            padding-left: 20px;
+            display: flex;
+            flex-direction: column;
+            align-items: flex-start;
+            margin-right: 20px;
+            flex-wrap: nowrap;
 
-            .indicator{
-              width: 36px;
-              height: 36px;
-              border-radius: 50%;
-              position: absolute;
-              border: 1px solid #00ff66;
-              top: -18px;
-              left: -18px;
+            .picbox {
+                width: 100%;
+                height: 200px;
+                padding: 10px;
+                margin-bottom: 20px;
+                box-sizing: border-box;
+                .imgbox{
+                    width: 100%;
+                    height: 120px;
+                    position: relative;
+                    margin-bottom: 10px;
+                    border-radius: 4px;
+                    overflow: hidden;
+                    img {
+                        display: block;
+                        width: 100%;
+                        height: auto;
+                        position: absolute;
+                        top: 0;
+                        left: 0;
+                        bottom: 0;
+                        right: 0;
+                        margin: auto;
+                    }
+                }
 
-              .indi-dot {
-                position: absolute;
-                width: 20px;
-                height: 20px;
-                left: 7px;
-                top: 7px;
-                -webkit-border-radius: 50%;
-                -moz-border-radius: 50%;
-                border: 1px solid #00ff66;
-                border-radius: 50%;
-                background-color: #00ff66;
-                z-index: 2;
-              }
-              .indi-pulse {
-                position: absolute;
-                width: 56px;
-                height: 56px;
-                left: -11px;
-                top: -11px;
-                border: 1px solid #00ff66;
-                -webkit-border-radius: 50%;
-                -moz-border-radius: 50%;
-                border-radius: 50%;
-                z-index: 1;
-                opacity: 0;
-                -webkit-animation: warn 2s ease-out;
-                -moz-animation: warn 2s ease-out;
-                animation: warn 2s ease-out;
-                -webkit-animation-iteration-count: infinite;
-                -moz-animation-iteration-count: infinite;
-                animation-iteration-count: infinite;
-                box-shadow: 1px 1px 30px #00ff66;
-              }
-              .indi-pulse1 {
-                position: absolute;
-                width: 56px;
-                height: 56px;
-                left: -11px;
-                top: -11px;
-                border: 1px solid #3399ff;
-                -webkit-border-radius: 50%;
-                -moz-border-radius: 50%;
-                border-radius: 50%;
-                z-index: 1;
-                opacity: 0;
-                -webkit-animation: warn1 2s ease-out;
-                -moz-animation: warn1 2s ease-out;
-                animation: warn1 2s ease-out;
-                -webkit-animation-iteration-count: infinite;
-                -moz-animation-iteration-count: infinite;
-                animation-iteration-count: infinite;
-                box-shadow: 1px 1px 30px #3399ff;
-              }
-            }
-            .someUndone{
-                width: 36px;
-                height: 36px;
-                border-radius: 50%;
-                position: absolute;
-                border: 1px solid #ccc;
-                top: -18px;
-                left: -18px;
-
-                .indi-dot {
-                  position: absolute;
-                  width: 20px;
-                  height: 20px;
-                  left: 7px;
-                  top: 7px;
-                  -webkit-border-radius: 50%;
-                  -moz-border-radius: 50%;
-                  border: 1px solid #ccc;
-                  border-radius: 50%;
-                  background-color: #ccc;
-                  z-index: 2;
+                p {
+                    font-size: 14px;
+                    white-space: nowrap;
+                    color: rgba(255, 255, 255, 0.8);
+                    margin-bottom: 4px;
+                    span {
+                        color: #fff;
+                    }
                 }
             }
-            .somewarning{
-              width: 36px;
-              height: 36px;
-              border-radius: 50%;
-              position: absolute;
-              border: 1px solid #ff0000;
-              top: -18px;
-              left: -18px;
+        }
+        .item {
+            width: calc((100vw - 40px) / 6);
+            height: calc((100vh - 130px) / 5);
+            padding: 0 40px 20px 50px;
+            position: relative;
+            box-sizing: border-box;
+            border-left: 1px solid #36fcfc;
 
-              .indi-dot {
-                position: absolute;
-                width: 20px;
-                height: 20px;
-                left: 7px;
-                top: 7px;
-                -webkit-border-radius: 50%;
-                -moz-border-radius: 50%;
-                border: 1px solid #ff0000;
-                border-radius: 50%;
-                background-color: #ff0000;
-                z-index: 2;
-              }
-            }
-            .arrow{
-              position: absolute;
-              width: 58px;
-              height: 20px;
-              left: 38px;
-              top: -10px;
-              background: url('../../../assets/loginPage/arrow-r.png') 0 / cover no-repeat;
-              animation: run 2s steps(4) 0s infinite;
-            }
-            .top-line{
-              width: 100%;
-              border-top: 2px solid #36FCFC;
-            }
-            .fadeLine{
-              width: 100%;
-              border-top: 1px solid #ccc;
-            }
-          }
-          .fadeBorder{
-            border-left: 1px solid rgba(54,252,252,.4);
-          }
-          .more-info{
-            width: 100%;
-
-            .item{
-              width: calc((100vw - 120px)/ 6);
-              height: calc((100vh - 130px)/ 5);
-              padding: 0 50px 20px;
-              position: relative;
-              box-sizing: border-box;
-              border-left: 1px solid #36FCFC;
-
-              &:last-of-type{
+            &:last-of-type {
                 border: none;
-              }
+            }
 
-              section{
+            section {
                 width: 24px;
                 height: 24px;
                 border-radius: 50%;
                 position: absolute;
-                border: 1px solid rgba(0,225,255,.6);
+                border: 1px solid rgba(0, 114, 255, 0.6);
                 top: -12px;
                 left: 10px;
 
                 .dot {
-                  position: absolute;
-                  width: 12px;
-                  height: 12px;
-                  left: 5px;
-                  top: 5px;
-                  -webkit-border-radius: 50%;
-                  -moz-border-radius: 50%;
-                  border: 1px solid #0072ff;
-                  border-radius: 50%;
-                  background-color:#00e1ff;
-                  z-index: 2;
+                    position: absolute;
+                    width: 12px;
+                    height: 12px;
+                    left: 5px;
+                    top: 5px;
+                    -webkit-border-radius: 50%;
+                    -moz-border-radius: 50%;
+                    border: 1px solid #0072ff;
+                    border-radius: 50%;
+                    background-color: #0072ff;
+                    z-index: 2;
                 }
                 .pulse {
-                  position: absolute;
-                  width: 48px;
-                  height: 48px;
-                  left: -13px;
-                  top: -13px;
-                  border: 1px solid #00e1ff;
-                  -webkit-border-radius: 50%;
-                  -moz-border-radius: 50%;
-                  border-radius: 50%;
-                  z-index: 1;
-                  opacity: 0;
-                  -webkit-animation: warn 2s ease-out;
-                  -moz-animation: warn 2s ease-out;
-                  animation: warn 2s ease-out;
-                  -webkit-animation-iteration-count: infinite;
-                  -moz-animation-iteration-count: infinite;
-                  animation-iteration-count: infinite;
-                  box-shadow: 1px 1px 30px #00e1ff;
+                    position: absolute;
+                    width: 48px;
+                    height: 48px;
+                    left: -13px;
+                    top: -13px;
+                    border: 1px solid #0072ff;
+                    -webkit-border-radius: 50%;
+                    -moz-border-radius: 50%;
+                    border-radius: 50%;
+                    z-index: 1;
+                    opacity: 0;
+                    -webkit-animation: warn 2s ease-out;
+                    -moz-animation: warn 2s ease-out;
+                    animation: warn 2s ease-out;
+                    -webkit-animation-iteration-count: infinite;
+                    -moz-animation-iteration-count: infinite;
+                    animation-iteration-count: infinite;
+                    box-shadow: 1px 1px 30px #0072ff;
                 }
                 .pulse1 {
-                  position: absolute;
-                  width: 48px;
-                  height: 48px;
-                  left: -13px;
-                  top: -13px;
-                  border: 1px solid #00e1ff;
-                  -webkit-border-radius: 50%;
-                  -moz-border-radius: 50%;
-                  border-radius: 50%;
-                  z-index: 1;
-                  opacity: 0;
-                  -webkit-animation: warn1 2s ease-out;
-                  -moz-animation: warn1 2s ease-out;
-                  animation: warn1 2s ease-out;
-                  -webkit-animation-iteration-count: infinite;
-                  -moz-animation-iteration-count: infinite;
-                  animation-iteration-count: infinite;
-                  box-shadow: 1px 1px 30px #00e1ff;
+                    position: absolute;
+                    width: 48px;
+                    height: 48px;
+                    left: -13px;
+                    top: -13px;
+                    border: 1px solid #0072ff;
+                    -webkit-border-radius: 50%;
+                    -moz-border-radius: 50%;
+                    border-radius: 50%;
+                    z-index: 1;
+                    opacity: 0;
+                    -webkit-animation: warn1 2s ease-out;
+                    -moz-animation: warn1 2s ease-out;
+                    animation: warn1 2s ease-out;
+                    -webkit-animation-iteration-count: infinite;
+                    -moz-animation-iteration-count: infinite;
+                    animation-iteration-count: infinite;
+                    box-shadow: 1px 1px 30px #0072ff;
                 }
-              }
-              &>div{
+            }
+            & > div {
                 padding: 10px 0;
                 transform: translateY(-14px);
                 border-radius: 8px;
-                background-image: linear-gradient(to right,rgba(8,109,209,.4),rgba(11,255,255,.2));
-                border: 1px solid rgba(54,252,252,.6);
+                background-image: linear-gradient(to right, rgba(8, 109, 209, 0.4), rgba(11, 255, 255, 0.2));
+                border: 1px solid rgba(54, 252, 252, 1);
                 display: flex;
                 flex-direction: column;
                 justify-content: center;
 
-                div{
-                  margin-bottom: 5px;
-                  &:last-of-type{
-                    margin-bottom: none;
-                  }
-                  span{
-                    display: inline-block;
-                    width: 50%;
-                    font-size: 13px;
-                    color: #fff;
-                    text-align: left;
-
-                    &:first-of-type{
-                      text-align: right;
-                      color: rgba(255,255,255,.8);
+                div {
+                    margin-bottom: 5px;
+                    display: flex;
+                    align-items: flex-start;
+                    &:last-of-type {
+                        margin-bottom: 0;
                     }
-                  }
-                }
-              }
+                    span {
+                        width: 50%;
+                        font-size: 13px;
+                        color: #fff;
+                        text-align: left;
+                        word-break: break-all;
 
-              p{
+                        &:first-of-type {
+                            text-align: right;
+                            color: rgba(255, 255, 255, 0.8);
+                        }
+                    }
+                }
+            }
+            .noBorder{
+                border: 1px solid rgba(54, 252, 252, 0.1);
+            }
+            .redBorder{
+                border: 1px solid #ff0000;
+            }
+            p {
                 width: 140px;
                 height: 50px;
                 font-size: 18px;
@@ -758,72 +495,20 @@
                 text-align: center;
                 color: #fff;
                 border-radius: 8px;
-                background-image: linear-gradient(to right,rgba(11,255,255,.2),rgba(8,109,209,.4));
-                border: 1px solid rgba(54,252,252,.6);
-              }
+                background-image: linear-gradient(to right, rgba(11, 255, 255, 0.2), rgba(8, 109, 209, 0.4));
+                border: 1px solid rgba(54, 252, 252, 0.6);
             }
-            .warning{
-              &>section{
-                border: 1px solid #ff0000;
-
-                .dot{
-                  border: 1px solid #ff0000;
-                  background: #ff0000;
-                }
-                .pulse{
-                  border: 1px solid #ff0000;
-                  box-shadow: 1px 1px 30px #ff0000;
-                }
-                .pulse1{
-                  border: 1px solid #ff0000;
-                  box-shadow: 1px 1px 30px #ff0000;
-                }
-              }
-
-              &>div{
-                div{
-                  span.target{
-                    color: #ff2929;
-                    font-weight: bolder;
-                  }
-                }
-              }
-            }
-            .undone{
-              border-left: 1px solid rgba(54,252,252,.4);
-              &>section{
-                border: 1px solid #ccc;
-
-                .dot{
-                  border: 1px solid #ccc;
-                  background: #ccc;
-                }
-                .pulse{
-                  display: none;
-                }
-                .pulse1{
-                  display: none;
-                }
-              }
-            }
-          }
         }
-        .finish{
-          .area-head{
-            position: relative;
-            width: 100%;
-            height: 80px;
-            border-left: none;
-            .finish-point{
-              position: absolute;
-              width: 90px;
-              height: 90px;
-              border: 2px solid #0072ff;
-              left: -30px;
-              top: -45px;
-              border-radius: 50%;
+        .finish-point {
+            position: absolute;
+            width: 90px;
+            height: 90px;
+            border: 2px solid #0072ff;
+            left: -30px;
+            top: -45px;
+            border-radius: 50%;
 
-              &>div{
+            & > div {
                 width: 80px;
                 height: 80px;
                 position: absolute;
@@ -836,196 +521,1014 @@
                 line-height: 80px;
                 text-align: center;
                 font-weight: bolder;
-              }
             }
-          }
         }
-          .pic-tit{
+    }
+
+    @media screen and (min-width: 1200px) and (max-width: 1366px){
+        .big-title {
+            font-size: 28px;
+            margin: 10px 0 20px;
+        }
+        .btns {
+            position: absolute;
+            z-index: 99999;
+            right: 40px;
+            top: 40px;
+            div {
+                font-size: 14px;
+                color: #00ffff;
+            }
+        }
+        .line-item {
+            width: calc((100vw - 40px) / 5);
+            padding-left: 20px;
             display: flex;
-            width: calc((100vw - 120px)/ 7);
-            height: 160px;
-            padding: 20px;
-            transform: translate(-20px,-40%);
             flex-direction: column;
             align-items: flex-start;
-
-            img{
-              width: calc((100vw - 120px)/ 7 - 40px);
-              height: 90px;
-              margin-bottom: 10px;
-              border-radius: 4px;
+            margin-right: 20px;
+            flex-wrap: nowrap;
+            .picbox {
+                width: 100%;
+                height: 180px;
+                padding: 10px;
+                margin-bottom: 40px;
+                box-sizing: border-box;
+                .imgbox{
+                    width: 100%;
+                    height: 100px;
+                    position: relative;
+                    margin-bottom: 6px;
+                    border-radius: 4px;
+                    overflow: hidden;
+                    img {
+                        display: block;
+                        width: 100%;
+                        height: auto;
+                        position: absolute;
+                        top: 0;
+                        left: 0;
+                        bottom: 0;
+                        right: 0;
+                        margin: auto;
+                    }
+                }
+                p {
+                    font-size: 14px;
+                    white-space: nowrap;
+                    color: rgba(255, 255, 255, 0.8);
+                    margin-top: 10px;
+                    span {
+                        color: #fff;
+                    }
+                }
             }
-            p{
-              font-size: 16px;
-              color: #00ffff;
-              font-weight: bold;
-            }
-          }
-
-          .water{
-            transform: none;
-          }
-          .start{
-            padding: 40px 0;
-            p{
-              margin-top: -21px;
-              margin-left: 20px;
-            }
-            span{
-              width: 1px;
-              height: 50px;
-              background: #36FCFC;
-              position: absolute;
-              top: -10px;
-              left: 0;
-            }
-            section{
-              position: absolute;
-              top: 30px;
-              left: -14px;
-            }
-          }
-      }
-      .tip{
-        width: 100%;
-        font-size: 30px;
-        text-align: center;
-        margin-top: 100px;
-        color: #fff;
-        font-weight: bolder;
-      }
-      .current-task{
-        position: absolute;
-        width: calc((500vw - 600px)/ 7);
-        z-index: 999999;
-        top: 0;
-        right: 0;
-        padding: 0 60px;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-
-        .task-des{
-          padding: 10px 20px;
-          display: flex;
-          align-items: center;
-          border: 1px solid #36FCFC;
-
-          .task-des-l{
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            font-size: 20px;
-            color: #36FCFC;
-            border-right: 1px solid #36FCFC;
-            padding-right: 20px;
-            img{
-              margin-bottom: 10px;
-            }
-          }
-          .task-des-r{
-            width: calc((200vw - 240px)/ 7);
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            font-size: 20px;
-            line-height: 28px;
-            color: #FCFC36;
-            padding-left: 20px;
-          }
         }
-        .current-data{
-          width: 267px;
-          height: 138px;
-          padding: 20px 30px;
-          box-sizing: border-box;
-          background: url("../../../assets/loginPage/xj-bg.png") no-repeat center;
-          background-size: 100% 100%;
+        .item {
+            width: calc((100vw - 40px) / 5);
+            height: calc((100vh - 130px) / 5);
+            padding: 0 20px 20px 40px;
+            position: relative;
+            box-sizing: border-box;
+            border-left: 1px solid #36fcfc;
 
-          .data-area{
+            &:last-of-type {
+                border: none;
+            }
+
+            section {
+                width: 24px;
+                height: 24px;
+                border-radius: 50%;
+                position: absolute;
+                border: 1px solid rgba(0, 114, 255, 0.6);
+                top: -12px;
+                left: 10px;
+
+                .dot {
+                    position: absolute;
+                    width: 12px;
+                    height: 12px;
+                    left: 5px;
+                    top: 5px;
+                    -webkit-border-radius: 50%;
+                    -moz-border-radius: 50%;
+                    border: 1px solid #0072FF;
+                    border-radius: 50%;
+                    background-color: #0072FF;
+                    z-index: 2;
+                }
+                .pulse {
+                    position: absolute;
+                    width: 48px;
+                    height: 48px;
+                    left: -13px;
+                    top: -13px;
+                    border: 1px solid #0072FF;
+                    -webkit-border-radius: 50%;
+                    -moz-border-radius: 50%;
+                    border-radius: 50%;
+                    z-index: 1;
+                    opacity: 0;
+                    -webkit-animation: warn 2s ease-out;
+                    -moz-animation: warn 2s ease-out;
+                    animation: warn 2s ease-out;
+                    -webkit-animation-iteration-count: infinite;
+                    -moz-animation-iteration-count: infinite;
+                    animation-iteration-count: infinite;
+                    box-shadow: 1px 1px 30px #0072FF;
+                }
+                .pulse1 {
+                    position: absolute;
+                    width: 48px;
+                    height: 48px;
+                    left: -13px;
+                    top: -13px;
+                    border: 1px solid #0072FF;
+                    -webkit-border-radius: 50%;
+                    -moz-border-radius: 50%;
+                    border-radius: 50%;
+                    z-index: 1;
+                    opacity: 0;
+                    -webkit-animation: warn1 2s ease-out;
+                    -moz-animation: warn1 2s ease-out;
+                    animation: warn1 2s ease-out;
+                    -webkit-animation-iteration-count: infinite;
+                    -moz-animation-iteration-count: infinite;
+                    animation-iteration-count: infinite;
+                    box-shadow: 1px 1px 30px #0072FF;
+                }
+            }
+            & > div {
+                width: 90%;
+                padding: 10px 0;
+                transform: translateY(-14px);
+                border-radius: 8px;
+                background-image: linear-gradient(to right, rgba(8, 109, 209, 0.4), rgba(11, 255, 255, 0.2));
+                border: 1px solid rgba(54, 252, 252, 1);
+                display: flex;
+                flex-direction: column;
+                justify-content: center;
+
+                div {
+                    width: 100%;
+                    margin-bottom: 5px;
+                    display: flex;
+                    align-items: flex-start;
+                    &:last-of-type {
+                        margin-bottom: 0;
+                    }
+                    span {
+                        width: 50%;
+                        font-size: 13px;
+                        color: #fff;
+                        text-align: left;
+                        word-break: break-all;
+
+                        &:first-of-type {
+                            text-align: right;
+                            color: rgba(255, 255, 255, 0.8);
+                        }
+                    }
+                }
+            }
+            .noBorder{
+                border: 1px solid rgba(54, 252, 252, 0.1);
+            }
+            .redBorder{
+                border: 1px solid #ff0000;
+            }
+            p {
+                width: 140px;
+                height: 50px;
+                font-size: 18px;
+                line-height: 48px;
+                text-align: center;
+                color: #fff;
+                border-radius: 8px;
+                background-image: linear-gradient(to right, rgba(11, 255, 255, 0.2), rgba(8, 109, 209, 0.4));
+                border: 1px solid rgba(54, 252, 252, 0.6);
+            }
+        }
+        .finish-point {
+            position: absolute;
+            width: 80px;
+            height: 80px;
+            border: 1px solid #0072ff;
+            left: -20px;
+            top: -40px;
+            border-radius: 50%;
+
+            & > div {
+                width: 70px;
+                height: 70px;
+                position: absolute;
+                left: 4px;
+                top: 4px;
+                background: #0072ff;
+                border-radius: 50%;
+                color: #fff;
+                font-size: 14px;
+                line-height: 70px;
+                text-align: center;
+                font-weight: bolder;
+            }
+        }
+    }
+
+    @media screen and (max-width: 1200px){
+        .big-title {
+            font-size: 20px;
+            margin: 5px 0 10px;
+        }
+        .btns {
+            position: absolute;
+            z-index: 99999;
+            right: 20px;
+            top: 40px;
+            div {
+                font-size: 12px;
+                color: #00ffff;
+            }
+        }
+        .line-item {
+            width: 20vw;
+            padding-left: 10px;
+            display: flex;
+            flex-direction: column;
+            align-items: flex-start;
+            margin-right: 20px;
+            flex-wrap: nowrap;
+            .picbox {
+                width: 100%;
+                height: 160px;
+                padding: 10px;
+                margin-bottom: 30px;
+                box-sizing: border-box;
+                .imgbox{
+                    width: 100%;
+                    height: 80px;
+                    position: relative;
+                    margin-bottom: 10px;
+                    border-radius: 4px;
+                    overflow: hidden;
+                    img {
+                        display: block;
+                        width: 100%;
+                        height: auto;
+                        position: absolute;
+                        top: 0;
+                        left: 0;
+                        bottom: 0;
+                        right: 0;
+                        margin: auto;
+                    }
+                }
+                p {
+                    font-size: 12px;
+                    color: rgba(255, 255, 255, 0.8);
+                    margin-top: 6px;
+                    span {
+                        color: #fff;
+                    }
+                }
+            }
+        }
+        .item {
+            width: 20vw;
+            height: calc((100vh - 130px) / 5);
+            padding: 0 0 20px 30px;
+            position: relative;
+            box-sizing: border-box;
+            border-left: 1px solid #36fcfc;
+
+            &:last-of-type {
+                border: none;
+            }
+
+            section {
+                width: 24px;
+                height: 24px;
+                border-radius: 50%;
+                position: absolute;
+                border: 1px solid rgba(0, 114, 255, 0.6);
+                top: -12px;
+                left: 2px;
+
+                .dot {
+                    position: absolute;
+                    width: 12px;
+                    height: 12px;
+                    left: 5px;
+                    top: 5px;
+                    -webkit-border-radius: 50%;
+                    -moz-border-radius: 50%;
+                    border: 1px solid #0072ff;
+                    border-radius: 50%;
+                    background-color: #0072ff;
+                    z-index: 2;
+                }
+                .pulse {
+                    position: absolute;
+                    width: 48px;
+                    height: 48px;
+                    left: -13px;
+                    top: -13px;
+                    border: 1px solid #0072ff;
+                    -webkit-border-radius: 50%;
+                    -moz-border-radius: 50%;
+                    border-radius: 50%;
+                    z-index: 1;
+                    opacity: 0;
+                    -webkit-animation: warn 2s ease-out;
+                    -moz-animation: warn 2s ease-out;
+                    animation: warn 2s ease-out;
+                    -webkit-animation-iteration-count: infinite;
+                    -moz-animation-iteration-count: infinite;
+                    animation-iteration-count: infinite;
+                    box-shadow: 1px 1px 30px #0072ff;
+                }
+                .pulse1 {
+                    position: absolute;
+                    width: 48px;
+                    height: 48px;
+                    left: -13px;
+                    top: -13px;
+                    border: 1px solid #0072ff;
+                    -webkit-border-radius: 50%;
+                    -moz-border-radius: 50%;
+                    border-radius: 50%;
+                    z-index: 1;
+                    opacity: 0;
+                    -webkit-animation: warn1 2s ease-out;
+                    -moz-animation: warn1 2s ease-out;
+                    animation: warn1 2s ease-out;
+                    -webkit-animation-iteration-count: infinite;
+                    -moz-animation-iteration-count: infinite;
+                    animation-iteration-count: infinite;
+                    box-shadow: 1px 1px 30px #0072ff;
+                }
+            }
+            & > div {
+                width: 80%;
+                padding: 4px 0;
+                transform: translateY(-14px);
+                border-radius: 8px;
+                background-image: linear-gradient(to right, rgba(8, 109, 209, 0.4), rgba(11, 255, 255, 0.2));
+                border: 1px solid rgba(54, 252, 252, 1);
+                display: flex;
+                flex-direction: column;
+                justify-content: center;
+
+                div {
+                    width: 100%;
+                    margin-bottom: 2px;
+                    display: flex;
+                    align-items: flex-start;
+                    &:last-of-type {
+                        margin-bottom: 0;
+                    }
+                    span {
+                        width: 50%;
+                        font-size: 12px;
+                        color: #fff;
+                        text-align: left;
+                        word-break: break-all;
+
+                        &:first-of-type {
+                            text-align: right;
+                            color: rgba(255, 255, 255, 0.8);
+                        }
+                    }
+                }
+            }
+            .noBorder{
+                border: 1px solid rgba(54, 252, 252, 0.1);
+            }
+            .redBorder{
+                border: 1px solid #ff0000;
+            }
+            p {
+                width: 140px;
+                height: 50px;
+                font-size: 18px;
+                line-height: 48px;
+                text-align: center;
+                color: #fff;
+                border-radius: 8px;
+                background-image: linear-gradient(to right, rgba(11, 255, 255, 0.2), rgba(8, 109, 209, 0.4));
+                border: 1px solid rgba(54, 252, 252, 0.6);
+            }
+        }
+        .finish-point {
+            position: absolute;
+            width: 70px;
+            height: 70px;
+            border: 1px solid #0072ff;
+            left: -10px;
+            top: -35px;
+            border-radius: 50%;
+
+            & > div {
+                width: 60px;
+                height: 60px;
+                position: absolute;
+                left: 4px;
+                top: 4px;
+                background: #0072ff;
+                border-radius: 50%;
+                color: #fff;
+                font-size: 12px;
+                line-height: 60px;
+                text-align: center;
+                font-weight: bolder;
+            }
+        }
+    }
+
+    @keyframes warn {
+        0% {
+            transform: scale(0.3);
+            -webkit-transform: scale(0.3);
+            opacity: 0;
+        }
+
+        25% {
+            transform: scale(0.3);
+            -webkit-transform: scale(0.3);
+            opacity: 0.1;
+        }
+
+        50% {
+            transform: scale(0.5);
+            -webkit-transform: scale(0.5);
+            opacity: 0.3;
+        }
+
+        75% {
+            transform: scale(0.8);
+            -webkit-transform: scale(0.8);
+            opacity: 0.6;
+        }
+
+        100% {
+            transform: scale(1);
+            -webkit-transform: scale(1);
+            opacity: 0;
+        }
+    }
+
+    @keyframes warn1 {
+        0% {
+            transform: scale(0.3);
+            -webkit-transform: scale(0.3);
+            opacity: 0;
+        }
+
+        25% {
+            transform: scale(0.3);
+            -webkit-transform: scale(0.3);
+            opacity: 0.1;
+        }
+
+        50% {
+            transform: scale(0.3);
+            -webkit-transform: scale(0.3);
+            opacity: 0.3;
+        }
+
+        75% {
+            transform: scale(0.5);
+            -webkit-transform: scale(0.5);
+            opacity: 0.6;
+        }
+
+        100% {
+            transform: scale(0.8);
+            -webkit-transform: scale(0.8);
+            opacity: 0;
+        }
+    }
+
+    @keyframes circle {
+        0% {
+            transform: rotate(0);
+            -webkit-transform: rotate(0);
+        }
+        100% {
+            transform: rotate(360deg);
+            -webkit-transform: rotate(360deg);
+        }
+    }
+    @keyframes run {
+        to {
+            transform: translateX(calc((100vw - 180px) / 6 - 80px));
+        }
+    }
+    .container {
+        width: 100%;
+        height: 100%;
+        position: relative;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        background: url('../../../assets/loginPage/map-bg.jpg') no-repeat center;
+        background-size: 100% 100%;
+        .big-title {
+            height: 40px;
+            line-height: 40px;
+            font-weight: bold;
+            text-align: center;
+            color: #fff;
             display: flex;
             align-items: center;
-            border-bottom: 1px solid #040C3B;
-            font-weight: bold;
-            padding-bottom: 10px;
+            justify-content: center;
+        }
+        .btns {
+            display: flex;
+            align-items: center;
+            .fullbtn {
+                cursor: pointer;
+                display: flex;
+                align-items: center;
+                margin-right: 20px;
+                .toFull {
+                    font-weight: bolder;
+                    color: #00ffff;
+                    margin-right: 10px;
+                }
+            }
+
+            .backBtn {
+                cursor: pointer;
+                display: flex;
+                align-items: center;
+                img {
+                    width: 14px;
+                    height: 14px;
+                    margin-right: 10px;
+                }
+            }
+        }
+        .blocks {
+            width: 100%;
+            height: calc(100% - 90px);
+            padding: 10px 40px 35px;
             box-sizing: border-box;
 
-            img{
-              width: 30px;
-              height: 30px;
-              margin-right: 10px;
-              animation: circle 1s ease-in-out infinite;
-            }
-
-            div{
-              font-size: 15px;
-              color: rgba(4,12,59,.8);
-
-              span{
-                color: #040C3B;
-              }
-            }
-          }
-
-          .data-spot{
-            display: flex;
-            align-items: flex-start;
-            margin-top: 10px;
-
             &>div{
-              display: flex;
-              flex-direction: column;
-              align-items: center;
-              width: 50%;
-              font-size: 14px;
-              color: rgba(4,12,59,.8);
+                width: 100%;
+                height: 100%;
+                display: flex;
+                justify-content: left;
+                align-items: flex-start;
+                overflow-y: hidden;
+                overflow-x: hidden;
+                overflow: auto;
+            }
 
-              p{
-                margin-top: 6px;
-                color: #040C3B;
+            .line-map {
+                display: flex;
+                justify-content: center;
+                align-items: flex-start;
+
+                .line-item {
+
+                    .area-head {
+                        position: relative;
+                        width: 100%;
+                        height: 80px;
+                        padding-left: 38px;
+                        border-left: 1px solid #36fcfc;
+
+                        .indicator {
+                            width: 36px;
+                            height: 36px;
+                            border-radius: 50%;
+                            position: absolute;
+                            border: 1px solid #00ff66;
+                            top: -18px;
+                            left: -18px;
+
+                            .indi-dot {
+                                position: absolute;
+                                width: 20px;
+                                height: 20px;
+                                left: 7px;
+                                top: 7px;
+                                -webkit-border-radius: 50%;
+                                -moz-border-radius: 50%;
+                                border: 1px solid #00ff66;
+                                border-radius: 50%;
+                                background-color: #00ff66;
+                                z-index: 2;
+                            }
+                            .indi-pulse {
+                                position: absolute;
+                                width: 56px;
+                                height: 56px;
+                                left: -11px;
+                                top: -11px;
+                                border: 1px solid #00ff66;
+                                -webkit-border-radius: 50%;
+                                -moz-border-radius: 50%;
+                                border-radius: 50%;
+                                z-index: 1;
+                                opacity: 0;
+                                -webkit-animation: warn 2s ease-out;
+                                -moz-animation: warn 2s ease-out;
+                                animation: warn 2s ease-out;
+                                -webkit-animation-iteration-count: infinite;
+                                -moz-animation-iteration-count: infinite;
+                                animation-iteration-count: infinite;
+                                box-shadow: 1px 1px 30px #00ff66;
+                            }
+                            .indi-pulse1 {
+                                position: absolute;
+                                width: 56px;
+                                height: 56px;
+                                left: -11px;
+                                top: -11px;
+                                border: 1px solid #3399ff;
+                                -webkit-border-radius: 50%;
+                                -moz-border-radius: 50%;
+                                border-radius: 50%;
+                                z-index: 1;
+                                opacity: 0;
+                                -webkit-animation: warn1 2s ease-out;
+                                -moz-animation: warn1 2s ease-out;
+                                animation: warn1 2s ease-out;
+                                -webkit-animation-iteration-count: infinite;
+                                -moz-animation-iteration-count: infinite;
+                                animation-iteration-count: infinite;
+                                box-shadow: 1px 1px 30px #3399ff;
+                            }
+                        }
+                        .someUndone {
+                            width: 36px;
+                            height: 36px;
+                            border-radius: 50%;
+                            position: absolute;
+                            border: 1px solid #ccc;
+                            top: -18px;
+                            left: -18px;
+
+                            .indi-dot {
+                                position: absolute;
+                                width: 20px;
+                                height: 20px;
+                                left: 7px;
+                                top: 7px;
+                                -webkit-border-radius: 50%;
+                                -moz-border-radius: 50%;
+                                border: 1px solid #ccc;
+                                border-radius: 50%;
+                                background-color: #ccc;
+                                z-index: 2;
+                            }
+                        }
+                        .somewarning {
+                            width: 36px;
+                            height: 36px;
+                            border-radius: 50%;
+                            position: absolute;
+                            border: 1px solid #ff0000;
+                            top: -18px;
+                            left: -18px;
+
+                            .indi-dot {
+                                position: absolute;
+                                width: 20px;
+                                height: 20px;
+                                left: 7px;
+                                top: 7px;
+                                -webkit-border-radius: 50%;
+                                -moz-border-radius: 50%;
+                                border: 1px solid #ff0000;
+                                border-radius: 50%;
+                                background-color: #ff0000;
+                                z-index: 2;
+                            }
+                        }
+                        .arrow {
+                            position: absolute;
+                            width: 58px;
+                            height: 20px;
+                            left: 38px;
+                            top: -10px;
+                            background: url('../../../assets/loginPage/arrow-r.png') 0 / cover no-repeat;
+                            animation: run 2s steps(4) 0s infinite;
+                        }
+                        .top-line {
+                            width: 100%;
+                            border-top: 2px solid #36fcfc;
+                        }
+                        .fadeLine {
+                            width: 100%;
+                            border-top: 1px solid rgba(54,252,252,.6);
+                        }
+                    }
+                    .fadeBorder {
+                        border-left: 1px solid #ccc;
+                    }
+                    .more-info {
+                        width: 100%;
+
+                        .warning {
+                            & > section {
+                                border: 1px solid #ff0000;
+
+                                .dot {
+                                    border: 1px solid #ff0000;
+                                    background: #ff0000;
+                                }
+                                .pulse {
+                                    border: 1px solid #ff0000;
+                                    box-shadow: 1px 1px 30px #ff0000;
+                                }
+                                .pulse1 {
+                                    border: 1px solid #ff0000;
+                                    box-shadow: 1px 1px 30px #ff0000;
+                                }
+                            }
+
+                            & > div {
+                                div {
+                                    span.target {
+                                        color: #ff2929;
+                                        font-weight: bolder;
+                                    }
+                                }
+                            }
+                        }
+                        .undone {
+                            & > section {
+                                border: 1px solid #ccc;
+
+                                .dot {
+                                    border: 1px solid #ccc;
+                                    background: #ccc;
+                                }
+                                .pulse {
+                                    display: none;
+                                }
+                                .pulse1 {
+                                    display: none;
+                                }
+                            }
+                        }
+                    }
+                }
+                .finish {
+                    .area-head {
+                        position: relative;
+                        width: 100%;
+                        height: 80px;
+                        border-left: none;
+                    }
+                }
+                .pic-tit {
+                    display: flex;
+                    width: calc((100vw - 120px) / 7);
+                    height: 160px;
+                    padding: 20px;
+                    transform: translate(-20px, -40%);
+                    flex-direction: column;
+                    align-items: flex-start;
+
+                    img {
+                        width: calc((100vw - 120px) / 7 - 40px);
+                        height: 90px;
+                        margin-bottom: 10px;
+                        border-radius: 4px;
+                    }
+                    p {
+                        font-size: 16px;
+                        color: #00ffff;
+                        font-weight: bold;
+                    }
+                }
+
+                .water {
+                    transform: none;
+                }
+                .start {
+                    padding: 40px 0;
+                    p {
+                        margin-top: -21px;
+                        margin-left: 20px;
+                    }
+                    span {
+                        width: 1px;
+                        height: 50px;
+                        background: #36fcfc;
+                        position: absolute;
+                        top: -10px;
+                        left: 0;
+                    }
+                    section {
+                        position: absolute;
+                        top: 30px;
+                        left: -14px;
+                    }
+                }
+            }
+            .tip {
+                width: 100%;
+                font-size: 30px;
+                text-align: center;
+                margin-top: 100px;
+                color: #fff;
+                font-weight: bolder;
+            }
+            .current-task {
+                position: absolute;
+                width: calc((500vw - 600px) / 7);
+                z-index: 999999;
+                top: 0;
+                right: 0;
+                padding: 0 60px;
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+
+                .task-des {
+                    padding: 10px 20px;
+                    display: flex;
+                    align-items: center;
+                    border: 1px solid #36fcfc;
+
+                    .task-des-l {
+                        display: flex;
+                        flex-direction: column;
+                        align-items: center;
+                        font-size: 20px;
+                        color: #36fcfc;
+                        border-right: 1px solid #36fcfc;
+                        padding-right: 20px;
+                        img {
+                            margin-bottom: 10px;
+                        }
+                    }
+                    .task-des-r {
+                        width: calc((200vw - 240px) / 7);
+                        display: flex;
+                        flex-direction: column;
+                        align-items: center;
+                        font-size: 20px;
+                        line-height: 28px;
+                        color: #fcfc36;
+                        padding-left: 20px;
+                    }
+                }
+                .current-data {
+                    width: 267px;
+                    height: 138px;
+                    padding: 20px 30px;
+                    box-sizing: border-box;
+                    background: url('../../../assets/loginPage/xj-bg.png') no-repeat center;
+                    background-size: 100% 100%;
+
+                    .data-area {
+                        display: flex;
+                        align-items: center;
+                        border-bottom: 1px solid #040c3b;
+                        font-weight: bold;
+                        padding-bottom: 10px;
+                        box-sizing: border-box;
+
+                        img {
+                            width: 30px;
+                            height: 30px;
+                            margin-right: 10px;
+                            animation: circle 1s ease-in-out infinite;
+                        }
+
+                        div {
+                            font-size: 15px;
+                            color: rgba(4, 12, 59, 0.8);
+
+                            span {
+                                color: #040c3b;
+                            }
+                        }
+                    }
+
+                    .data-spot {
+                        display: flex;
+                        align-items: flex-start;
+                        margin-top: 10px;
+
+                        & > div {
+                            display: flex;
+                            flex-direction: column;
+                            align-items: center;
+                            width: 50%;
+                            font-size: 14px;
+                            color: rgba(4, 12, 59, 0.8);
+
+                            p {
+                                margin-top: 6px;
+                                color: #040c3b;
+                            }
+
+                            &:first-of-type {
+                                border-right: 1px solid #040c3b;
+                            }
+                        }
+                    }
+                }
+            }
+            .warning-part{
+              position: absolute;
+              width: calc((100vw - 120px) / 7);
+              height: calc((100vw - 120px) / 7);
+              background-image: linear-gradient(to right, rgba(8, 109, 209, 0.4), rgba(11, 255, 255, 0.2));
+              border: 1px solid #36fcfc;
+              z-index: 99999;
+              top: 100px;
+              right: 60px;
+              padding: 10px;
+              color: rgb(0, 255, 255);
+              backdrop-filter: blur(5px);
+
+              .warn-tit{
+                height: 26px;
+                padding-bottom: 5px;
+                font-weight: bolder;
+                border-bottom: 1px solid rgb(0, 255, 255);
               }
+              .warn-msg{
+                width: 100%;
+                margin-top: 10px;
+                height: calc(100% - 36px);
+                overflow: hidden;
+                overflow-y: scroll;
+                scrollbar-width: none; /* firefox */
+                -ms-overflow-style: none; /* IE 10+ */
 
-              &:first-of-type{
-                border-right: 1px solid #040C3B;
+                &::-webkit-scrollbar {
+                  display: none; /* Chrome Safari */
+                }
+                .warn-item{
+                  padding: 0 0 10px;
+                  margin-bottom: 10px;
+                  border-bottom: 1px solid rgb(0, 255, 255);
+
+                  &:last-of-type{
+                    border-bottom: none;
+                    margin-bottom: 0;
+                  }
+                }
               }
             }
-          }
-        }
-      }
-      .star-pic{
-        position: absolute;
-        width: calc((100vw - 120px)/ 7);
-        height: calc((100vw - 120px)/ 7);
-        z-index: 999999999;
-        bottom: 40px;
-        right: 40px;
-        padding: 20px;
+            .star-pic {
+                position: absolute;
+                width: calc((100vw - 120px) / 7);
+                height: calc((100vw - 120px) / 7);
+                z-index: 9999;
+                bottom: 40px;
+                right: 40px;
+                padding: 20px;
 
-        .star-bg{
-          position: inherit;
-          width: 100%;
-          height: 100%;
-          left: 0;
-          top: 0;
-          img{
-            width: 100%;
-            height: auto;
-            animation: circle 30s linear infinite;
-          }
-        }
+                .scan{
+                    position: inherit;
+                    width: 65%;
+                    height: 65%;
+                    z-index: 99997;
+                    left: 0;
+                    top: 0;
+                    right: 0;
+                    bottom: 0;
+                    margin: auto;
+                }
 
-        .star{
-          position: inherit;
-          width: 100%;
-          height: 100%;
-          left: 0;
-          top: 0;
-          img{
-            width: 100%;
-            height: auto;
-          }
+                .star-bg {
+                    position: inherit;
+                    width: 100%;
+                    height: 100%;
+                    z-index: 99998;
+                    left: 0;
+                    top: 0;
+                    img {
+                        width: 100%;
+                        height: auto;
+                        animation: circle 30s linear infinite;
+                    }
+                }
+                .star {
+                    position: inherit;
+                    width: 100%;
+                    height: 100%;
+                    z-index: 99999;
+                    left: 0;
+                    top: 0;
+                    img {
+                        width: 100%;
+                        height: auto;
+                    }
+                }
+            }
         }
-      }
     }
-  }
 </style>

--
Gitblit v1.9.2