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 | 1447 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,424 insertions(+), 23 deletions(-)

diff --git a/src/views/screen/index.vue b/src/views/screen/index.vue
index 26ed82b..5080d2e 100644
--- a/src/views/screen/index.vue
+++ b/src/views/screen/index.vue
@@ -1,44 +1,1445 @@
 <template>
-  <div class="screen-container">
-    <screen-title></screen-title>
-    <v-scale-screen width="1920" height="1080" :autoScale="true" :delay="0" class="screen">
-      <screen-wrapper></screen-wrapper>
-    </v-scale-screen>
-  </div>
+  <div class="container" ref="contaner">
+    <header>
+      <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"/>
+        <div class="main-left-container">
+          <div class="work-order-container">
+            <img
+              src="@/assets/images/subheading1.png"
+              class="subheading-title"
+            />
+            <div class="statistics-container">
+              <div
+                class="item-statistics-container"
+                v-for="(item, index) in statistics"
+                :key="index"
+              >
+                <itemSubheading :isData="item"></itemSubheading>
+              </div>
+            </div>
+            <img
+              src="@/assets/images/decorate-border.png"
+              class="decorate-border"
+            />
+          </div>
 
+          <div class="histogram-container">
+            <img
+              src="@/assets/images/subheading1.png"
+              class="subheading-title"
+            />
+            <div class="statistics-container">
+              <div class="DrawLine-content">
+                <!-- <div style="width: 100%; height: 100%" ref="myDrawLine"></div> -->
+                <lineChart :workOrderRegion=workOrderRegion></lineChart>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="map-container" ref="isMap">
+        <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" v-model="activerBtnType">
+            <img
+              :src="activerBtnType === item.id ? item.bgActiver : item.bg"
+              v-for="item in btnList"
+              :key="item.id"
+              @click="tabChange(item.id)"
+            />
+          </div>
+        </div>
+      </div>
+
+      <div class="data-statistics-content">
+        <div class="facility-container">
+          <img src="@/assets/images/facility-title.png" class="title"/>
+          <div class="facility-content">
+            <div class="item-facility-data">
+              <img
+                src="@/assets/images/facility-title-3.png"
+                class="item-facility-icon"
+              />
+              <ul>
+                <li v-for="(item, index) in facilityData.video" :key="index">
+                  <div class="value">
+                    <animate-number from="0" :to="item.value" :key="item.value"></animate-number>
+                  </div>
+                  <div class="title">{{ item.title }}</div>
+                </li>
+              </ul>
+            </div>
+            <div class="item-facility-data">
+              <img
+                src="@/assets/images/facility-title-1.png"
+                class="item-facility-icon"
+              />
+              <ul>
+                <li v-for="(item, index) in facilityData.car" :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>
+            </div>
+            <div class="item-facility-data">
+              <img
+                src="@/assets/images/facility-title-2.png"
+                class="item-facility-icon"
+              />
+              <ul>
+                <li
+                  v-for="(item, index) in facilityData.face"
+                  :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>
+            </div>
+          </div>
+        </div>
+        <div class="normal-container">
+          <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>
+            </ul>
+            <div class="list-content">
+              <div class="list-content-to is-scroll-bar">
+                <ul
+                  class="item-list"
+                  v-for="(item, index) in facilityNormal"
+                  :key="index"
+                >
+                  <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"/>
+    </div>
+
+    <footer>
+      <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"
+              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"><animate-number from="0" :to="item.value" :key="item.value"></animate-number>%</div>
+              </div>
+              <div class="title">{{ item.name }}</div>
+            </div>
+          </div>
+
+          <div class="video-container">
+            <div
+              class="item-video-data"
+              v-for="(item, index) in videoList"
+              :key="index"
+            >
+              <div class="video-data">
+                <div class="proportion"><animate-number from="0" :to="item.value" :key="item.value"></animate-number>%</div>
+              </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 carList"
+              :key="index"
+              :style="item.style"
+            >
+              {{ item.name }} <span><animate-number from="0" :to="item.value" :key="item.value"></animate-number>%</span>
+            </div>
+          </div>
+        </div>
+      </div>
+    </footer>
+  </div>
 </template>
 
 <script>
