From b9346c0dad8727fce46482c5ed29009717a902d0 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 25 九月 2024 14:20:39 +0800
Subject: [PATCH] 标线调整

---
 src/views/screen/index.vue | 1007 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 622 insertions(+), 385 deletions(-)

diff --git a/src/views/screen/index.vue b/src/views/screen/index.vue
index ee424c6..5080d2e 100644
--- a/src/views/screen/index.vue
+++ b/src/views/screen/index.vue
@@ -1,12 +1,12 @@
 <template>
   <div class="container" ref="contaner">
     <header>
-      <img src="@/assets/images/header-bg.png" />
+      <i @click="returnPath" class="el-icon-s-home" style="color: #00b4ff;position: absolute;font-size: 24px;left: 98%;top: 15%"></i>
+      <img src="@/assets/images/header-bg.png"/>
     </header>
-
     <div class="main-contaner">
       <div class="data-statistics-content">
-        <img src="@/assets/images/workOrder-title.png" class="title" />
+        <img src="@/assets/images/workOrder-title.png" class="title"/>
         <div class="main-left-container">
           <div class="work-order-container">
             <img
@@ -36,7 +36,7 @@
             <div class="statistics-container">
               <div class="DrawLine-content">
                 <!-- <div style="width: 100%; height: 100%" ref="myDrawLine"></div> -->
-                <lineChart></lineChart>
+                <lineChart :workOrderRegion=workOrderRegion></lineChart>
               </div>
             </div>
           </div>
@@ -44,15 +44,17 @@
       </div>
 
       <div class="map-container" ref="isMap">
-        <mapApp></mapApp>
+        <img src="@/assets/map/texture/rotating-point2.png" alt="Rotating Image" class="rotating-image">
+        <img src="@/assets/map/texture/rotatingAperture.png" alt="Rotating Image" class="rotating-image-in">
+        <mapApp @clickMap="getDeptId" :geoCoordinates=scoreData :platformData = platformData></mapApp>
         <div class="btn-container">
-          <img src="@/assets/images/btn-bg.png" class="bg-img" />
-          <div class="btn-list">
+          <img src="@/assets/images/btn-bg.png" class="bg-img"/>
+          <div class="btn-list" v-model="activerBtnType">
             <img
               :src="activerBtnType === item.id ? item.bgActiver : item.bg"
               v-for="item in btnList"
               :key="item.id"
-              @click="activerBtnType = item.id"
+              @click="tabChange(item.id)"
             />
           </div>
         </div>
@@ -60,7 +62,7 @@
 
       <div class="data-statistics-content">
         <div class="facility-container">
-          <img src="@/assets/images/facility-title.png" class="title" />
+          <img src="@/assets/images/facility-title.png" class="title"/>
           <div class="facility-content">
             <div class="item-facility-data">
               <img
@@ -69,7 +71,9 @@
               />
               <ul>
                 <li v-for="(item, index) in facilityData.video" :key="index">
-                  <div class="value">{{ item.value ? item.value : "-" }}</div>
+                  <div class="value">
+                    <animate-number from="0" :to="item.value" :key="item.value"></animate-number>
+                  </div>
                   <div class="title">{{ item.title }}</div>
                 </li>
               </ul>
@@ -81,7 +85,8 @@
               />
               <ul>
                 <li v-for="(item, index) in facilityData.car" :key="index">
-                  <div class="value">{{ item.value ? item.value : "-" }}</div>
+<!--                  <div class="value">{{ item.value ? item.value : "-" }}</div>-->
+                  <div class="value"><animate-number from="0" :to="item.value" :key="item.value"></animate-number></div>
                   <div class="title">{{ item.title }}</div>
                 </li>
               </ul>
@@ -93,10 +98,11 @@
               />
               <ul>
                 <li
-                  v-for="(item, index) in facilityData.faceDetection"
+                  v-for="(item, index) in facilityData.face"
                   :key="index"
                 >
-                  <div class="value">{{ item.value ? item.value : "-" }}</div>
+<!--                  <div class="value">{{ item.value ? item.value : "-" }}</div>-->
+                  <div class="value"><animate-number from="0" :to="item.value" :key="item.value"></animate-number></div>
                   <div class="title">{{ item.title }}</div>
                 </li>
               </ul>
@@ -104,13 +110,13 @@
           </div>
         </div>
         <div class="normal-container">
-          <img src="@/assets/images/normal-title.png" class="title" />
+          <img src="@/assets/images/normal-title.png" class="title"/>
           <div class="normal-statistics-content">
             <ul class="list-title-container">
               <li>鍦板尯</li>
-              <li>浜鸿劯璁惧</li>
-              <li>杞﹁締璁惧</li>
-              <li>瑙嗛璁惧</li>
+              <li>瑙嗛</li>
+              <li>杞﹁締</li>
+              <li>浜鸿劯</li>
             </ul>
             <div class="list-content">
               <div class="list-content-to is-scroll-bar">
