From 414212d6d55f8d3e924787bece138ede7e0ab6af Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 28 十月 2024 12:19:33 +0800
Subject: [PATCH] 数据中心视频优化完
---
src/views/screen/index.vue | 1459 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,435 insertions(+), 24 deletions(-)
diff --git a/src/views/screen/index.vue b/src/views/screen/index.vue
index 2d85420..2649739 100644
--- a/src/views/screen/index.vue
+++ b/src/views/screen/index.vue
@@ -1,44 +1,1455 @@
<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 style="font-size: 14px" class="value">
+ <animate-number from="0" :to="item.value" :key="item.value"></animate-number>
+ </div>
+ <div style="font-size: 14px" 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 style="font-size: 14px" class="value"><animate-number from="0" :to="item.value" :key="item.value"></animate-number></div>
+ <div style="font-size: 14px" 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 style="font-size: 14px" class="value"><animate-number from="0" :to="item.value" :key="item.value"></animate-number></div>
+ <div style="font-size: 14px" 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 + '%' : '--' }}</li>-->
+<!-- <li>{{ item.carRate ? item.carRate + '%' : '--' }}</li>-->
+<!-- <li>{{ item.faceRate ? item.faceRate + '%' : '--' }}</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: '',
+ intervalId: null, // 鐢ㄤ簬瀛樺偍瀹氭椂鍣ㄧ殑ID
+ 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();
+ // 鏌ヨ鏁版嵁
+ this.intervalId = setInterval(this.getData, 3600000); //涓�灏忔椂涓�娆�
+ },
+ beforeDestroy() {
+ // 缁勪欢閿�姣佸墠娓呴櫎瀹氭椂鍣紝闃叉鍐呭瓨娉勬紡
+ if (this.intervalId) {
+ clearInterval(this.intervalId);
+ this.intervalId = null;
+ }
+ },
+ 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;
+ }
+ }
+ }
+ }
+ }
+ }
}
-</style>
\ No newline at end of file
+.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