-import ScreenTitle from './components/screen-title/index.vue';
-import ScreenWrapper from './components/screen-wrapper/index.vue';
-
+import itemSubheading from '../screen/components/subheading.vue' // 鐜舰缁熻鍥�
+import lineChart from '../screen/components/lineChart.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: 'App',
-  components: {
-    ScreenTitle,
-    ScreenWrapper,
-  },
+  name: 'examineApp',
+  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: [],
+        car: [],
+        face: []
+      },
+      // 璁惧姝e父鐜�
+      facilityNormal: [],
+      // 浜鸿劯鑰冩牳
+      faceData: [],
+      // 瑙嗛鑰冩牳
+      videoData: [],
+      // 杞﹁締鑰冩牳
+      carData: [],
+      // 榛樿閫変腑鎸夐挳 1 鐪佸巺 2 鍖哄幙 3 鍏畨
+      btnList: [
+        {
+          id: '1',
+          bg: require('@/assets/images/st-btn-1.png'),
+          bgActiver: require('@/assets/images/st-btn-2.png')
+        },
+        {
+          id: '2',
+          bg: require('@/assets/images/qx-btn-1.png'),
+          bgActiver: require('@/assets/images/qx-btn-2.png')
+        },
+        {
+          id: '3',
+          bg: require('@/assets/images/ga-btn-1.png'),
+          bgActiver: require('@/assets/images/ga-btn-2.png')
+        }
+      ],
+      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>
 
 <style lang="scss" scoped>