@@ -119,59 +125,62 @@
                   v-for="(item, index) in facilityNormal"
                   :key="index"
                 >
-                  <li class="name">{{ item.name }}</li>
-                  <li>{{ item.face }}</li>
-                  <li>{{ item.car }}</li>
-                  <li>{{ item.video }}</li>
+                  <li class="name">{{ item.area }}</li>
+                  <li><animate-number from="0" :to="item.videoRate" :key="item.videoRate"></animate-number>%</li>
+                  <li><animate-number from="0" :to="item.carRate" :key="item.carRate"></animate-number>%</li>
+                  <li><animate-number from="0" :to="item.faceRate" :key="item.faceRate"></animate-number>%</li>
+ <!--                  <li>{{ item.videoRate ? item.videoRate + '%' : '&#45;&#45;' }}</li>-->
+<!--                  <li>{{ item.carRate ? item.carRate + '%' : '&#45;&#45;' }}</li>-->
+<!--                  <li>{{ item.faceRate ? item.faceRate + '%' : '&#45;&#45;' }}</li>-->
                 </ul>
               </div>
             </div>
           </div>
         </div>
       </div>
-      <img src="@/assets/images/video-title.png" class="video-title" />
+      <img src="@/assets/images/video-title.png" class="video-title"/>
     </div>
 
     <footer>
-      <img src="@/assets/images/footer-title-bg.png" class="footer-title" />
+      <img src="@/assets/images/footer-title-bg.png" class="footer-title"/>
       <div class="footer-container">
         <div class="footer-statistics-container">
           <div class="face-container">
             <div
               class="item-face-container"
-              :style="item.style"
-              v-for="(item, index) in faceData"
+              v-for="(item, index) in faceList"
               :key="index"
+              :style="item.style"
             >
               <div class="proportion">
-                <img src="@/assets/images/face-num-bg.png" />
-                <div class="value">{{ item.proportion }}%</div>
+                <img src="@/assets/images/face-num-bg.png"/>
+                <div class="value"><animate-number from="0" :to="item.value" :key="item.value"></animate-number>%</div>
               </div>
-              <div class="title">{{ item.title }}</div>
+              <div class="title">{{ item.name }}</div>
             </div>
           </div>
 
           <div class="video-container">
             <div
               class="item-video-data"
-              v-for="(item, index) in videoData"
+              v-for="(item, index) in videoList"
               :key="index"
             >
               <div class="video-data">
-                <div class="proportion">{{ item.proportion }}%</div>
+                <div class="proportion"><animate-number from="0" :to="item.value" :key="item.value"></animate-number>%</div>
               </div>
-              <div class="item-video-title">{{ item.title }}</div>
+              <div class="item-video-title">{{ item.name }}</div>
             </div>
           </div>
 
           <div class="car-container">
             <div
               class="item-car-container"
-              v-for="(item, index) in carData"
+              v-for="(item, index) in carList"
               :key="index"
               :style="item.style"
             >
-              {{ item.title }} <span>{{ item.proportion }}%</span>
+              {{ item.name }} <span><animate-number from="0" :to="item.value" :key="item.value"></animate-number>%</span>
             </div>
           </div>
         </div>
@@ -183,358 +192,533 @@
 <script>
 import itemSubheading from '../screen/components/subheading.vue' // 鐜舰缁熻鍥�
 import lineChart from '../screen/components/lineChart.vue' // 鎶樼嚎缁熻鍥�
