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 | 1174 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 654 insertions(+), 520 deletions(-)

diff --git a/src/views/intellectInspect/intelligentLine/index.vue b/src/views/intellectInspect/intelligentLine/index.vue
index 4c8f6e2..51d5f1b 100644
--- a/src/views/intellectInspect/intelligentLine/index.vue
+++ b/src/views/intellectInspect/intelligentLine/index.vue
@@ -1,14 +1,18 @@
 <template>
-    <div class="container">
-        <div class="big-title" @click="goBack()">国泰新华智能巡检系统</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="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>
-                </div>
-                <div>全屏</div>
-            </div>
+<!--            <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>
@@ -16,7 +20,38 @@
         </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 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>
@@ -63,7 +98,7 @@
                                     <span>参数:</span><span class="target">{{ t.secondReferenceResult + t.quotaUnit }}</span>
                                 </div>
                                 <div>
-                                    <span>巡检结果:</span><span class="target">{{ t.reportResult == null ? '--' : t.reportResult == 0 ? '正常' : '异常' }}</span>
+                                    <span>巡检结果:</span><span class="target">{{ t.reportResult == null ? '--' : t.reportResult == 0 ? '正常' : t.reportResult == 1 ? '异常' : '备' }}</span>
                                 </div>
                             </div>
                         </div>
@@ -87,7 +122,7 @@
 <script lang="ts">
 import screenfull from 'screenfull';
 import { lineApi } from '/@/api/intelligentLine';
