<template> <div class="device"> <svg-icon icon-class="pop-cross" class="close" @click="changePage"/> <div style="height: 48%"> <div :style="{backgroundImage:'url('+titleAll+')'}" class="title" style="padding-left: 50px;"> 设备详情 </div> <div :style="{backgroundImage:'url('+titleImg+')'}" class="title"> 基本信息 </div> <div class="name"> 设备名称:<span class="value">{{ device.devName }}</span> </div> <div class="name"> 设备类型:<span class="value">{{ device.devTypeName }}</span> </div> <div class="name"> 设备状态: <span v-if="device.statusName==='在线'" class="value" style="margin-left:-2px;color: #08f102">{{ device.statusName }}</span> <span v-else-if="device.statusName==='离线'" class="value" style="margin-left:-2px;color: #9b9b9b">{{ device.statusName }}</span> <span v-else class="value" style="margin-left:-2px;color: red">{{ device.statusName }}</span> </div> <div class="name"> 所在楼栋:<span class="value">{{ device.positionName }}</span> </div> <div class="name"> 所在楼层:<span class="value">{{ device.areaName }}</span> </div> <div class="name" :style="{height:'55px'}"> 设备位置:<span class="value">{{ device.detailLocation }}</span> </div> </div> <div id="dev-video" class="block"> <div :style="{backgroundImage:'url('+titleImg+')'}" class="title"> 监控视频 </div> <iframe id="playHK" name="playHK" class="iframe-body" src="/static/webCtrl/hk/demo_embedded_for_iframe.html" /> </div> </div> </template> <script> import { repostSocket } from '@/api/common' import { getDrawNoDevice } from '@/api/pop' export default { name: 'Device', data() { return { isShow: true, titleImg: require('@/assets/popup/title.png'), // 背景图片 titleAll: require('@/assets/popup/title-all.png'), // 背景图片 item: require('@/assets/popup/item.png'), // 背景图片 device: { area: '', areaName: '', createTime: '', detailLocation: '', devCode: '', devName: '', devType: '', devTypeName: '', id: '', ids: '', indexCode: '', installTime: '', ip: '', isKeyArea: '', isKeyAreaName: '', position: '', positionName: '', remarks: '', sn: '', status: '', statusName: '', updateTime: '' } } }, mounted() { this.initData() // const that = this // window.addEventListener('resize', function() { // that.reload() // }) }, watch: { $route(val) { this.initData() } }, methods: { async initData() { if (this.$route.query && this.$route.query.message) { getDrawNoDevice(this.$route.query.message.slice(7)).then(async response => { if (response.code === 200) { this.device = response.data await this.$nextTick() setTimeout(() => { try { document.getElementById('playHK').contentWindow.initPlugin('real', window.screen.availWidth - 500, window.screen.availHeight / 2 - 40) } catch (e) { } finally { setTimeout(() => { document.getElementById('playHK').contentWindow.play(this.device.indexCode) }, 1000) } }, 1000) } }) } }, async reload() { // this.isShow = false await this.$nextTick() document.getElementById('playHK').contentWindow.initPlugin('real', window.screen.availWidth - 500, window.screen.availHeight / 2 - 40) // this.isShow = true }, changePage() { const params = { type: 'menu', message: 'show' } repostSocket(params).then(response => { if (response.code === 200) { } }) } } } </script> <style rel="stylesheet/scss" lang="scss" scoped> .iframe-body{ height: 90%; width: 100%; frameBorder: 0; scrolling: no; border: 0; vspale: 0; z-index: -1; padding:0 !important; } .device{ background: linear-gradient(to top left, rgba(5, 30, 61, 0.62), #0D3F7E9D); border-radius: 5px; width: 500px; height: 100%; margin-left: 10px; box-shadow: 4px 4px 40px rgba(0, 0, 0, .05); border-color: rgba(0, 0, 0, .05); .block{ height: 48%; width: 100%; display: flex; flex-wrap: wrap; } .title{ text-shadow: 0 0 5px #d1ffff; width: 500px; height: 35px; background-repeat: no-repeat; -webkit-background-size: 100% 100%; background-size: 100% 100%; color: white; font-weight: bold; padding-top: 8px; padding-left: 30px; font-family: 黑体; letter-spacing: 1px; } .name{ width: 480px; height: 30px; line-height: 25px; color: white; font-weight: bold; padding-left: 15px; margin-top: 5px; margin-left: 10px; padding-top: 2px; font-size: 15px; border-radius: 5px; font-family: 黑体; font-weight: normal; background: linear-gradient(to left, #efc58733, #39a0d333); //border-left: 5px solid #219cfa; // border-bottom: 5px solid linear-gradient(to left, #efc58733, #39a0d333); } .value{ margin-left: 5px; color: white; font-weight: bold; } .area-map-image{ margin-right: 10px; margin-left: 5px; width: 100%; height: 80%; } .item{ flex: 1; font-weight: bold; text-align: center; font-size: 15px; } .close{ position: absolute; right: 20px; top:5px; color:white; background: #fc2323cc; width: 25px; height:25px; border-radius: 5px; padding: 3px; } } </style>