-.screen-container {
-  user-select: none;
-  -webkit-user-select: none;
-}
-.screen {
-  background: url('../../assets/images/screen/pageBg1.jpg') !important;
-  background-size: cover !important;
-  background-repeat: no-repeat !important;
-  background-position: center center !important;
+.container {
+  width: 100vw;
+  height: 100vh;
+  // min-width: 1919px;
+  background-image: url("../../assets/images/background-img.jpg");
+  background-color: #fff;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  background-position: center;
+  display: flex;
+  flex-direction: column;
+  overflow: hidden;
+  position: relative;
+
+  header {
+    position: relative;
+    z-index: 4;
+
+    img {
+      width: 100%;
+      display: block;
+    }
+  }
+
+  .main-contaner {
+    flex: 1;
+    width: 100%;
+    height: 0;
+    display: flex;
+    flex-direction: row;
+    margin-top: -2%;
+    position: relative;
+
+    .data-statistics-content {
+      width: 20.833333%;
+      padding-left: 1%;
+      padding-right: 1%;
+      padding-top: 0.5%;
+      box-sizing: border-box;
+      height: 100%;
+      display: flex;
+      flex-direction: column;
+
+      .title {
+        width: 100%;
+        flex-shrink: 0;
+        flex-grow: 0;
+        display: block;
+      }
+
+      .main-left-container {
+        position: relative;
+        height: 100%;
+        border-bottom: 1px solid #3e97e4;
+        border-left: 1px solid #3e97e4;
+        padding: 4% 0 4% 4%;
+        box-sizing: border-box;
+        display: flex;
+        flex-direction: column;
+
+        &::after {
+          width: 2px;
+          height: 20px;
+          content: "";
+          position: absolute;
+          left: -6px;
+          top: -18px;
+          background-color: #3e97e4;
+          transform: rotate(-30deg);
+        }
+
+        &::before {
+          width: 43px;
+          height: 40px;
+          content: "";
+          position: absolute;
+          background-image: url("../../assets/images/border-l-icon.png");
+          bottom: 0;
+          left: 0;
+        }
+
+        .work-order-container {
+          height: 40%;
+          flex-shrink: 0;
+          flex-grow: 0;
+          display: flex;
+          flex-direction: column;
+
+          .subheading-title {
+            width: 97%;
+            display: block;
+            flex-shrink: 0;
+            flex-grow: 0;
+          }
+
+          .statistics-container {
+            display: flex;
+            flex-direction: row;
+            align-items: center;
+            flex: 1;
+            margin: 0 -5px;
+
+            .item-statistics-container {
+              width: calc(33.33% - 10px);
+              margin: 0 5px;
+            }
+          }
+
+          .decorate-border {
+            width: 100%;
+            display: block;
+          }
+        }
+
+        .histogram-container {
+          padding-top: 5%;
+          box-sizing: border-box;
+          height: 60%;
+          flex-shrink: 0;
+          flex-grow: 0;
+          display: flex;
+          flex-direction: column;
+
+          .subheading-title {
+            width: 97.3%;
+            display: block;
+            flex-shrink: 0;
+            flex-grow: 0;
+          }
+
+          .statistics-container {
+            flex: 1;
+            position: relative;
+
+            .DrawLine-content {
+              position: absolute;
+              width: 100%;
+              height: 100%;
+              left: 0;
+              right: 0;
+              top: 0;
+              bottom: 0;
+            }
+          }
+        }
+      }
+
+      .facility-container {
+        height: 45.9754434%;
+        display: flex;
+        flex-direction: column;
+        flex-shrink: 0;
+        flex-grow: 0;
+
+        .title {
+          width: 100%;
+          flex-shrink: 0;
+          flex-grow: 0;
+          display: block;
+        }
+
+        .facility-content {
+          flex: 1;
+          position: relative;
+          border-bottom: 1px solid #3e97e4;
+          border-right: 1px solid #3e97e4;
+          display: flex;
+          padding-top: 4%;
+          flex-direction: row;
+          overflow: hidden;
+
+          &::after {
+            width: 2px;
+            height: 20px;
+            content: "";
+            position: absolute;
+            right: -6px;
+            top: -18px;
+            background-color: #3e97e4;
+            transform: rotate(30deg);
+          }
+
+          &::before {
+            width: 43px;
+            height: 40px;
+            content: "";
+            position: absolute;
+            background-image: url("../../assets/images/border-icon.png");
+            bottom: 0;
+            right: 0;
+          }
+
+          .item-facility-data {
+            width: 33.33%;
+            flex-shrink: 0;
+            flex-grow: 0;
+            background-image: url("../../assets/images/item-facility.png");
+            background-size: 100% auto;
+            background-repeat: no-repeat;
+            display: flex;
+            flex-direction: column;
+            //justify-content: center;
+            //align-items: center;
+
+            .item-facility-icon {
+              margin: 0 auto;
+              margin-top: 10%;
+              width: 73%;
+              display: block;
+              flex-shrink: 0;
+              flex-grow: 0;
+            }
+
+            ul {
+              flex: 1;
+              box-sizing: border-box;
+              display: flex;
+              flex-direction: column;
+              justify-content: space-around;
+              text-align: center;
+              list-style-type: none;
+              //font-size: 14px;
+              //padding-left: 0;
+
+              li:nth-child(1) {
+                .value {
+                  color: #e4b54f;
+                }
+
+                .title {
+                  color: #dcf8ff;
+                }
+              }
+
+              li:nth-child(2) {
+                .value {
+                  color: #5cff9a;
+                }
+
+                .title {
+                  color: #dcf8ff;
+                }
+              }
+
+              li:nth-child(3) {
+                .value {
+                  color: #ff7b72;
+                }
+
+                .title {
+                  color: #dcf8ff;
+                }
+              }
+            }
+          }
+        }
+      }
+
+      .normal-container {
+        margin-top: 2%;
+        flex: 1;
+        display: flex;
+        flex-direction: column;
+        height: 0;
+        //overflow: hidden;
+
+        .title {
+          width: 100%;
+          flex-shrink: 0;
+          flex-grow: 0;
+          display: block;
+        }
+
+        .normal-statistics-content {
+          flex: 1;
+          position: relative;
+          border-bottom: 1px solid #3e97e4;
+          border-right: 1px solid #3e97e4;
+          padding: 0 4% 4% 0;
+          box-sizing: border-box;
+          height: 0;
+
+          &::after {
+            width: 2px;
+            height: 20px;
+            content: "";
+            position: absolute;
+            right: -6px;
+            top: -18px;
+            background-color: #3e97e4;
+            transform: rotate(30deg);
+          }
+
+          &::before {
+            width: 43px;
+            height: 40px;
+            content: "";
+            position: absolute;
+            background-image: url("../../assets/images/border-icon.png");
+            bottom: 0;
+            right: 0;
+          }
+
+          .list-title-container {
+            width: 100%;
+            //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;
+            background-color: #09316b;
+            box-shadow: inset 0 0 16px rgba(25, 99, 210, 0.1);
+            flex-shrink: 0;
+            flex-grow: 0;
+            position: relative;
+
+            &::after {
+              position: absolute;
+              top: 0;
+              left: 0;
+              content: "";
+              width: 15px;
+              height: 15px;
+              background-image: url("../../assets/images/list-t-l-icon.png");
+            }
+
+            &::before {
+              position: absolute;
+              top: 0;
+              right: 0;
+              content: "";
+              width: 15px;
+              height: 15px;
+              background-image: url("../../assets/images/list-t-r-icon.png");
+            }
+
+            li {
+              width: 25%;
+              text-align: center;
+              font-size: 14px;
+              color: #00e6f4;
+              flex-shrink: 0;
+              flex-grow: 0;
+              white-space: nowrap;
+              overflow: hidden;
+              text-overflow: ellipsis;
+            }
+          }
+
+          .list-content {
+            height: calc(100% - 45px);
+
+            background-image: url("../../assets/images/list-bg.png");
+            background-size: 100% 100%;
+            box-shadow: inset 0 0 20px rgba(25, 99, 210, 0.1);
+            position: relative;
+
+            &::after {
+              position: absolute;
+              bottom: 0;
+              left: 0;
+              content: "";
+              width: 15px;
+              height: 15px;
+              background-image: url("../../assets/images/list-b-l-icon.png");
+            }
+
+            &::before {
+              position: absolute;
+              bottom: 0;
+              right: 0;
+              content: "";
+              width: 15px;
+              height: 15px;
+              background-image: url("../../assets/images/list-b-r-icon.png");
+            }
+
+            .list-content-to {
+              height: 100%;
+              overflow-y: hidden;
+              overflow-x: hidden;
+              //padding: 10px 0;
+            }
+
+            .item-list {
+              display: flex;
+              flex-direction: row;
+              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: 0.72916667vw !important;
+                color: #dcf8ff;
+                flex-shrink: 0;
+                flex-grow: 0;
+                white-space: nowrap;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                //height: 28px;
+                //line-height: 28px;
+                height: 2.59vh;
+                line-height: 2.59vh;
+              }
+
+              .name {
+                color: #00b4ff;
+              }
+            }
+          }
+        }
+      }
+    }
+
+    .map-container {
+      flex: 1;
+      height: 100%;
+      margin: 0 1%;
+      position: relative;
+      overflow: hidden;
+      // background-image: url('../assets//images/face-num-bg3.png');
+      // border:1px solid #ddd;
+      // box-sizing: border-box;
+
+      .main-map {
+        height: 100%;
+        overflow: hidden;
+      }
+
+      .btn-container {
+        width: 60%;
+        position: absolute;
+        top: 5%;
+        left: 50%;
+        transform: translateX(-50%);
+        z-index: 99;
+
+        .bg-img {
+          width: 100%;
+        }
+
+        .btn-list {
+          width: 100%;
+          height: 100%;
+          position: absolute;
+          top: 0;
+          left: 0;
+          padding-top: 3.3%;
+          padding-left: 16.4%;
+          padding-right: 16.4%;
+          box-sizing: border-box;
+          display: flex;
+          flex-direction: row;
+          align-items: center;
+          justify-content: space-between;
+
+          img {
+            width: 26.638484%;
+            flex-shrink: 0;
+            flex-grow: 0;
+            display: block;
+            cursor: pointer;
+            user-select: none;
+          }
+        }
+      }
+    }
+
+    .video-title {
+      width: 60.5208333%;
+      position: absolute;
+      z-index: 8;
+      left: 50%;
+      transform: translateX(-50%);
+      bottom: 0;
+    }
+  }
+
+  footer {
+    .footer-title {
+      width: 100%;
+      display: block;
+    }
+
+    .footer-container {
+      //height: 220px;
+      height: 24.15vh;
+      box-sizing: border-box;
+      position: relative;
+      background-image: url("../../assets/images/footer-bg.png");
+      background-size: cover;
+      background-position: center;
+
+      .footer-statistics-container {
+        width: 100%;
+        height: 100%;
+        padding-bottom: 24px;
+        box-sizing: border-box;
+        display: flex;
+        flex-direction: row;
+        align-items: stretch;
+
+        .face-container,
+        .car-container {
+          flex: 1;
+          height: 100%;
+        }
+
+        .face-container {
+          position: relative;
+
+          background-image: url("../../assets/images/face-bg.png");
+          //background-size: 500px 200px;
+          background-size: 26.04166vw auto;
+          background-position: center;
+          background-repeat: no-repeat;
+
+          .item-face-container {
+            position: absolute;
+            z-index: 4;
+            width: 22.296173%;
+
+            .proportion {
+              //width: 50px;
+              width: 2.60416vw;
+              margin: 0 auto;
+              color: #00eaff;
+              text-shadow: 2px 2px 4px #152944;
+              position: relative;
+
+              img {
+                width: 100%;
+                display: block;
+              }
+
+              .value {
+                position: absolute;
+                left: 50%;
+                top: 53%;
+                transform: translate(-50%, -50%);
+                //font-size: 14px;
+              }
+            }
+
+            .title {
+              text-align: center;
+              //font-size: 12px;
+              font-size: 0.625vw;
+              color: #dcf8ff;
+              white-space: nowrap; /* 涓嶆崲琛� */
+              overflow: hidden; /* 闅愯棌瓒呭嚭鐨勫唴瀹� */
+              text-overflow: ellipsis; /* 鐢ㄧ渷鐣ュ彿琛ㄧず琚殣钘忕殑閮ㄥ垎 */
+            }
+          }
+        }
+
+        .car-container {
+          position: relative;
+          background-image: url("../../assets/images/car-bg2.png");
+          //background-size: 500px 200px;
+          background-size: 26.04166vw auto;
+          background-position: center;
+          background-repeat: no-repeat;
+
+          // .car-bj-img {
+          //   position: absolute;
+          //   left: 50%;
+          //   top: 50%;
+          //   transform: translate(-50%, -50%);
+          //   width: 83.1946755%;
+          //   display: block;
+          //   z-index: 2;
+          // }
+
+          .item-car-container {
+            background-image: url("../../assets/images/item-car-bg.png");
+            background-size: 100% 100%;
+            color: #dcf8ff;
+            font-size: 12px;
+            line-height: 26px;
+            padding: 0 15px;
+            font-size: 0.625vw;
+            position: absolute;
+            z-index: 5;
+
+            span {
+              color: #ffc23e;
+            }
+          }
+        }
+
+        .video-container {
+          width: 37.6041667%;
+          height: 100%;
+          flex-shrink: 0;
+          flex-grow: 0;
+          display: flex;
+          flex-direction: row;
+          flex-wrap: wrap;
+          align-items: self-start;
+          box-sizing: border-box;
+
+          .item-video-data {
+            width: 14.2857143%;
+            flex-grow: 0;
+            padding: 0 10px;
+            box-sizing: border-box;
+            height: 50%;
+            display: flex;
+            flex-direction: column;
+
+            .video-data {
+              flex: 1;
+              position: relative;
+              background-image: url("../../assets/images/item-video-bg.png");
+              background-size: 100%;
+              background-position: center;
+              background-repeat: no-repeat;
+
+              img {
+                width: 100%;
+                display: block;
+              }
+
+              .proportion {
+                position: absolute;
+                left: 50%;
+                top: 50%;
+                transform: translate(-50%, -50%);
+                //font-size: 20px;
+                font-size: 1.04166vw;
+                font-weight: bold;
+                color: #00fcff;
+                text-shadow: 2px 2px 4px #152944;
+              }
+            }
+
+            .item-video-title {
+              text-align: center;
+              color: #dcf8ff;
+              //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;
+              overflow: hidden;
+            }
+          }
+        }
+      }
+    }
+  }
 }
 
+.is-scroll-bar::-webkit-scrollbar {
+  width: 4px;
+}
+
+.is-scroll-bar::-webkit-scrollbar-thumb {
+  border-radius: 0px;
+  box-shadow: inset 0 0 5px #1e75d9;
+  background-color: #1e75d9;
+  opacity: 0.2;
+}
+
+.is-scroll-bar::-webkit-scrollbar-track {
+  box-shadow: inset 0 0 5px #0d172c;
+  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