-import {toRefs, reactive, ref, onMounted, onUnmounted, computed, nextTick} 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';
@@ -100,13 +135,19 @@
 // 定义接口来定义对象的类型
 interface stateType {
     present: string;
-    isScreenfull: boolean;
     path: string;
     socket: any;
     socketData: string;
     data: Array<any>;
+    excepOrder: Array<any>;
     id: string;
-    defaultImg: string
+    defaultImg: string;
+    isDragging:boolean
+    initialX:number|null
+    initialY:number|null
+    xOffset:number|null
+    yOffset:number|null
+    timer: null | any
 }
 export default {
     name: 'intelligentLine',
@@ -117,25 +158,37 @@
         const route = useRoute();
         const state = reactive<stateType>({
             present: '',
-            isScreenfull: false,
             path: '',
             socketData: '',
             socket: null,
             data: [],
+            excepOrder: [],
             id: '',
-            defaultImg: new URL('../../../assets/default-img.jpg',import.meta.url).href
+            defaultImg: new URL('../../../assets/default-img.jpg',import.meta.url).href,
+            isDragging: false,
+            initialX: 0,
+            initialY: 0,
+            xOffset: 0,
+            yOffset: 0,
+            timer: null
         });
 
         onMounted(() => {
-            setInterval(() => {
+            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;
         });
@@ -150,12 +203,9 @@
                     alert('您的浏览器不支持socket');
                 } else {
                     // 实例化socket
-                    // debugger
                     let uid =  userInfos.value.uid.toString()
                     var url = state.path + uid + '*' + id;
-                    console.log(url,'url',uid,'uid')
                     url = url.replace('https', 'ws').replace('http', 'ws');
-                    console.log(url, '获取地址');
                     state.socket = new WebSocket(url);
                     // 监听socket连接
                     state.socket.onopen = () => {
@@ -167,9 +217,11 @@
                     };
                     // 监听socket消息
                     state.socket.onmessage = (msg) => {
+                      console.log(msg.data,'msg.data')
+                      console.log(msg.data.rfidInfos,'rfidInfos')
                         if (msg.data === '连接成功') return;
-                        console.log(msg.data,'data')
-                        userInfos.value.dataList = JSON.parse(msg.data);
+                        userInfos.value.dataList = JSON.parse(msg.data).rfidInfos;
+                        state.excepOrder = JSON.parse(msg.data).excepOrder;
                     };
                 }
             } else {
@@ -188,7 +240,12 @@
         const getLine = async (id:string) => {
             let res = await lineApi().getLine({ id: id });
             if (res.data.code === '200') {
-                userInfos.value.dataList = res.data.data;
+                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',
@@ -199,24 +256,37 @@
 
         // 全屏
         const onScreenfullClick = () => {
+            const element = document.getElementById('screenFull')
             if (!screenfull.isEnabled) {
                 ElMessage.warning('暂不不支持全屏');
                 return false;
             }
-            screenfull.toggle();
-            screenfull.on('change', () => {
-                if (screenfull.isFullscreen) {
-                    state.isScreenfull = true;
-                } else {
-                    state.isScreenfull = 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(() => {
@@ -226,9 +296,14 @@
                     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)
@@ -237,7 +312,7 @@
 };
 </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">
     @media screen and (min-width: 1366px) {
         .big-title {
@@ -317,7 +392,7 @@
                 height: 24px;
                 border-radius: 50%;
                 position: absolute;
-                border: 1px solid rgba(0, 225, 255, 0.6);
+                border: 1px solid rgba(0, 114, 255, 0.6);
                 top: -12px;
                 left: 10px;
 
@@ -331,7 +406,7 @@
                     -moz-border-radius: 50%;
                     border: 1px solid #0072ff;
                     border-radius: 50%;
-                    background-color: #00e1ff;
+                    background-color: #0072ff;
                     z-index: 2;
                 }
                 .pulse {
@@ -340,7 +415,7 @@
                     height: 48px;
                     left: -13px;
                     top: -13px;
-                    border: 1px solid #00e1ff;
+                    border: 1px solid #0072ff;
                     -webkit-border-radius: 50%;
                     -moz-border-radius: 50%;
                     border-radius: 50%;
@@ -352,7 +427,7 @@
                     -webkit-animation-iteration-count: infinite;
                     -moz-animation-iteration-count: infinite;
                     animation-iteration-count: infinite;
-                    box-shadow: 1px 1px 30px #00e1ff;
+                    box-shadow: 1px 1px 30px #0072ff;
                 }
                 .pulse1 {
                     position: absolute;
@@ -360,7 +435,7 @@
                     height: 48px;
                     left: -13px;
                     top: -13px;
-                    border: 1px solid #00e1ff;
+                    border: 1px solid #0072ff;
                     -webkit-border-radius: 50%;
                     -moz-border-radius: 50%;
                     border-radius: 50%;
@@ -372,7 +447,7 @@
                     -webkit-animation-iteration-count: infinite;
                     -moz-animation-iteration-count: infinite;
                     animation-iteration-count: infinite;
-                    box-shadow: 1px 1px 30px #00e1ff;
+                    box-shadow: 1px 1px 30px #0072ff;
                 }
             }
             & > div {
@@ -387,16 +462,17 @@
 
                 div {
                     margin-bottom: 5px;
+                    display: flex;
+                    align-items: flex-start;
                     &:last-of-type {
                         margin-bottom: 0;
                     }
                     span {
-                        display: inline-block;
-                        white-space: nowrap;
                         width: 50%;
                         font-size: 13px;
                         color: #fff;
                         text-align: left;
+                        word-break: break-all;
 
                         &:first-of-type {
                             text-align: right;
@@ -525,7 +601,7 @@
                 height: 24px;
                 border-radius: 50%;
                 position: absolute;
-                border: 1px solid rgba(0, 225, 255, 0.6);
+                border: 1px solid rgba(0, 114, 255, 0.6);
                 top: -12px;
                 left: 10px;
 
@@ -537,9 +613,9 @@
                     top: 5px;
                     -webkit-border-radius: 50%;
                     -moz-border-radius: 50%;
-                    border: 1px solid #0072ff;
+                    border: 1px solid #0072FF;
                     border-radius: 50%;
-                    background-color: #00e1ff;
+                    background-color: #0072FF;
                     z-index: 2;
                 }
                 .pulse {
@@ -548,7 +624,7 @@
                     height: 48px;
                     left: -13px;
                     top: -13px;
-                    border: 1px solid #00e1ff;
+                    border: 1px solid #0072FF;
                     -webkit-border-radius: 50%;
                     -moz-border-radius: 50%;
                     border-radius: 50%;
@@ -560,7 +636,7 @@
                     -webkit-animation-iteration-count: infinite;
                     -moz-animation-iteration-count: infinite;
                     animation-iteration-count: infinite;
-                    box-shadow: 1px 1px 30px #00e1ff;
+                    box-shadow: 1px 1px 30px #0072FF;
                 }
                 .pulse1 {
                     position: absolute;
@@ -568,7 +644,7 @@
                     height: 48px;
                     left: -13px;
                     top: -13px;
-                    border: 1px solid #00e1ff;
+                    border: 1px solid #0072FF;
                     -webkit-border-radius: 50%;
                     -moz-border-radius: 50%;
                     border-radius: 50%;
@@ -580,7 +656,7 @@
                     -webkit-animation-iteration-count: infinite;
                     -moz-animation-iteration-count: infinite;
                     animation-iteration-count: infinite;
-                    box-shadow: 1px 1px 30px #00e1ff;
+                    box-shadow: 1px 1px 30px #0072FF;
                 }
             }
             & > div {
@@ -597,16 +673,17 @@
                 div {
                     width: 100%;
                     margin-bottom: 5px;
+                    display: flex;
+                    align-items: flex-start;
                     &:last-of-type {
                         margin-bottom: 0;
                     }
                     span {
-                        display: inline-block;
-                        white-space: nowrap;
                         width: 50%;
                         font-size: 13px;
                         color: #fff;
                         text-align: left;
+                        word-break: break-all;
 
                         &:first-of-type {
                             text-align: right;
@@ -734,7 +811,7 @@
                 height: 24px;
                 border-radius: 50%;
                 position: absolute;
-                border: 1px solid rgba(0, 225, 255, 0.6);
+                border: 1px solid rgba(0, 114, 255, 0.6);
                 top: -12px;
                 left: 2px;
 
@@ -748,7 +825,7 @@
                     -moz-border-radius: 50%;
                     border: 1px solid #0072ff;
                     border-radius: 50%;
-                    background-color: #00e1ff;
+                    background-color: #0072ff;
                     z-index: 2;
                 }
                 .pulse {
@@ -757,7 +834,7 @@
                     height: 48px;
                     left: -13px;
                     top: -13px;
-                    border: 1px solid #00e1ff;
+                    border: 1px solid #0072ff;
                     -webkit-border-radius: 50%;
                     -moz-border-radius: 50%;
                     border-radius: 50%;
@@ -769,7 +846,7 @@
                     -webkit-animation-iteration-count: infinite;
                     -moz-animation-iteration-count: infinite;
                     animation-iteration-count: infinite;
-                    box-shadow: 1px 1px 30px #00e1ff;
+                    box-shadow: 1px 1px 30px #0072ff;
                 }
                 .pulse1 {
                     position: absolute;
@@ -777,7 +854,7 @@
                     height: 48px;
                     left: -13px;
                     top: -13px;
-                    border: 1px solid #00e1ff;
+                    border: 1px solid #0072ff;
                     -webkit-border-radius: 50%;
                     -moz-border-radius: 50%;
                     border-radius: 50%;
@@ -789,7 +866,7 @@
                     -webkit-animation-iteration-count: infinite;
                     -moz-animation-iteration-count: infinite;
                     animation-iteration-count: infinite;
-                    box-shadow: 1px 1px 30px #00e1ff;
+                    box-shadow: 1px 1px 30px #0072ff;
                 }
             }
             & > div {
@@ -806,16 +883,17 @@
                 div {
                     width: 100%;
                     margin-bottom: 2px;
+                    display: flex;
+                    align-items: flex-start;
                     &:last-of-type {
                         margin-bottom: 0;
                     }
                     span {
                         width: 50%;
-                        display: inline-block;
-                        white-space: nowrap;
                         font-size: 12px;
                         color: #fff;
                         text-align: left;
+                        word-break: break-all;
 
                         &:first-of-type {
                             text-align: right;
@@ -868,533 +946,589 @@
         }
     }
 
-@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;
-        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;
-            }
+    @keyframes warn {
+        0% {
+            transform: scale(0.3);
+            -webkit-transform: scale(0.3);
+            opacity: 0;
         }
 
-        .backBtn {
-            cursor: pointer;
-            display: flex;
-            align-items: center;
-            img {
-                width: 14px;
-                height: 14px;
-                margin-right: 10px;
-            }
+        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;
         }
     }
-    .blocks {
+
+    @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: calc(100% - 90px);
-        padding: 10px 40px 35px;
-        box-sizing: border-box;
-
-        &>div{
-            width: 100%;
-            height: 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;
             justify-content: center;
-            align-items: flex-start;
-            overflow: hidden;
-            overflow-x: auto;
-            overflow-y: auto;
         }
-
-        .line-map {
+        .btns {
             display: flex;
-            justify-content: center;
-            align-items: flex-start;
+            align-items: center;
+            .fullbtn {
+                cursor: pointer;
+                display: flex;
+                align-items: center;
+                margin-right: 20px;
+                .toFull {
+                    font-weight: bolder;
+                    color: #00ffff;
+                    margin-right: 10px;
+                }
+            }
 
-            .line-item {
+            .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;
 
-                .area-head {
-                    position: relative;
-                    width: 100%;
-                    height: 80px;
-                    padding-left: 38px;
-                    border-left: 1px solid #36fcfc;
+            &>div{
+                width: 100%;
+                height: 100%;
+                display: flex;
+                justify-content: left;
+                align-items: flex-start;
+                overflow-y: hidden;
+                overflow-x: hidden;
+                overflow: auto;
+            }
 
-                    .indicator {
-                        width: 36px;
-                        height: 36px;
-                        border-radius: 50%;
-                        position: absolute;
-                        border: 1px solid #00ff66;
-                        top: -18px;
-                        left: -18px;
+            .line-map {
+                display: flex;
+                justify-content: center;
+                align-items: flex-start;
 
-                        .indi-dot {
+                .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;
-                            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;
+                            top: -18px;
+                            left: -18px;
 
-                        .indi-dot {
+                            .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;
-                            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;
+                            top: -18px;
+                            left: -18px;
 
-                        .indi-dot {
+                            .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;
-                            width: 20px;
+                            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: 7px;
-                            top: 7px;
-                            -webkit-border-radius: 50%;
-                            -moz-border-radius: 50%;
-                            border: 1px solid #ff0000;
-                            border-radius: 50%;
-                            background-color: #ff0000;
-                            z-index: 2;
+                            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);
                         }
                     }
-                    .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;
+                    .fadeBorder {
+                        border-left: 1px solid #ccc;
                     }
-                    .top-line {
+                    .more-info {
                         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;
+                        .warning {
+                            & > section {
+                                border: 1px solid #ff0000;
 
-                            .dot {
-                                border: 1px solid #ff0000;
-                                background: #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;
+                                }
                             }
-                            .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;
 
-                        & > div {
-                            div {
-                                span.target {
-                                    color: #ff2929;
-                                    font-weight: bolder;
+                                .dot {
+                                    border: 1px solid #ccc;
+                                    background: #ccc;
+                                }
+                                .pulse {
+                                    display: none;
+                                }
+                                .pulse1 {
+                                    display: none;
                                 }
                             }
                         }
                     }
-                    .undone {
-                        & > section {
-                            border: 1px solid #ccc;
+                }
+                .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;
 
-                            .dot {
-                                border: 1px solid #ccc;
-                                background: #ccc;
-                            }
-                            .pulse {
-                                display: none;
-                            }
-                            .pulse1 {
-                                display: none;
-                            }
-                        }
+                    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;
                     }
                 }
             }
-            .finish {
-                .area-head {
-                    position: relative;
-                    width: 100%;
-                    height: 80px;
-                    border-left: none;
-                }
+            .tip {
+                width: 100%;
+                font-size: 30px;
+                text-align: center;
+                margin-top: 100px;
+                color: #fff;
+                font-weight: bolder;
             }
-            .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;
+            .current-task {
+                position: absolute;
+                width: calc((500vw - 600px) / 7);
+                z-index: 999999;
+                top: 0;
+                right: 0;
+                padding: 0 60px;
                 display: flex;
                 align-items: center;
-                border: 1px solid #36fcfc;
+                justify-content: space-between;
 
-                .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 {
+                .task-des {
+                    padding: 10px 20px;
                     display: flex;
                     align-items: center;
-                    border-bottom: 1px solid #040c3b;
-                    font-weight: bold;
-                    padding-bottom: 10px;
-                    box-sizing: border-box;
+                    border: 1px solid #36fcfc;
 
-                    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 {
+                    .task-des-l {
                         display: flex;
                         flex-direction: column;
                         align-items: center;
-                        width: 50%;
-                        font-size: 14px;
-                        color: rgba(4, 12, 59, 0.8);
+                        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%;
 
-                        p {
-                            margin-top: 6px;
-                            color: #040c3b;
+                    .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;
                         }
 
-                        &:first-of-type {
-                            border-right: 1px solid #040c3b;
+                        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;
+                            }
                         }
                     }
                 }
             }
-        }
-        .star-pic {
-            position: absolute;
-            width: calc((100vw - 120px) / 7);
-            height: calc((100vw - 120px) / 7);
-            z-index: 999999999;
-            bottom: 40px;
-            right: 40px;
-            padding: 20px;
+            .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);
 
-            .star-bg {
-                position: inherit;
+              .warn-tit{
+                height: 26px;
+                padding-bottom: 5px;
+                font-weight: bolder;
+                border-bottom: 1px solid rgb(0, 255, 255);
+              }
+              .warn-msg{
                 width: 100%;
-                height: 100%;
-                left: 0;
-                top: 0;
-                img {
-                    width: 100%;
-                    height: auto;
-                    animation: circle 30s linear infinite;
+                margin-top: 10px;
+                height: calc(100% - 36px);
+                overflow: hidden;
+                overflow-y: scroll;
+                scrollbar-width: none; /* firefox */
+                -ms-overflow-style: none; /* IE 10+ */
+
+                &::-webkit-scrollbar {
+                  display: none; /* Chrome Safari */
                 }
-            }
+                .warn-item{
+                  padding: 0 0 10px;
+                  margin-bottom: 10px;
+                  border-bottom: 1px solid rgb(0, 255, 255);
 
-            .star {
-                position: inherit;
-                width: 100%;
-                height: 100%;
-                left: 0;
-                top: 0;
-                img {
+                  &: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: 9999;
+                bottom: 40px;
+                right: 40px;
+                padding: 20px;
+
+                .scan{
+                    position: inherit;
+                    width: 65%;
+                    height: 65%;
+                    z-index: 99997;
+                    left: 0;
+                    top: 0;
+                    right: 0;
+                    bottom: 0;
+                    margin: auto;
+                }
+
+                .star-bg {
+                    position: inherit;
                     width: 100%;
-                    height: auto;
+                    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