-import mapApp from '../screen/components/map.vue' // 鍦板浘
+import mapApp from '../screen/components/map3.vue' // 鍦板浘
+import {
+  getDepartmentData,
+  getDeviceData,
+  getWorkOrderData,
+  getWorkOrderRegion,
+  getNormalRate,
+  checkFace,
+  checkCar,
+  checkVideo,
+  checkScore,
+  getPlatform
+} from "@/api/newpage";
 
 export default {
   name: 'examineApp',
-  components: { mapApp, itemSubheading, lineChart },
-  data () {
+  components: {mapApp, itemSubheading, lineChart},
+  data() {
     return {
+      deptList: [],
+      deptId: '',
+      carList: [],
+      videoList: [],
+      faceList: [],
+      workOrderData: [],
+      workOrderRegion: [],
+      platformData: null,
+      scoreData: {
+          鑷祦浜曞尯: [
+            {
+              value: 0,
+              name: '寰楀垎'
+            }
+          ],
+          楂樻柊鍖�: [
+            {
+              value: 0,
+              name: '寰楀垎'
+            }
+          ],
+          澶у畨鍖�: [
+            {
+              value: 0,
+              name: '寰楀垎'
+            }
+          ],
+          娌挎哗鍖�: [
+            {
+              value: 0,
+              name: '寰楀垎'
+            }
+          ],
+          璐′簳鍖�: [
+            {
+              value: 0,
+              name: '寰楀垎'
+            }
+          ],
+          鑽e幙: [
+            {
+              value: 0,
+              name: '寰楀垎'
+            }
+          ],
+          瀵岄『鍘�: [
+            {
+              value: 0,
+              name: '寰楀垎'
+            }
+          ]
+        },
       // 璁惧鏁版嵁
       facilityData: {
-        video: [
-          {
-            value: 4589,
-            title: '璁惧鎬绘暟'
-          },
-          {
-            value: 4294,
-            title: '璁惧姝e父鏁�'
-          },
-          {
-            value: 295,
-            title: '璁惧寮傚父鏁�'
-          }
-        ],
-        car: [
-          {
-            value: 4589,
-            title: '璁惧鎬绘暟'
-          },
-          {
-            value: 4294,
-            title: '璁惧姝e父鏁�'
-          },
-          {
-            value: 295,
-            title: '璁惧寮傚父鏁�'
-          }
-        ],
-        faceDetection: [
-          {
-            value: 4589,
-            title: '璁惧鎬绘暟'
-          },
-          {
-            value: 4294,
-            title: '璁惧姝e父鏁�'
-          },
-          {
-            value: 295,
-            title: '璁惧寮傚父鏁�'
-          }
-        ]
+        video: [],
+        car: [],
+        face: []
       },
-
       // 璁惧姝e父鐜�
-      facilityNormal: [
-        {
-          name: '瀵岄『鍖�',
-          face: '23.34%',
-          car: '45.12%',
-          video: '23.12%'
-        },
-        {
-          name: '瀵岄『鍖�',
-          face: '23.34%',
-          car: '45.12%',
-          video: '23.12%'
-        },
-        {
-          name: '瀵岄『鍖�',
-          face: '23.34%',
-          car: '45.12%',
-          video: '23.12%'
-        },
-        {
-          name: '瀵岄『鍖�',
-          face: '23.34%',
-          car: '45.12%',
-          video: '23.12%'
-        },
-        {
-          name: '瀵岄『鍖�',
-          face: '23.34%',
-          car: '45.12%',
-          video: '23.12%'
-        },
-        {
-          name: '瀵岄『鍖�',
-          face: '23.34%',
-          car: '45.12%',
-          video: '23.12%'
-        },
-        {
-          name: '瀵岄『鍖�',
-          face: '23.34%',
-          car: '45.12%',
-          video: '23.12%'
-        }
-      ],
-
+      facilityNormal: [],
       // 浜鸿劯鑰冩牳
-      faceData: [
-        {
-          title: '瑙嗗浘搴撳鎺ョǔ瀹氭��',
-          proportion: 100,
-          style: {
-            top: '13%',
-            left: '2%'
-          }
-        },
-        {
-          title: '鎶撴媿鍥剧墖鏃堕挓鍑嗙‘鎬�',
-          proportion: 100,
-          style: {
-            top: '13%',
-            right: '2%'
-          }
-        },
-        {
-          title: '鐐逛綅鍦ㄧ嚎鐜�',
-          proportion: 100,
-          style: {
-            top: '23%',
-            left: '19%'
-          }
-        },
-        {
-          title: '鎶撴媿鍥剧墖鍚堟牸鎬�',
-          proportion: 100,
-          style: {
-            top: '23%',
-            right: '19%'
-          }
-        },
-        {
-          title: '鎶撴媿鏁版嵁澶у浘鍙敤鎬�',
-          proportion: 100,
-          style: {
-            bottom: '18%',
-            left: '2%'
-          }
-        },
-        {
-          title: '鐩綍涓�鑷寸巼',
-          proportion: 100,
-          style: {
-            bottom: '18%',
-            right: '2%'
-          }
-        },
-        {
-          title: '淇℃伅閲囬泦鍑嗙‘鐜�',
-          proportion: 100,
-          style: {
-            bottom: '2%',
-            left: '19%'
-          }
-        },
-        {
-          title: '鎶撴媿鏁版嵁鍙婃椂涓婁紶鍑嗘椂鎬�',
-          proportion: 100,
-          style: {
-            bottom: '2%',
-            right: '19%'
-          }
-        }
-      ],
-
+      faceData: [],
       // 瑙嗛鑰冩牳
-      videoData: [
-        {
-          title: '鐐逛綅鍦ㄧ嚎鐜�',
-          proportion: 100
-        },
-        {
-          title: '閮ㄧ骇鐐逛綅鍦ㄧ嚎鐜�',
-          proportion: 100
-        },
-        {
-          title: '閲嶇偣鐐逛綅鍦ㄧ嚎鐜�',
-          proportion: 100
-        },
-        {
-          title: '閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�',
-          proportion: 100
-        },
-        {
-          title: '褰曞儚鍙敤鐜�',
-          proportion: 10
-        },
-        {
-          title: '閮ㄧ骇宸℃煡褰曞儚鍙敤鐜�',
-          proportion: 100
-        },
-        {
-          title: '閲嶇偣鐐逛綅褰曞儚鍙敤鐜�',
-          proportion: 100
-        },
-        {
-          title: '閲嶇偣鐐逛綅鏍囨敞姝g‘鐜�',
-          proportion: 100
-        },
-        {
-          title: '瑙嗛鍥惧儚璧勬簮瀹夊叏绠$悊',
-          proportion: 100
-        },
-        {
-          title: '閲嶇偣鐐逛綅鏍℃椂姝g‘鐜�',
-          proportion: 100
-        },
-        {
-          title: '涓�鏈轰竴妗e悎鏍艰溅',
-          proportion: 100
-        },
-        {
-          title: '涓�鏈轰竴妗f敞鍐岃溅',
-          proportion: 100
-        },
-        {
-          title: '妗f鑰冩牳姣�',
-          proportion: 100
-        },
-        {
-          title: '骞冲彴鍦ㄧ嚎鐜�',
-          proportion: 100
-        }
-      ],
-
+      videoData: [],
       // 杞﹁締鑰冩牳
-      carData: [
-        {
-          title: '鎶撴媿鏁版嵁澶у浘鍙敤鎬�',
-          proportion: 100,
-          style: {
-            top: '7%',
-            left: '15%'
-          }
-        },
-        {
-          title: '璁惧鎶撴媿鏁版嵁鍑嗙‘',
-          proportion: 100,
-          style: {
-            top: '7%',
-            left: '59.2%'
-          }
-        },
-        {
-          title: '鑱旂綉鍗″彛璁惧鐩綍涓�鑷崇巼',
-          proportion: 100,
-          style: {
-            top: '26%',
-            left: '5%'
-          }
-        },
-        {
-          title: '淇℃伅閲囬泦鍑嗙‘鐜�',
-          proportion: 100,
-          style: {
-            top: '26%',
-            left: '63%'
-          }
-        },
-        {
-          title: '璁惧鎶撴媿鏁版嵁瀹屾暣鎬�',
-          proportion: 100,
-          style: {
-            top: '46%',
-            left: '12%'
-          }
-        },
-        {
-          title: '鐐逛綅鍦ㄧ嚎鐜�',
-          proportion: 100,
-          style: {
-            top: '46%',
-            left: '66%'
-          }
-        },
-        {
-          title: '璁惧鏃堕挓鍑嗙‘鎬�',
-          proportion: 100,
-          style: {
-            top: '65%',
-            left: '13%'
-          }
-        },
-        {
-          title: '瑙嗗浘搴撳鎺ョǔ瀹氭��',
-          proportion: 100,
-          style: {
-            top: '65%',
-            left: '70%'
-          }
-        },
-        {
-          title: '璁惧URL鍙敤鎬�',
-          proportion: 100,
-          style: {
-            top: '83%',
-            left: '18.5%'
-          }
-        },
-        {
-          title: '鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�',
-          proportion: 100,
-          style: {
-            top: '83%',
-            left: '59.5%'
-          }
-        }
-      ],
-
-      // 榛樿閫変腑鎸夐挳 st 鐪佸巺 qx 鍖哄幙 ga 鍏畨
+      carData: [],
+      // 榛樿閫変腑鎸夐挳 1 鐪佸巺 2 鍖哄幙 3 鍏畨
       btnList: [
         {
-          id: 'st',
+          id: '1',
           bg: require('@/assets/images/st-btn-1.png'),
           bgActiver: require('@/assets/images/st-btn-2.png')
         },
         {
-          id: 'qx',
+          id: '2',
           bg: require('@/assets/images/qx-btn-1.png'),
           bgActiver: require('@/assets/images/qx-btn-2.png')
         },
         {
-          id: 'ga',
+          id: '3',
           bg: require('@/assets/images/ga-btn-1.png'),
           bgActiver: require('@/assets/images/ga-btn-2.png')
         }
       ],
-      activerBtnType: 'st',
-      statistics: [
-        {
-          value1: 9688,
-          value2: 0,
-          color: '#e4b54f',
-          title: '宸ュ崟鎬绘暟'
-        },
-        {
-          value1: 1200,
-          value2: 1200,
-          color: '#5cff9a',
-          title: '宸插鐞嗗伐鍗曟暟'
-        },
-        {
-          value1: 18,
-          value2: 1200,
-          color: '#ff7b72',
-          title: '鏈鐞嗗伐鍗曟暟'
-        }
-      ],
+      activerBtnType: '2',
+      statistics: [],
       isFullScreen: false
     }
+  },
+  mounted() {
+    // 鑾峰彇閮ㄩ棬
+    getDepartmentData()
+      .then((res) => {
+        this.deptList = res.data;
+      })
+      .catch((err) => {
+      });
+    // 鏌ヨ鏁版嵁
+    this.getData();
+  },
+  methods: {
+    getDeptId(deptName) {
+      let deptId = this.deptList.find(item => item.area === deptName).deptId;
+      if (deptId === this.deptId) {
+        this.deptId = '';
+      } else {
+        this.deptId = deptId
+      }
+      this.getData();
+    },
+    getData() {
+      getDeviceData(this.activerBtnType, this.deptId)
+        .then((res) => {
+          this.facilityData = res.data;
+        })
+        .catch((err) => {
+        });
+      getWorkOrderData(this.activerBtnType, this.deptId)
+        .then((res) => {
+          this.workOrderData = res.data;
+        })
+        .catch((err) => {
+        });
+      getWorkOrderRegion(this.activerBtnType, this.deptId)
+        .then((res) => {
+          this.workOrderRegion = res.data;
+        })
+        .catch((err) => {
+        });
+      getNormalRate(this.activerBtnType, this.deptId)
+        .then((res) => {
+          this.facilityNormal = res.data;
+        })
+        .catch((err) => {
+        });
+      checkCar(this.activerBtnType, this.deptId)
+        .then((res) => {
+          this.carData = res.data;
+        })
+        .catch((err) => {
+        });
+      checkFace(this.activerBtnType, this.deptId)
+        .then((res) => {
+          this.faceData = res.data;
+        })
+        .catch((err) => {
+        });
+      checkVideo(this.activerBtnType, this.deptId)
+        .then((res) => {
+          this.videoData = res.data;
+        })
+        .catch((err) => {
+        });
+      checkScore(this.activerBtnType, this.deptId)
+        .then((res) => {
+          if(res.data && Object.keys(res.data).length > 0){
+            this.scoreData = res.data;
+          }
+        })
+        .catch((err) => {
+        });
+      getPlatform(this.activerBtnType, this.deptId)
+        .then((res) => {
+          if(res.data && Object.keys(res.data).length > 0){
+            this.platformData = res.data;
+          }
+        })
+        .catch((err) => {
+        });
+    },
+    returnPath() {
+      this.$router.push("/index");
+    },
+    tabChange(id) {
+      this.activerBtnType = id
+      this.getData();
+    },
+    // formatter: function (num) {
+    //   return num.toFixed(2)
+    // },
+  },
+  watch: {
+    workOrderData() {
+      this.statistics = [];
+      let item = {value1: 0, value2: 0, title: "", color: ""}
+      item.value1 = this.workOrderData.totalNum
+      item.value2 = 0
+      item.color = '#e4b54f'
+      item.title = '宸ュ崟鎬绘暟'
+      this.statistics.push(item)
+
+      let item1 = {value1: 0, value2: 0, title: "", color: ""}
+      item1.value1 = this.workOrderData.doneNum
+      item1.value2 = this.workOrderData.totalNum - this.workOrderData.doneNum
+      item1.color = '#5cff9a'
+      item1.title = '宸插鐞�'
+      this.statistics.push(item1)
+
+      let item2 = {value1: 0, value2: 0, title: "", color: ""}
+      item2.value1 = this.workOrderData.todoNum
+      item2.value2 = this.workOrderData.totalNum - this.workOrderData.todoNum
+      item2.color = '#ff7b72'
+      item2.title = '鏈鐞�'
+      this.statistics.push(item2)
+    },
+
+    videoData() {
+      this.videoList = [];
+      let item = {value: 0, name: "", id: 0, routerUrl: ""}
+      item.value = this.videoData.platformOnline
+      item.name = "骞冲彴鍦ㄧ嚎鐜�"
+      item.id = 1
+      item.routerUrl = ""
+      this.videoList.push(item)
+
+      let item1 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item1.value = this.videoData.monitorQualification
+      item1.name = "涓�鏈轰竴妗e悎鏍肩巼"
+      item1.id = 2
+      item1.routerUrl = ""
+      this.videoList.push(item1)
+
+      let item2 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item2.value = this.videoData.monitorRegistration
+      item2.name = "涓�鏈轰竴妗f敞鍐岀巼"
+      item2.id = 3
+      item2.routerUrl = ""
+      this.videoList.push(item2)
+
+      let item3 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item3.value = this.videoData.archivesRate
+      item3.name = "妗f鑰冩牳姣�"
+      item3.id = 4
+      item3.routerUrl = ""
+      this.videoList.push(item3)
+
+      let item4 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item4.value = this.videoData.siteOnline
+      item4.name = "鐐逛綅鍦ㄧ嚎鐜�"
+      item4.id = 5
+      item4.routerUrl = ""
+      this.videoList.push(item4)
+
+      let item5 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item5.value = this.videoData.videoAvailable
+      item5.name = "褰曞儚鍙敤鐜�"
+      item5.id = 6
+      item5.routerUrl = ""
+      this.videoList.push(item5)
+
+      let item6 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item6.value = this.videoData.ministrySiteOnline
+      item6.name = "閮ㄧ骇鐐逛綅鍦ㄧ嚎鐜�"
+      item6.id = 7
+      item6.routerUrl = ""
+      this.videoList.push(item6)
+
+      let item7 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item7.value = this.videoData.ministryVideoAvailable
+      item7.name = "閮ㄧ骇宸℃褰曞儚鍙敤鐜�"
+      item7.id = 8
+      item7.routerUrl = ""
+      this.videoList.push(item7)
+
+      let item8 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item8.value = this.videoData.keySiteOnline
+      item8.name = "閲嶇偣鐐逛綅鍦ㄧ嚎鐜�"
+      item8.id = 9
+      item8.routerUrl = ""
+      this.videoList.push(item8)
+
+      let item9 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item9.value = this.videoData.keyVideoAvailable
+      item9.name = "閲嶇偣鐐逛綅褰曡薄鍙敤鐜�"
+      item9.id = 10
+      item9.routerUrl = ""
+      this.videoList.push(item9)
+
+      let item10 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item10.value = this.videoData.keyAnnotationAccuracy
+      item10.name = "閲嶇偣鐐逛綅鏍囨敞姝g‘鐜�"
+      item10.id = 11
+      item10.routerUrl = ""
+      this.videoList.push(item10)
+
+      let item11 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item11.value = this.videoData.keyTimingAccuracy
+      item11.name = "閲嶇偣鐐逛綅鎸夋椂姝g‘鐜�"
+      item11.id = 12
+      item11.routerUrl = ""
+      this.videoList.push(item11)
+
+      let item12 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item12.value = this.videoData.keyCommandImageOnline
+      item12.name = "閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�"
+      item12.id = 13
+      item12.routerUrl = ""
+      this.videoList.push(item12)
+
+      let item13 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item13.value = this.videoData.imageResourceSecurity
+      item13.name = "鍥惧儚璧勬簮瀹夊叏绠$悊"
+      item13.id = 14
+      item13.routerUrl = ""
+      this.videoList.push(item13)
+    },
+    carData() {
+      this.carList = [];
+      let item = {value: 0, name: "", id: 0, routerUrl: ""}
+      item.value = this.carData.viewConnectStability
+      item.name = "瑙嗗浘搴撳鎺ョǔ瀹氭��"
+      item.id = 1
+      item.routerUrl = ""
+      item.style = {
+        top: '65%',
+        left: '70%'
+      }
+      this.carList.push(item)
+
+      let item1 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item1.value = this.carData.siteOnline
+      item1.name = "鐐逛綅鍦ㄧ嚎鐜�"
+      item1.id = 2
+      item1.routerUrl = ""
+      item1.style = {
+        top: '46%',
+        left: '66%'
+      }
+      this.carList.push(item1)
+
+      let item2 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item2.value = this.carData.deviceDirectoryConsistent
+      item2.name = "鑱旂綉鍗″彛鐩綍涓�鑷寸巼"
+      item2.id = 3
+      item2.routerUrl = ""
+      item2.style = {
+        top: '26%',
+        left: '5%'
+      }
+      this.carList.push(item2)
+
+      let item3 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item3.value = this.carData.vehicleInformationCollectionAccuracy
+      item3.name = "淇℃伅閲囬泦鍑嗙‘鐜�"
+      item3.id = 4
+      item3.routerUrl = ""
+      item3.style = {
+        top: '26%',
+        left: '63%'
+      }
+      this.carList.push(item3)
+
+      let item4 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item4.value = this.carData.vehicleCaptureIntegrity
+      item4.name = "鎶撴媿鏁版嵁瀹屾暣鎬�"
+      item4.id = 5
+      item4.routerUrl = ""
+      item4.style = {
+        top: '46%',
+        left: '12%'
+      }
+      this.carList.push(item4)
+
+      let item5 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item5.value = this.carData.vehicleCaptureAccuracy
+      item5.name = "鎶撴媿鏁版嵁鍑嗙‘鎬�"
+      item5.id = 6
+      item5.routerUrl = ""
+      item5.style = {
+        top: '7%',
+        left: '59.2%'
+      }
+      this.carList.push(item5)
+
+      let item6 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item6.value = this.carData.vehicleTimingAccuracy
+      item6.name = "鏃堕挓鍑嗙‘鎬�"
+      item6.id = 7
+      item6.routerUrl = ""
+      item6.style = {
+        top: '65%',
+        left: '13%'
+      }
+      this.carList.push(item6)
+
+      let item7 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item7.value = this.carData.vehicleUploadTimeliness
+      item7.name = "鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�"
+      item7.id = 8
+      item7.routerUrl = ""
+      item7.style = {
+        top: '83%',
+        left: '59.5%'
+      }
+      this.carList.push(item7)
+
+      let item8 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item8.value = this.carData.vehicleUrlAvailability
+      item8.name = "url鍙敤鎬�"
+      item8.id = 9
+      item8.routerUrl = ""
+      item8.style = {
+        top: '83%',
+        left: '18.5%'
+      }
+      this.carList.push(item8)
+
+      let item9 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item9.value = this.carData.vehiclePictureAvailability
+      item9.name = "鎶撴媿鏁版嵁澶у浘鍙敤鎬�"
+      item9.id = 10
+      item9.style = {
+        top: '7%',
+        left: '15%'
+      }
+      item9.routerUrl = ""
+      this.carList.push(item9)
+    },
+    faceData() {
+      this.faceList = [];
+      let item = {value: 0, name: "", id: 0, routerUrl: ""}
+      item.value = this.faceData.viewConnectStability
+      item.name = "瑙嗗浘搴撳鎺ョǔ瀹氭��"
+      item.id = 1
+      item.routerUrl = ""
+      item.style = {
+        top: '13%',
+        left: '2%'
+      }
+      this.faceList.push(item)
+
+      let item1 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item1.value = this.faceData.siteOnline
+      item1.name = "鐐逛綅鍦ㄧ嚎鐜�"
+      item1.id = 2
+      item1.routerUrl = ""
+      item1.style = {
+        top: '23%',
+        left: '19%'
+      }
+      this.faceList.push(item1)
+
+      let item2 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item2.value = this.faceData.deviceDirectoryConsistent
+      item2.name = "鐩綍涓�鑷寸巼"
+      item2.id = 3
+      item2.routerUrl = ""
+      item2.style = {
+        bottom: '18%',
+        right: '2%'
+      }
+      this.faceList.push(item2)
+
+      let item3 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item3.value = this.faceData.faceInformationCollectionAccuracy
+      item3.name = "淇℃伅閲囬泦鍑嗙‘鐜�"
+      item3.id = 4
+      item3.routerUrl = ""
+      item3.style = {
+        bottom: '2%',
+        left: '19%'
+      }
+      this.faceList.push(item3)
+
+      let item4 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item4.value = this.faceData.facePictureQualification
+      item4.name = "鎶撴媿鍥剧墖鍚堟牸鎬�"
+      item4.id = 5
+      item4.routerUrl = ""
+      item4.style = {
+        top: '23%',
+        right: '19%'
+      }
+      this.faceList.push(item4)
+
+      let item5 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item5.value = this.faceData.faceTimingAccuracy
+      item5.name = "鎶撴媿鍥剧墖鏃堕挓鍑嗙‘鎬�"
+      item5.id = 6
+      item5.routerUrl = ""
+      item5.style = {
+        top: '13%',
+        right: '2%'
+      }
+      this.faceList.push(item5)
+
+      let item6 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item6.value = this.faceData.faceUploadTimeliness
+      item6.name = "鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�"
+      item6.id = 7
+      item6.routerUrl = ""
+      item6.style = {
+        bottom: '2%',
+        right: '19%'
+      }
+      this.faceList.push(item6)
+
+      let item7 = {value: 0, name: "", id: 0, routerUrl: ""}
+      item7.value = this.faceData.facePictureAvailability
+      item7.name = "鎶撴媿鏁版嵁澶у浘鍙敤鎬�"
+      item7.id = 8
+      item7.routerUrl = ""
+      item7.style = {
+        bottom: '18%',
+        left: '2%'
+      }
+      this.faceList.push(item7)
+    },
   }
 }
 </script>
@@ -557,6 +741,7 @@
   header {
     position: relative;
     z-index: 4;
+
     img {
       width: 100%;
       display: block;
@@ -740,6 +925,8 @@
             background-repeat: no-repeat;
             display: flex;
             flex-direction: column;
+            //justify-content: center;
+            //align-items: center;
 
             .item-facility-icon {
               margin: 0 auto;
@@ -757,13 +944,15 @@
               flex-direction: column;
               justify-content: space-around;
               text-align: center;
-              font-size: 14px;
               list-style-type: none;
+              //font-size: 14px;
+              //padding-left: 0;
 
               li:nth-child(1) {
                 .value {
                   color: #e4b54f;
                 }
+
                 .title {
                   color: #dcf8ff;
                 }
@@ -773,6 +962,7 @@
                 .value {
                   color: #5cff9a;
                 }
+
                 .title {
                   color: #dcf8ff;
                 }
@@ -782,6 +972,7 @@
                 .value {
                   color: #ff7b72;
                 }
+
                 .title {
                   color: #dcf8ff;
                 }
@@ -797,6 +988,7 @@
         display: flex;
         flex-direction: column;
         height: 0;
+        //overflow: hidden;
 
         .title {
           width: 100%;
@@ -810,7 +1002,7 @@
           position: relative;
           border-bottom: 1px solid #3e97e4;
           border-right: 1px solid #3e97e4;
-          padding: 4% 4% 4% 0;
+          padding: 0 4% 4% 0;
           box-sizing: border-box;
           height: 0;
 
@@ -837,8 +1029,11 @@
 
           .list-title-container {
             width: 100%;
-            height: 45px;
-            line-height: 45px;
+            //height: 45px;
+            //margin: 4px 0 0 0;
+            //line-height: 45px;
+            height: 4.17vh;
+            line-height: 4.17vh;
             list-style-type: none;
             display: flex;
             flex-direction: row;
@@ -911,8 +1106,9 @@
 
             .list-content-to {
               height: 100%;
-              overflow-y: auto;
+              overflow-y: hidden;
               overflow-x: hidden;
+              //padding: 10px 0;
             }
 
             .item-list {
@@ -921,18 +1117,22 @@
               align-items: center;
               list-style-type: none;
               border-bottom: 1px dashed #223654;
+              margin: 7px 0;
               li {
                 width: 25%;
                 text-align: center;
-                font-size: 14px;
+                //font-size: 14px;
+                font-size: 0.72916667vw !important;
                 color: #dcf8ff;
                 flex-shrink: 0;
                 flex-grow: 0;
                 white-space: nowrap;
                 overflow: hidden;
                 text-overflow: ellipsis;
-                height: 44px;
-                line-height: 44px;
+                //height: 28px;
+                //line-height: 28px;
+                height: 2.59vh;
+                line-height: 2.59vh;
               }
 
               .name {
@@ -1015,7 +1215,8 @@
     }
 
     .footer-container {
-      height: 220px;
+      //height: 220px;
+      height: 24.15vh;
       box-sizing: border-box;
       position: relative;
       background-image: url("../../assets/images/footer-bg.png");
@@ -1041,19 +1242,10 @@
           position: relative;
 
           background-image: url("../../assets/images/face-bg.png");
-          background-size: 500px 200px;
+          //background-size: 500px 200px;
+          background-size: 26.04166vw auto;
           background-position: center;
           background-repeat: no-repeat;
-
-          // .face-bj-img {
-          //   position: absolute;
-          //   left: 50%;
-          //   top: 50%;
-          //   transform: translate(-50%, -50%);
-          //   width: 83.1946755%;
-          //   display: block;
-          //   z-index: 2;
-          // }
 
           .item-face-container {
             position: absolute;
@@ -1061,7 +1253,8 @@
             width: 22.296173%;
 
             .proportion {
-              width: 50px;
+              //width: 50px;
+              width: 2.60416vw;
               margin: 0 auto;
               color: #00eaff;
               text-shadow: 2px 2px 4px #152944;
@@ -1077,13 +1270,14 @@
                 left: 50%;
                 top: 53%;
                 transform: translate(-50%, -50%);
-                font-size: 14px;
+                //font-size: 14px;
               }
             }
 
             .title {
               text-align: center;
-              font-size: 12px;
+              //font-size: 12px;
+              font-size: 0.625vw;
               color: #dcf8ff;
               white-space: nowrap; /* 涓嶆崲琛� */
               overflow: hidden; /* 闅愯棌瓒呭嚭鐨勫唴瀹� */
@@ -1095,7 +1289,8 @@
         .car-container {
           position: relative;
           background-image: url("../../assets/images/car-bg2.png");
-          background-size: 500px 200px;
+          //background-size: 500px 200px;
+          background-size: 26.04166vw auto;
           background-position: center;
           background-repeat: no-repeat;
 
@@ -1116,6 +1311,7 @@
             font-size: 12px;
             line-height: 26px;
             padding: 0 15px;
+            font-size: 0.625vw;
             position: absolute;
             z-index: 5;
 
@@ -1163,7 +1359,8 @@
                 left: 50%;
                 top: 50%;
                 transform: translate(-50%, -50%);
-                font-size: 20px;
+                //font-size: 20px;
+                font-size: 1.04166vw;
                 font-weight: bold;
                 color: #00fcff;
                 text-shadow: 2px 2px 4px #152944;
@@ -1173,10 +1370,13 @@
             .item-video-title {
               text-align: center;
               color: #dcf8ff;
-              height: 32px;
-              font-size: 13px;
+              //height: 32px;
+              //font-size: 13px;
+              //flex-shrink: 0;
+              //flex-grow: 0;
               flex-shrink: 0;
               flex-grow: 0;
+              height: 3.51851vh;
               display: -webkit-box;
               -webkit-line-clamp: 2; /* 鏄剧ず鐨勮鏁� */
               -webkit-box-orient: vertical;
@@ -1205,4 +1405,41 @@
   border-radius: 0;
   background-color: #0d172c;
 }
+
+@keyframes rotateImage {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+
+@keyframes rotateCounterClockwise {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(-360deg); /* 娉ㄦ剰杩欓噷鏄�-360deg锛岃〃绀洪�嗘椂閽堟棆杞� */
+  }
+}
+
+.rotating-image {
+  width: 900px;
+  height: 900px;
+  position: absolute;
+  top: calc(50% - 450px);
+  left: calc(50% - 450px);
+  transform: skewX(-5deg) skewY(-10deg);
+  animation: rotateImage 36s linear infinite;
+}
+
+.rotating-image-in {
+  width: 850px;
+  height: 850px;
+  position: absolute;
+  top: calc(50% - 425px);
+  left: calc(50% - 425px);
+  animation: rotateCounterClockwise 48s linear infinite;
+}
 </style>

--
Gitblit v1.8.0