<template> <div class="wrapper"> <span class="dot-left"></span> <div class="top display-default"> <div class="left text ddd" :title="data.deviceName">{{ data.deviceName }}</div> <div class="right text"> <img src="../../assets/images/closeBtn.png" alt="" @click="close" /> </div> </div> <!-- 设备信息 --> <div class="content scrollStyle"> <div class="eq-content display-default"> <div class="text-wrapper"> <div class="eq-text"> 设备类型:<span>{{ title ? title : "-" }}</span> </div> <div class="eq-text"> 设备型号:<span>{{ data.deviceModel ? data.deviceModel : "-" }}</span> </div> <div class="eq-text"> 所属管道:<span>{{ data.pipeName ? data.pipeName : "-" }}</span> </div> <div class="eq-text"> 物联网编号:<span>{{ data.iotNo ? data.iotNo : "-" }}</span> </div> </div> <div class="pic"> <img v-bind:src="data.iconUrl" alt="" /> </div> </div> <!-- 维修人员 --> <div class="maintain-content"> <el-col :span="11"> <div> <span>安装日期:</span> <span>{{ moment(data.installationTime).format("YYYY-MM-DD") }}</span> </div> </el-col> <el-col :span="13"> <div> <span>最后巡检日期:</span> <span>{{ data.inspectionTime ? data.inspectionTime : "-" }}</span> </div> </el-col> <div> <span>设备所在地址:</span> <span>{{ data.pipeAddr ? data.pipeAddr : "-"}}</span> </div> <div> <span>备注信息:</span> <span>{{ data.remarks ? data.remarks : "-"}} </span> </div> </div> </div> <!-- 报警状态 --> <div class="warn-wrapper" v-if="true"> <!-- <div class="warn-content"> <div>报警状态:<span>报警</span></div> <div>详细信息:<span>管线两端设备压差较大,管线可能泄漏</span></div> </div> --> <template v-if="data.deviceType ==3 || data.deviceType==4"> <div v-if="data.deviceType==3" class="windowwarn-content" style=" border-bottom: 1px solid #e2e2e2; padding: 10px 0 2px 22px; height: 150px;padding-bottom: 2px; "> <el-col :span="12"> <div class="windowwarn"> 标况累积量:<span class="standardConditionAccumulation">-</span> </div> </el-col> <el-col :span="11"> <div class="windowwarn"> 工况累积量:<span class="workingConditionAccumulation">-</span> </div> </el-col> <el-col :span="12"> <div class="windowwarn"> 剩余量:<span class="residualQuantity">-</span> </div> </el-col> <el-col :span="11"> <div class="windowwarn"> 标况流量:<span class="standardConditionFlow">-</span> </div> </el-col> <el-col :span="12"> <div class="windowwarn"> 工况流量:<span class="workingConditionFlow">-</span> </div> </el-col> <el-col :span="11"> <div class="windowwarn"> 温度:<span class="temperature">-</span> </div> </el-col> <el-col :span="12"> <div class="windowwarn"> 压力:<span class="pressure">-</span> </div> </el-col> <el-col :span="15"> <div class="windowwarn"> 上报时间:<span class="reportTime">-</span> </div> </el-col> </div> <div v-if="data.deviceType==4" class="windowwarn-content" style=" border-bottom: 1px solid #e2e2e2; padding: 10px 0 2px 22px; height: 70px;padding-bottom: 2px; "> <el-col :span="24"> <div class="windowwarn"> 压力:<span class="pressure">-</span> </div> </el-col> <el-col :span="24"> <div class="windowwarn"> 上报时间:<span class="reportTime">-</span> </div> </el-col> </div> </template> <div class="btn"> <span @mousedown.stop="deviceMore"> <el-button class="elbtn" type="primary">设备详情</el-button> </span> <!-- <el-button class="elbtn" type="primary">生成工单</el-button> --> </div> </div> </div> </template> <script> let closeInfoWindowTimer = null; import { getWindowData } from "@/api/dataMonitoring/reportData"; import moment from "moment"; //line移入时的的infowindow export default { props: { obj: { typs: Object }, title: "", data: {}, map: null, }, data() { return { deviceId: "", alarm: {}, } }, mounted() { clearInterval(this.data.class.view.deviceTimer); if (this.data.deviceType == 3 || this.data.deviceType == 4) { this.getDataid(); this.data.class.view.deviceTimer = setInterval(this.getDataid, 5000); closeInfoWindowTimer = setInterval(() => { const dom= document.getElementsByClassName("amap-info")[0]; const disPlay =dom?.style.display; if (!dom || (dom && disPlay == "none")) { clearInterval(this.data.class.view.deviceTimer) clearInterval(closeInfoWindowTimer) console.log("请求关闭") } }, 1000) } }, methods: { moment, deviceMore() { this.data.class.view.$router.push({ // path: "/dataMonitoring/realtimedetail", path: "/device/deviceInfoDetail", query: { deviceId: this.data.deviceId, // deviceType: this.data.deviceType, }, }); }, getDataid() { getWindowData(this.data.deviceId).then(response => { this.changeValue(response.data) }) }, changeValue(data) { const keyArr = Object.keys(data); keyArr.forEach((item) => { const dw = this.danwei(item) const dom = document.getElementsByClassName(item)[0]; if (dom) { dom.innerHTML = data[item] +" "+ dw; } }) }, danwei(item) { let dw=''; if(item =='standardConditionAccumulation' || item == 'workingConditionAccumulation' || item == 'residualQuantity'){ dw="m³" }else if(item =='standardConditionFlow'|| item == 'workingConditionFlow'){ dw="m³/h" }else if(item =='temperature'){ dw="℃" }else if(item == 'pressure'){ dw="KPa" }else if(item == 'reportTime'){ dw=" " } return dw; } , close() { this.map.clearInfoWindow(); this.data.class.view.domAllShow() }, }, }; </script> <style lang="scss" scoped> .windowwarn-content { div { font-size: 14px; font-wwight: 400; .windowwarn { margin-bottom: 7px; } } } .wrapper { width: 406px; max-height: 600px; // background: #fff; border-radius: 4px; background: rgba(7, 29, 51, 0.9); box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16); color: #fff; // overflow: hidden; .top { width: 100%; height: 51px; // background-color: #053b6a; background-image: url(../../assets/images/blueTopBg.png); background-size: 100% 100%; background-position: center; &:before { // content: ""; // position: absolute; // left: -20px; // top: 5px; // width: 0px; // height: 0px; // z-index:-1; // border-top: 15px solid transparent; // border-bottom: 15px solid transparent; // border-right: 30px solid #053b6a; content: ""; position: absolute; left: -20px; top: 5px; z-index: -1; width: 33px; height: 33px; background-image: url(../../assets/images/blueLeftTriangle.png); } .text { font-weight: 600; font-size: 16px; color: #ffffff; line-height: 51px; } .left { padding-left: 22px; } .right { padding-right: 22px; img { cursor: pointer; } } } .content { position: relative; max-height: 300px; overflow: hidden; overflow-y: auto; padding-bottom: 2px; border-bottom: 1px solid #eeeeee; .eq-content { // min-height: 156px; box-sizing: border-box; padding: 13px 22px 0px 22px; // border-bottom: 1px solid #e2e2e2; .text-wrapper { padding-top: 1px; &>div { margin-bottom: 6px; } .eq-text { font-size: 14px; font-weight: 400; // color: #1d1d1d; color: #fff; opacity: 1; &>span { vertical-align: top; display: inline-block; // white-space: nowrap; // text-overflow: ellipsis; // overflow: hidden; word-break: break-all; max-width: 100px; } } } .pic { width: 180px; height: 103px; // background-color: black; img { width: 100%; height: 100%; // cursor: pointer; } } } } .maintain-content { width: 100%; max-height: 119px; padding-left: 22px; // padding-right: 22px; // padding-bottom: 10px; // padding-top: 16px; box-sizing: border-box; // border-bottom: 1px solid #e2e2e2; &>div { margin-bottom: 8px; font-size: 14px; font-weight: 400; span { vertical-align: top; display: inline-block; word-break: break-all; max-width: 280px; } } } .warn-wrapper { .warn-content { box-sizing: border-box; padding: 10px 0 2px 22px; border-bottom: 1px solid #e2e2e2; color: #fe5966; &>div { font-size: 14px; font-weight: 400; margin-bottom: 8px; } } .btn { padding: 16px 0; text-align: center; .elbtn { background-color: #053b6a; box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16); width: 95px; height: 33px; } } } } .wrapperEditorPage {} .display-default { display: flex; justify-content: space-between; } </style>