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 + '%' : '--' }}</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: '', + 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