You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2468 lines
81 KiB
2468 lines
81 KiB
<template> |
|
<!-- 监控 --> |
|
<div v-if="monitoringState" class="door"> |
|
<!-- 各楼栋楼层切换 --> |
|
<clickCp :bimModel="bimModel" sbType="监控" ref="clickcp" :conditions="conditions"> |
|
</clickCp> |
|
<!-- 返回主视角 --> |
|
<backHome ref="backHome" :bimModel="bimModel" type="监控" :condition="condition" dom=".mapDom"></backHome> |
|
<div style="position: absolute; left: 84px; top: 210px" v-if="bimModel == 1"> |
|
<!-- <div class="build-message" style=" |
|
color: white; |
|
text-align: center; |
|
border: 1px solid rgb(0, 187, 255); |
|
width: 110px; |
|
margin: 0 auto; |
|
border-radius: 5px; |
|
padding: 5px 0; |
|
"> |
|
{{ buildMessage }} |
|
</div> --> |
|
<div class="mapDom" style="width: 250px; height: 180px; margin-top: 20px"></div> |
|
</div> |
|
<div v-if="!monitoring"> |
|
<div class="box2" :class="bimModel == 2 ? 'tataigen' : ''"> |
|
<div class="title flex-center"> |
|
<img class="icon" src="../../../public/img/monitoring/electricity/sbIcon.png" /> |
|
<span>设备概况</span> |
|
</div> |
|
<div class="state flex-center-center"> |
|
<div class="zc flex-center" style="font-family: fantasy"> |
|
<span style="margin-left: 72px">{{ listData.normalEquipNumber }}</span> |
|
</div> |
|
<div class="lx flex-center" style="font-family: fantasy"> |
|
<span style="margin-left: 72px">{{ listData.warnEquipEquipNumber }}</span> |
|
</div> |
|
</div> |
|
<div class="stateName flex-center-center"> |
|
<span class="zc">正常</span> |
|
<span class="lx">设备告警</span> |
|
</div> |
|
<div class="tab_box"> |
|
<div class="tab_one" :style="{ color: isAlarm ? 'red' : '#fff' }"> |
|
<el-badge :is-dot="isAlarm" class="item">设备告警</el-badge><span |
|
style="margin-left: 5px; vertical-align: bottom">({{ listData.warnEquipWarnNumber }})</span> |
|
</div> |
|
</div> |
|
<div class="flex-center tit" :class="bimModel == 2 ? 'tataitit' : ''"> |
|
<p>设备名称</p> |
|
<span>|</span> |
|
<p>报警信息</p> |
|
<span>|</span> |
|
<p>报警时间</p> |
|
</div> |
|
<div v-if=" |
|
JSON.stringify(listData) != '{}' && |
|
listData.warnEquipList && |
|
listData.warnEquipList.length == 0 |
|
" class="noBjxx"> |
|
暂无设备告警信息 |
|
</div> |
|
<div v-else class="warp"> |
|
<div class="item flex-center" v-for="(item, index) in listData.warnEquipList" :key="index" |
|
@mouseenter="showAlarmAlert(item, index)" style="position: relative" |
|
@mouseleave="closeAlarmAlert(item, index)"> |
|
<div :style="{ display: item.showAlert ? 'flex' : 'none' }" class="alarm-alert"> |
|
<p @click="bjClick(item)" v-if="item.modelId != ''"> |
|
<img src="../../../public/img/monitoring/electricity/alark-detail-icon.png" alt="" /> |
|
<span>查看详情</span> |
|
</p> |
|
<span v-if="item.confirmStatus == '0' && item.modelId != ''">|</span> |
|
<p v-if="item.confirmStatus == '0'" @click="doCancelWarn(item)"> |
|
<img src="../../../public/img/monitoring/electricity/close-alark-icon.png" alt="" /> |
|
<span>确认告警</span> |
|
</p> |
|
<span v-if="item.warnStatus == 1 && (item.modelId != '' || item.confirmStatus == '0')">|</span> |
|
<p v-if="item.warnStatus == 1" @click="doRecoveryWarn(item)"> |
|
<i class="el-icon-refresh-right" style="margin-right:10px;"></i> |
|
<span>告警恢复</span> |
|
</p> |
|
</div> |
|
<div class="box flex-center" :class="bimModel == 2 ? 'tataicon' : ''"> |
|
<div class="left flex-center-center"> |
|
<img class="icon" src="../../../public/img/monitoring/electricity/lx.png" v-if="item.warnStatus == 2" /> |
|
<img class="icon" src="../../../public/img/monitoring/electricity/bj.png" v-else /> |
|
<span class="message" :style="{ color: item.warnStatus == 2 ? 'white' : item.warnStatus == 1 ? '#ff000' : 'white', }" |
|
v-text="item.name"></span> |
|
</div> |
|
<span class=""></span> |
|
<span class="data" :style="{ color: item.warnStatus == 2 ? 'white' : item.warnStatus == 1 ? '#ff000' : 'white', }">{{ item.warnContent |
|
}}</span> |
|
<span class=""></span> |
|
<span class="time" :style="{ color: item.warnStatus == 2 ? 'white' : item.warnStatus == 1 ? '#ff000' : 'white', }">{{ |
|
item.warnDate.substring(5, 16) |
|
}}</span> |
|
</div> |
|
</div> |
|
</div> |
|
<div style=" |
|
position: absolute; |
|
bottom: 10px; |
|
right: 10px; |
|
width: 345px; |
|
text-align: right; |
|
color: rgb(7, 230, 237); |
|
font-size: 14px; |
|
cursor: pointer; |
|
"> |
|
<span @click="goMoreWarnList">查看报警详情</span> |
|
</div> |
|
</div> |
|
<!-- 设备列表 --> |
|
<div class="tab" :class="bimModel == 2 ? 'tataigen' : ''"> |
|
<div class="title flex-center"> |
|
<img src="../../../public/img/monitoring/electricity/listIcon3.png" /> |
|
<span id="monit_box">设备列表</span> |
|
</div> |
|
<div class="tabBox"> |
|
<el-table @row-click="tableClick" :data="tableData" style="width: 100%; max-height: 210px" @row-contextmenu="tableContext" |
|
:class="bimModel == 2 ? 'tataitab' : ''"> |
|
<el-table-column label="设备名称" min-width="150"> |
|
<template slot-scope="scope"> |
|
<div class="flex-center mon_box" style=" |
|
overflow: hidden; |
|
text-overflow: ellipsis; |
|
cursor: pointer; |
|
" @click="bjClick(scope.row)"> |
|
<img v-if="scope.row.status == 90000" style="margin: 0 6px" |
|
src="../../../public/img/monitoring/electricity/listIcon.png" /> |
|
<img v-else-if="scope.row.status == 90001" style="margin: 0 6px" |
|
src="../../../public/img/monitoring/electricity/listIcon2.png" /> |
|
<img v-else style="margin: 0 6px" src="../../../public/img/monitoring/electricity/listIcon4.png" /> |
|
<span :style="{ |
|
color: |
|
scope.row.status == 90000 |
|
? 'white' |
|
: scope.row.status == 90001 |
|
? '#a5bbe5' |
|
: '#ff0000', |
|
}" style=" |
|
overflow: hidden; |
|
text-overflow: ellipsis; |
|
white-space: nowrap; |
|
" :title="scope.row.name">{{ scope.row.name }}</span> |
|
</div> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="|" width="5"> </el-table-column> |
|
<el-table-column label="设备位置" width="120"> |
|
<template slot-scope="scope"> |
|
<div class="flex-center mon_box" style=" |
|
overflow: hidden; |
|
text-overflow: ellipsis; |
|
cursor: pointer; |
|
" @click="bjClick(scope.row)"> |
|
<span :style="{ |
|
color: |
|
scope.row.status == 90000 |
|
? 'white' |
|
: scope.row.status == 90001 |
|
? '#a5bbe5' |
|
: '#ff0000', |
|
}" style=" |
|
padding-left: 10px; |
|
overflow: hidden; |
|
text-overflow: ellipsis; |
|
white-space: nowrap; |
|
" :title="scope.row.location">{{ scope.row.location }}</span> |
|
</div> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="|" width="5"> </el-table-column> |
|
<el-table-column label="操作" width="50"> |
|
<template slot-scope="scope"> |
|
<div class="flex-center-center"> |
|
<img @click="goMonitoring(scope.row)" v-if="scope.row.status != 90001" |
|
src="../../../public/img/monitoring/caozuo2.png" /> |
|
<img v-else src="../../../public/img/monitoring/caozuo1.png" /> |
|
</div> |
|
</template> |
|
</el-table-column> |
|
</el-table> |
|
</div> |
|
<!-- 分页 --> |
|
<div class="pagination"> |
|
<el-pagination :pager-count="4" background @current-change="handleCurrentChange" :current-page.sync="current" |
|
:page-size="size" layout="total, prev, pager, next" :total="total"> |
|
</el-pagination> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<div v-if="monitoring" class="monitoring2"> |
|
<div class="title flex-center"> |
|
<img src="../../../public/img/monitoring/sblb.png" /> |
|
<span>实时监控</span> |
|
</div> |
|
<div class="btn_box"> |
|
<div class="btn" @click="playBack">回放</div> |
|
<div class="btn" @click="closeView">关闭</div> |
|
</div> |
|
<!-- 海康监控 --> |
|
<hk-monitoring :codeId="codeId" ref="hkmonitoring1" id="hkmonitoring1"></hk-monitoring> |
|
</div> |
|
</div> |
|
</template> |
|
|
|
<script> |
|
import * as bfHelper from "../../util/bfHelper"; |
|
import * as commonValue from "../../util/commonValue"; |
|
import hkMonitoring from "@/components/monitoring/hkMonitoring"; |
|
import { |
|
// 业务区 |
|
getMonitoringSblb, //设备列表 |
|
// getMonitoringGK, |
|
// 塔台 |
|
getmonData, //根据modelid获取摄像头信息 |
|
getMonitoringList, //设备列表无分页 |
|
getCameraWarnList, //报警列表 |
|
getCancelWarn, //关闭报警 |
|
recoveryWarn,//恢复告警 |
|
} from "@/api/garden/monitoring"; |
|
import clickCp from "./clickCp"; |
|
import backHome from "./backHome"; |
|
import { monitorPosition, monitorCamera } from "@/option/monitoring/monitors"; |
|
export default { |
|
props: { |
|
monitoringState: { |
|
type: Boolean, |
|
}, |
|
bimModel: { |
|
type: Number, |
|
}, |
|
}, |
|
components: { |
|
hkMonitoring, |
|
backHome, |
|
clickCp, |
|
}, |
|
data() { |
|
return { |
|
codeId: null, //监控点位编号 |
|
monitoring: false, //是否显示监控 |
|
list: ["1#", "2#", "3#", "4#", "5#", "6#", "室外"], //选项列表 |
|
checkList: [], //勾选结果 |
|
listData: {}, //报警信息 |
|
classOption: { |
|
step: 0.2, |
|
}, //报警信息滚动速度 |
|
options: [], //设备位置 |
|
ywqSbwz: [], //业务区设备位置 |
|
ttSbwz: [], //塔台设备位置 |
|
build: null, //当前选择的设备位置 |
|
floor: null, //当前选择的设备位置 |
|
current: 1, //当前页 |
|
size: 5, //每页数量 |
|
total: 0, //总条目数 |
|
tableData: [], //设备列表 |
|
// 标签配置区 |
|
reload: 100, //是否再次执行添加标签 防止相机一直触发一直销毁添加标签导致卡顿 |
|
floorBqShow: false, //查看设备回滚视角时是否允许添加每一楼层的标签 |
|
|
|
// 业务区 1-6号楼+园区+运动场+室外地坪+地下室的文件id 地下室最后一个 |
|
tower: bfHelper.ywqTowerFileId, |
|
// 业务区 1-6号楼楼层标签点位(按123层) |
|
position: bfHelper.ywqFloorPt, |
|
// 业务区 1-6号楼每层的摄像头数量(按123层) |
|
floorNum: [ |
|
[4, 4, 3], |
|
[22, 3, 7], |
|
[7, 2], |
|
[5, 6, 7], |
|
[22, 4, 8], |
|
[9, 4, 5], |
|
], |
|
// 业务区 每号楼的视角 |
|
cameraPosition: bfHelper.ywqCameraPosition, |
|
// 摄像头的筛选条件 |
|
condition: bfHelper.equipmentCondition2[5], |
|
|
|
// 塔台 主塔+辅楼+室外整体 |
|
fileId: bfHelper.ttTowerFileId, |
|
// 单击自定义二维标签的item |
|
currentItem: "", |
|
classList: {}, |
|
monitor: false, |
|
// 是否拥有权限 |
|
isMon: "", |
|
isAlarm: false, |
|
isSafe: false, |
|
alarmTotal: 0, |
|
safeTotal: 0, |
|
buildMessage: "", |
|
monitorPosition: monitorPosition, //每个摄像机的包围盒坐标 |
|
monitorCamera: monitorCamera, //每层的视角 |
|
startCamera: { |
|
aspect: 1.889763779527559, |
|
coordinateSystem: "world", |
|
far: 224492.99849073135, |
|
fov: 45, |
|
name: "persp", |
|
near: 139057.56912454384, |
|
position: { |
|
x: -48909.56879122951, |
|
y: -554729.997803423, |
|
z: 35608.88916657928, |
|
}, |
|
target: { |
|
x: -29906.02103304434, |
|
y: 343504.8821214207, |
|
z: 21637.329723417766, |
|
}, |
|
up: { |
|
x: 0.00032889260193379297, |
|
y: 0.015545622434416368, |
|
z: 0.9998791054186414, |
|
}, |
|
version: 1, |
|
zoom: 1, |
|
}, |
|
isShowAll: true, //显示所有的摄像头 |
|
}; |
|
}, |
|
created() { |
|
// this.getBjxx(); //报警信息 |
|
// this.getSbgk(); //设备概况 |
|
this.getCameraWarnList(); //告警列表 |
|
this.getSblb(); //设备列表 |
|
|
|
this.setInterval = setInterval(() => { |
|
// this.getSbgk(); //设备位置 |
|
this.getCameraWarnList(); //告警列表 |
|
this.getSblb(); //设备列表 |
|
}, 3600000); |
|
}, |
|
beforeDestroy() { |
|
console.log('销毁interval') |
|
if (this.setInterval) { |
|
clearInterval(this.setInterval); |
|
} |
|
}, |
|
watch: { |
|
bimModel: { |
|
handler(newVal, oldVal) { |
|
this.checkList = []; |
|
this.build = ""; |
|
this.current = 1; //当前页 |
|
this.total = 0; //总条目数 |
|
|
|
if (this.setInterval) { |
|
clearInterval(this.setInterval); |
|
} |
|
|
|
this.setInterval = setInterval(() => { |
|
// this.getSbgk(); //设备位置 |
|
this.getSblb(); //设备列表 |
|
this.getCameraWarnList(); //告警列表 |
|
}, 3600000); |
|
|
|
// this.getSbgk(); //设备位置 |
|
this.getSblb(); //设备列表 |
|
this.getCameraWarnList(); //告警列表 |
|
|
|
this.reload = null; //是否再次执行添加标签 防止相机一直触发一直销毁添加标签导致卡顿 |
|
this.floorBqShow = false; //查看设备回滚视角时是否允许添加每一楼层的标签 |
|
|
|
this.codeId = null; |
|
this.monitoring = false; |
|
|
|
if (newVal == 1) { |
|
this.list = ["1#", "2#", "3#", "4#", "5#", "6#", "室外"]; |
|
this.options = this.ywqSbwz; |
|
} else { |
|
this.list = ["辅楼", "塔楼"]; |
|
this.options = this.ttSbwz; |
|
} |
|
}, |
|
}, |
|
//模型是否加载完成监听 |
|
"$store.state.bfHelperState.bfState": { |
|
immediate: true, |
|
handler(newval, olval) { |
|
if (newval) { |
|
// 模型恢复全部状态 |
|
bfHelper.resetStatus(2); |
|
this.onClick(); |
|
if (this.bimModel == 1) { |
|
window.sessionStorage.setItem( |
|
"camera", |
|
JSON.stringify(bfHelper.getCameraStatus()) |
|
); |
|
let build = sessionStorage.getItem("build"); |
|
let floor = sessionStorage.getItem("floor"); |
|
this.getCameraPosi(); |
|
if (build) { |
|
if (build == 10) { |
|
setTimeout(() => { |
|
this.setTowerMonitor("07"); |
|
this.$refs.clickcp.active = 26; |
|
this.$refs.clickcp.tower = 9; |
|
}, 300); |
|
bfHelper.lookPipeline2( |
|
this.condition, |
|
bfHelper.equipmentCopColors[0], |
|
build - 1, |
|
null, |
|
"监控" |
|
); |
|
} else if (build == 26) { |
|
bfHelper.lookPipeline(null, null, this.condition, "监控"); |
|
bfHelper.setOpacityFun(); |
|
setTimeout(() => { |
|
this.setTowerMonitor(); |
|
}, 300); |
|
this.initial(); |
|
} else { |
|
if (floor.indexOf("undefined") == -1) { |
|
setTimeout(() => { |
|
this.setTowerMonitor("0" + build, "0" + floor); |
|
this.$refs.clickcp.active = commonValue.activeValue( |
|
Number(build), |
|
Number(floor) |
|
); |
|
this.$refs.clickcp.tower = commonValue.towerValue(build); |
|
}, 300); |
|
bfHelper.lookPipeline2( |
|
this.condition, |
|
bfHelper.equipmentCopColors[0], |
|
build - 1, |
|
floor, |
|
"监控" |
|
); |
|
} else { |
|
setTimeout(() => { |
|
this.setTowerMonitor("0" + build); |
|
this.$refs.clickcp.active = commonValue.activeValue( |
|
Number(build), |
|
null |
|
); |
|
this.$refs.clickcp.tower = commonValue.towerValue(build); |
|
}, 300); |
|
bfHelper.lookPipeline2( |
|
this.condition, |
|
bfHelper.equipmentCopColors[0], |
|
build - 1, |
|
null, |
|
"监控" |
|
); |
|
} |
|
} |
|
} else { |
|
// 查看管线 |
|
bfHelper.lookPipeline(null, null, this.condition, "监控"); |
|
bfHelper.setOpacityFun(); |
|
setTimeout(() => { |
|
this.getNavigationMap(); |
|
this.buildMessage = "园区"; |
|
this.$refs.clickcp.active = 25; |
|
this.$refs.clickcp.tower = null; |
|
}, 300); |
|
this.initial(); |
|
} |
|
} else { |
|
// 查看管线 |
|
window.sessionStorage.setItem( |
|
"ttcamera", |
|
JSON.stringify(bfHelper.getCameraStatus()) |
|
); |
|
let ttbuild = sessionStorage.getItem("ttbuild"); |
|
if (ttbuild) { |
|
if (ttbuild == 20) { |
|
//园区 |
|
bfHelper.TtLookEquipmentCop("监控"); |
|
// bfHelper.setCameraStatus(this.startCamera) |
|
setTimeout(() => { |
|
this.setTowerMonitor(); |
|
}, 300); |
|
} else if (ttbuild == 0) { |
|
//塔楼 |
|
setTimeout(() => { |
|
this.setTowerMonitor("08"); |
|
this.$refs.clickcp.ttActive = 0; |
|
}, 300); |
|
bfHelper.ttLookPipeline2( |
|
null, |
|
null, |
|
0, |
|
"监控", |
|
bfHelper.equipmentCondition2[5] |
|
); |
|
} else if (ttbuild == 1) { |
|
//辅楼1楼 |
|
setTimeout(() => { |
|
this.setTowerMonitor("09", "01"); |
|
this.$refs.clickcp.ttActive = 1; |
|
}, 300); |
|
bfHelper.ttLookPipeline2( |
|
null, |
|
null, |
|
1, |
|
"监控", |
|
bfHelper.equipmentCondition2[5] |
|
); |
|
} else if (ttbuild == 2) { |
|
//辅楼1楼 |
|
setTimeout(() => { |
|
this.setTowerMonitor("09", "02"); |
|
this.$refs.clickcp.ttActive = 2; |
|
}, 300); |
|
bfHelper.ttLookPipeline2( |
|
null, |
|
null, |
|
2, |
|
"监控", |
|
bfHelper.equipmentCondition2[5] |
|
); |
|
} else if (ttbuild == 3) { |
|
//辅楼1楼 |
|
setTimeout(() => { |
|
this.setTowerMonitor("09"); |
|
this.$refs.clickcp.ttActive = 3; |
|
}, 300); |
|
bfHelper.ttLookPipeline2( |
|
null, |
|
null, |
|
3, |
|
"监控", |
|
bfHelper.equipmentCondition2[5] |
|
); |
|
} |
|
} else { |
|
// 查看管线 |
|
bfHelper.TtLookEquipmentCop("监控", null, this.condition); |
|
// bfHelper.setCameraStatus(this.startCamera) |
|
bfHelper.setOpacityFun1(); |
|
this.initial(); |
|
} |
|
} |
|
} |
|
}, |
|
}, |
|
|
|
currentItem: { |
|
//点击图标 |
|
handler(newVal, oldVal) { |
|
for (var i = 0; i < this.classList.length; i++) { |
|
if (newVal == this.classList[i].id.substring(7)) { |
|
//点击当前图标变色 |
|
this.classList[ |
|
i |
|
].src = `${require("../../../public/img/monitoring/electricity/camera22.png")}`; |
|
} |
|
if (oldVal && oldVal == this.classList[i].id.substring(7)) { |
|
//其它的图标显示相应的颜色 |
|
if (this.classList[i].alt == 90000) { |
|
this.classList[ |
|
i |
|
].src = `${require("../../../public/img/monitoring/electricity/camera11.png")}`; |
|
} else if (this.classList[i].alt == 90001) { |
|
this.classList[ |
|
i |
|
].src = `${require("../../../public/img/monitoring/electricity/camera-off.png")}`; |
|
} else { |
|
this.classList[ |
|
i |
|
].src = `${require("../../../public/img/monitoring/electricity/camera-bj.png")}`; |
|
} |
|
} |
|
} |
|
}, |
|
}, |
|
}, |
|
mounted() { |
|
let dom = document.getElementById('monit_box'); |
|
dom.addEventListener('contextmenu', (event)=> { |
|
event.preventDefault(); // 阻止默认菜单 |
|
const routerUrl = this.$router.resolve({ path: '/equipment/index', query: { classCode: '0400' } }); |
|
window.open(routerUrl.href, "_blank"); |
|
}); |
|
if (this.bimModel == 1) { |
|
this.getNavigationMap(); |
|
} |
|
}, |
|
methods: { |
|
tableContext(row,column, event){ |
|
event.preventDefault(); // 阻止默认菜单 |
|
const routerUrl = this.$router.resolve({ path: '/equipment/index', query: {code: row.code } }); |
|
window.open(routerUrl.href, "_blank"); |
|
// this.dialogVisible = true |
|
// console.log(row) |
|
}, |
|
//确认告警 - 重新查询告警列表 |
|
doCancelWarn(item) { |
|
getCancelWarn(item.id).then((res) => { |
|
this.getCameraWarnList(); |
|
item.confirmStatus = 1; |
|
}); |
|
}, |
|
//恢复告警 |
|
doRecoveryWarn(item) { |
|
recoveryWarn(item.id).then((res) => { |
|
item.warnStatus = 2; |
|
}) |
|
}, |
|
//跳转历史告警列表 |
|
goMoreWarnList() { |
|
// this.$router.push({ path: '/equipment/warnHistory' }); |
|
const routerUrl = this.$router.resolve({ |
|
path: "/equipment/warnHistory", |
|
query: { classCode: "0400", area: this.bimModel }, |
|
}); |
|
window.open(routerUrl.href, "_blank"); |
|
}, |
|
// 报警记录-20221031改版 |
|
getCameraWarnList() { |
|
getCameraWarnList({ |
|
area: this.bimModel, |
|
build: this.build ? this.build : "", |
|
floor: this.floor ? this.floor : "", |
|
}).then((res) => { |
|
this.listData = res.data.data; |
|
for (let i = 0; i < this.listData.warnEquipList.length; i++) { |
|
this.listData.warnEquipList[i].showAlert = false; |
|
} |
|
}); |
|
}, |
|
showAlarmAlert(item, index) { |
|
item.showAlert = true; |
|
this.listData.warnEquip.splice(index, 1, item); |
|
}, |
|
closeAlarmAlert(item, index) { |
|
item.showAlert = false; |
|
this.listData.warnEquip.splice(index, 1, item); |
|
}, |
|
getNavigationMap() { |
|
commonValue.getNavigationMap("monitor"); |
|
}, |
|
getCameraPosi() { |
|
let cameraPosi = bfHelper.getCameraStatus().position; |
|
let tower = null; |
|
let layer = null; |
|
for (let i = 0; i < bfHelper.buildBoxbounding.length; i++) { |
|
if ( |
|
cameraPosi.x > bfHelper.buildBoxbounding[i].build.min.x && |
|
cameraPosi.x <= bfHelper.buildBoxbounding[i].build.max.x && |
|
cameraPosi.y > bfHelper.buildBoxbounding[i].build.min.y && |
|
cameraPosi.y <= bfHelper.buildBoxbounding[i].build.max.y && |
|
cameraPosi.z > bfHelper.buildBoxbounding[i].build.min.z && |
|
cameraPosi.z <= bfHelper.buildBoxbounding[i].build.max.z |
|
) { |
|
tower = i; |
|
for (let j = 0; j < bfHelper.buildBoxbounding[i].floor.length; j++) { |
|
if ( |
|
cameraPosi.x > bfHelper.buildBoxbounding[i].floor[j].min.x && |
|
cameraPosi.x <= bfHelper.buildBoxbounding[i].floor[j].max.x && |
|
cameraPosi.y > bfHelper.buildBoxbounding[i].floor[j].min.y && |
|
cameraPosi.y <= bfHelper.buildBoxbounding[i].floor[j].max.y && |
|
cameraPosi.z > bfHelper.buildBoxbounding[i].floor[j].min.z && |
|
cameraPosi.z <= bfHelper.buildBoxbounding[i].floor[j].max.z |
|
) { |
|
// console.log(j) |
|
layer = j; |
|
// this.getMonitorIds('0' + (i + 1), '0' + (j + 1)) |
|
} |
|
} |
|
} |
|
} |
|
// console.log(tower,layer) |
|
if (tower != null && layer != null) { |
|
// console.log('888888') |
|
this.getMonitorIds("0" + (tower + 1), "0" + (layer + 1), "22"); |
|
this.isShowAll = false; |
|
} else { |
|
this.isShowAll = true; |
|
} |
|
}, |
|
setTowerMonitor(i, j) { |
|
this.current = 1; //当前页 |
|
this.total = 0; //总条目数 |
|
this.build = i; |
|
this.floor = j; |
|
// this.getSbgk(); |
|
this.getCameraWarnList(); //告警列表 |
|
this.getSblb(); |
|
if (this.bimModel == 1) { |
|
if (this.build != undefined) { |
|
if (j == undefined) { |
|
if (i == "07") { |
|
this.buildMessage = "地下室"; |
|
// 筛选条件 |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
this.getMonitorIds("07", ""); |
|
commonValue.getUpdateMap("monitor", i, j); |
|
return; |
|
} |
|
this.buildMessage = Number(i) + "号楼"; |
|
} else { |
|
this.buildMessage = Number(i) + "号楼" + Number(j) + "层"; |
|
// 筛选条件 |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
this.getMonitorIds(i, j); |
|
} |
|
} else { |
|
this.buildMessage = "园区"; |
|
} |
|
|
|
commonValue.getUpdateMap("monitor", i, j); |
|
} else { |
|
if (this.build != undefined) { |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
this.getMonitorIds(i, j ? j : ""); |
|
} else { |
|
this.buildMessage = "园区"; |
|
} |
|
} |
|
}, |
|
|
|
// 获取设备概况 |
|
// getSbgk() { |
|
// getMonitoringGK(this.bimModel, this.build ? this.build : '', this.floor ? this.floor : '').then(res => { |
|
|
|
// this.listData = res.data.data; |
|
|
|
// for (let i = 0; i < this.listData.systemWarmNum.length; i++) { |
|
// this.listData.systemWarmNum[i].showAlert = false |
|
// } |
|
// }) |
|
|
|
// }, |
|
// 获取设备列表 |
|
getSblb() { |
|
getMonitoringSblb( |
|
this.current, |
|
this.size, |
|
this.bimModel, |
|
this.build ? this.build : "", |
|
this.floor ? this.floor : "" |
|
).then((res) => { |
|
this.tableData = res.data.data.records; |
|
this.total = res.data.data.total; //总条目数 |
|
}); |
|
}, |
|
// 页码改变时触发 |
|
handleCurrentChange(val) { |
|
this.current = val; |
|
this.getSblb(); |
|
}, |
|
monitorImgContent(num) { |
|
let content = `<div class="leadTips" style="transform: translateY(-40px);"> |
|
<div style="display: flex;width:max-content"> |
|
<div style="display: flex;align-items: center;justify-content: center;color:#fff;font-size:18px;width:71px;height:40px;background-color: rgba(7, 67, 151, 0.8);box-shadow: #009cff 0px 0px 15px inset;border: 1px solid #00BAFE;border-radius: 12px;"> |
|
<img src="${require("../../../public/img/monitoring/monitoring.png")}" style="margin-right: 5px;width:30px;height:30px;"/> |
|
<span>${num}</span> |
|
</div> |
|
</div> |
|
</div>`; |
|
return content; |
|
}, |
|
bjClick(item) { |
|
let id = ""; |
|
if (this.bimModel == 2) { |
|
if (item.modelId == "") { |
|
} else { |
|
// bfHelper.resetStatus(2); |
|
bfHelper.clearDrawableContainer(); |
|
id = bfHelper.disposeId(item.area, item.build, item.modelId); |
|
if (item.build == "00") { |
|
//室外 |
|
id = bfHelper.disposeId(item.area, "10", item.modelId); |
|
bfHelper.zoomToBoundingBox(bfHelper.getBoxMessage(id), 20); |
|
} else if (item.build == "08") { |
|
//塔楼 |
|
bfHelper.ttLookPipeline2( |
|
null, |
|
null, |
|
0, |
|
"监控", |
|
bfHelper.equipmentCondition2[5] |
|
); |
|
} else if (item.build == "09") { |
|
//辅楼 |
|
|
|
// window.sessionStorage.setItem('ttcamera',JSON.stringify(camera)); |
|
bfHelper.ttLookPipeline2( |
|
null, |
|
null, |
|
Number(item.floored), |
|
"监控", |
|
bfHelper.equipmentCondition2[5], |
|
null, |
|
"single" |
|
); |
|
bfHelper.setCameraAnimation(false); // 设置模型动画开启关闭 |
|
bfHelper.setCameraView("Top"); |
|
bfHelper.zoomToBoundingBox(bfHelper.getBoxMessage(id), 120); |
|
} |
|
} |
|
} else { |
|
bfHelper.mapDestroy(); |
|
if (item.modelId == "") { |
|
} else { |
|
// bfHelper.mapDestroy(); |
|
bfHelper.clearDrawableContainer(); |
|
id = bfHelper.disposeId(item.area, item.build, item.modelId); |
|
|
|
if (item.build == "00") { |
|
bfHelper.navigationMap( |
|
".mapDom", |
|
require("../../../public/img/monitoring/mapviewer/total.png"), |
|
8, |
|
1 |
|
); |
|
this.buildMessage = "园区"; |
|
bfHelper.lookPipeline(null, null, this.condition, "监控"); |
|
} else if (item.build == "07") { |
|
bfHelper.navigationMap( |
|
".mapDom", |
|
require("../../../public/img/monitoring/mapviewer/electricity7b.png"), |
|
7, |
|
1 |
|
); |
|
this.buildMessage = "地下室"; |
|
let camera = bfHelper.cameraPosition[9]; |
|
window.sessionStorage.setItem("camera", JSON.stringify(camera)); |
|
bfHelper.lookPipeline2( |
|
this.condition, |
|
bfHelper.equipmentCopColors[0], |
|
9, |
|
null, |
|
"监控", |
|
null, |
|
null, |
|
true |
|
); |
|
} else { |
|
bfHelper.navigationMap( |
|
".mapDom", |
|
require("../../../public/img/monitoring/mapviewer/monitor" + |
|
Number(item.build) + |
|
"b" + |
|
Number(item.floored) + |
|
"f.png"), |
|
Number(item.build), |
|
Number(item.floored) |
|
); |
|
this.buildMessage = |
|
Number(item.build) + "号楼" + Number(item.floored) + "层"; |
|
let camera = bfHelper.cameraPosition[Number(item.build) - 1]; |
|
window.sessionStorage.setItem("camera", JSON.stringify(camera)); |
|
bfHelper.lookPipeline2( |
|
this.condition, |
|
bfHelper.equipmentCopColors[0], |
|
item.build - 1, |
|
Number(item.floored), |
|
"监控", |
|
null, |
|
null, |
|
true |
|
); |
|
} |
|
|
|
bfHelper.setOpacityFun(false); |
|
} |
|
} |
|
let content = `<div class="leadTips" style="transform: translateY(-40px);"> |
|
<div style="display: flex;width:max-content"> |
|
<img id='monitor${id}' alt='${item.status}' |
|
class = 'montorImg' src="${require(item.status == 90000 |
|
? "../../../public/img/monitoring/electricity/camera11.png" |
|
: item.status == 90001 |
|
? "../../../public/img/monitoring/electricity/camera-off.png" |
|
: "../../../public/img/monitoring/electricity/camera-bj.png")}" style="width:40px;height:40px;"/> |
|
</div> |
|
</div>`; |
|
// console.log(id) |
|
// console.log(bfHelper.getBoxMessage(id, true)) |
|
if (item.name == '1#2F阶级会议室') { |
|
bfHelper.customTag( |
|
{ x: '99783.95158224391', y: '-21212.222455260806', z: '6847.543165934141' }, |
|
null, |
|
content |
|
); |
|
} |
|
else { |
|
bfHelper.customTag( |
|
bfHelper.getBoxMessage(id, true).max, |
|
null, |
|
content, |
|
id |
|
); |
|
} |
|
bfHelper.customItemFun().onClick((item) => { |
|
this.classList = document.getElementsByClassName("montorImg"); |
|
bfHelper.setCameraAnimation(false); // 设置模型动画开启关闭 |
|
// 设置视角为俯视 |
|
let id = item.layerId; |
|
let index = id.lastIndexOf("."); |
|
id = id.substring(index + 1, id.length); |
|
getmonData(this.bimModel, id).then((res) => { |
|
// console.log(res) |
|
if (res.data.data.status != 90001) { |
|
this.codeId = res.data.data.thirdId; |
|
this.currentItem = item.layerId; |
|
this.monitoring = true; |
|
this.monitor = false; |
|
this.isMon = res.data.data.agentViewHis; |
|
} else { |
|
this.$message.warning("设备离线,不可查看"); |
|
} |
|
}); |
|
}); |
|
}, |
|
setBuildColor() { |
|
bfHelper.setConditionsColor( |
|
[ |
|
{ |
|
categoryId: -2000011, //墙 |
|
}, |
|
], |
|
"#09aef2" |
|
); |
|
|
|
// 设置1-6楼板颜色 |
|
bfHelper.setConditionsColor( |
|
[ |
|
{ |
|
categoryId: -2000032, //楼板 |
|
fileId: this.tower[0], |
|
}, |
|
{ |
|
categoryId: -2000032, //楼板 |
|
fileId: this.tower[1], |
|
}, |
|
{ |
|
categoryId: -2000032, //楼板 |
|
fileId: this.tower[2], |
|
}, |
|
{ |
|
categoryId: -2000032, //楼板 |
|
fileId: this.tower[3], |
|
}, |
|
{ |
|
categoryId: -2000032, //楼板 |
|
fileId: this.tower[4], |
|
}, |
|
{ |
|
categoryId: -2000032, //楼板 |
|
fileId: this.tower[5], |
|
}, |
|
{ |
|
categoryId: -2000032, //楼板 |
|
fileId: this.tower[9], |
|
}, |
|
], |
|
"#066fab" |
|
); |
|
}, |
|
restoreBuildColor() { |
|
let conditionArr = []; |
|
for (let i = 0; i < 6; i++) { |
|
let obj = { |
|
categoryId: -2000011, //墙 |
|
fileId: this.tower[i], |
|
}; |
|
let obj1 = { |
|
categoryId: -2000032, //墙 |
|
fileId: this.tower[i], |
|
}; |
|
let obj2 = { |
|
categoryId: -2001330, //墙 |
|
fileId: this.tower[i], |
|
}; |
|
conditionArr.push(obj, obj1, obj2); |
|
} |
|
bfHelper.restoreComponentsColorByObjectData(conditionArr); |
|
}, |
|
setOpacity() { |
|
// 设置运动场+室外道路透明度 |
|
bfHelper.overrideComponentsOpacityByObjectData( |
|
[ |
|
{ |
|
fileId: this.tower[7], |
|
}, |
|
{ |
|
fileId: this.tower[6], |
|
familyType: "沥青道路", |
|
}, |
|
{ |
|
fileId: this.tower[6], |
|
familyType: "石板路", |
|
}, |
|
], |
|
0.1 |
|
); |
|
|
|
bfHelper.overrideComponentsOpacityByObjectData( |
|
[ |
|
{ |
|
categoryId: "-2000032", |
|
family: "楼板", |
|
familyType: "楼板", |
|
fileId: this.tower[6], |
|
}, |
|
], |
|
1 |
|
); |
|
}, |
|
setFloorOpacity() { |
|
let conditionArr = [ |
|
{ |
|
family: "基本墙", |
|
}, |
|
{ |
|
family: "幕墙", |
|
}, |
|
{ |
|
family: "楼板", |
|
familyType: "楼板", |
|
fileId: this.tower[6], |
|
}, |
|
]; |
|
for (let i = 0; i < 6; i++) { |
|
let obj1 = { |
|
categoryId: -2000032, //楼板 |
|
fileId: this.tower[i], |
|
}; |
|
conditionArr.push(obj1); |
|
} |
|
return conditionArr; |
|
}, |
|
// 初始标签 |
|
initial() { |
|
if (this.bimModel == 1) { |
|
let origin = bfHelper.ywqOrigin; |
|
let height = null; //相机与原点的两点距离 |
|
// 业务区 |
|
// console.log(this.reload) |
|
bfHelper.CameraPositionChanged((data) => { |
|
// console.log(data) |
|
height = Math.sqrt( |
|
Math.pow(origin[0] - data.position.x, 2) + |
|
Math.pow(origin[1] - data.position.y, 2) + |
|
Math.pow(origin[2] - data.position.z, 2) |
|
); |
|
// console.log(height) |
|
if (700000 <= height && this.reload != 1) { |
|
// 显示一级标签 总的 |
|
this.monitoring = false; |
|
bfHelper.setCameraAnimation(true); // 设置模型动画开启关闭 |
|
bfHelper.cancelSelected(); // 清除选中状态 |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
let position = bfHelper.ywqStairPt; |
|
bfHelper.customTag(position, null, this.monitorImgContent(181)); |
|
this.setBuildColor(); |
|
this.setOpacity(); |
|
bfHelper.overrideComponentsOpacityByObjectData( |
|
[ |
|
{ |
|
family: "基本墙", |
|
}, |
|
{ |
|
family: "幕墙", |
|
}, |
|
{ |
|
categoryId: -2000032, //楼板 |
|
}, |
|
], |
|
0.1 |
|
); |
|
this.reload = 1; |
|
return; |
|
} else if (400000 <= height && height < 700000 && this.reload != 2) { |
|
// 显示二级标签 室外和室内 |
|
this.monitoring = false; |
|
bfHelper.setCameraAnimation(true); // 设置模型动画开启关闭 |
|
bfHelper.cancelSelected(); // 清除选中状态 |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
let position = bfHelper.ywqSecondLevelPt; |
|
let num = [122, 37]; |
|
for (let i = 0; i < num.length; i++) { |
|
bfHelper.customTag( |
|
position[i], |
|
null, |
|
this.monitorImgContent(num[i]) |
|
); |
|
} |
|
this.setBuildColor(); |
|
this.setOpacity(); |
|
bfHelper.overrideComponentsOpacityByObjectData( |
|
[ |
|
{ |
|
family: "基本墙", |
|
}, |
|
{ |
|
family: "幕墙", |
|
}, |
|
{ |
|
categoryId: -2000032, //楼板 |
|
}, |
|
], |
|
0.1 |
|
); |
|
this.reload = 2; |
|
return; |
|
} else if (height >= 300000 && height < 400000 && this.reload != 3) { |
|
bfHelper.showComponentsByObjectData([ |
|
{ |
|
family: "楼板", |
|
}, |
|
{ |
|
family: "基本墙", |
|
}, |
|
]); |
|
// // 隐藏多余墙体 |
|
bfHelper.hideComponentsByObjectData([ |
|
{ |
|
fileId: this.tower[6], |
|
familyType: "楼板", |
|
}, |
|
]); |
|
bfHelper.mapDestroy(); |
|
bfHelper.navigationMap( |
|
".mapDom", |
|
require("../../../public/img/monitoring/mapviewer/total.png"), |
|
8, |
|
1 |
|
); |
|
this.buildMessage = "园区"; |
|
// 显示三级标签 每号楼 |
|
this.monitoring = false; |
|
bfHelper.setCameraAnimation(true); // 设置模型动画开启关闭 |
|
bfHelper.cancelSelected(); // 清除选中状态 |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
this.getMonitorIds("00", ""); |
|
this.build = ""; |
|
this.floor = ""; |
|
// this.getSbgk(); |
|
this.getCameraWarnList(); //告警列表 |
|
this.getSblb(); |
|
this.setBuildColor(); |
|
this.setOpacity(); |
|
bfHelper.overrideComponentsOpacityByObjectData( |
|
this.setFloorOpacity(), |
|
0.2 |
|
); |
|
let position = bfHelper.ywqThreeLevelPt; |
|
let num = [11, 32, 9, 18, 34, 18, 21]; |
|
for (let i = 0; i < num.length; i++) { |
|
bfHelper.customTag( |
|
position[i], |
|
null, |
|
this.monitorImgContent(num[i]) |
|
); |
|
bfHelper.customItemFun().onClick((item) => { |
|
for (let a = 0; a < position.length; a++) { |
|
if ( |
|
item.worldPosition.x == position[a].x && |
|
item.worldPosition.y == position[a].y && |
|
item.worldPosition.z == position[a].z |
|
) { |
|
// 处理点击1-6号楼 |
|
this.towerIndex = a; |
|
if (a != 6) { |
|
this.threeBtn(a); |
|
} else { |
|
// 点击地下室 |
|
this.basementBtn(a); |
|
} |
|
return; |
|
} |
|
} |
|
}); |
|
} |
|
this.reload = 3; |
|
return; |
|
} |
|
// else if (height >= 200000 && height < 300000 && this.reload != 3) { |
|
// this.restoreBuildColor(); |
|
// this.setOpacity(); |
|
// bfHelper.overrideComponentsOpacityByObjectData(this.setFloorOpacity(), 0.4) |
|
// this.reload = 3; |
|
// return |
|
// } |
|
else if ( |
|
height >= 200000 && |
|
height < 300000 && |
|
this.reload != 3 && |
|
this.floorBqShow |
|
) { |
|
this.monitoring = false; |
|
bfHelper.setCameraAnimation(true); // 设置模型动画开启关闭 |
|
bfHelper.cancelSelected(); // 清除选中状态 |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
this.threeBtn(this.towerIndex); |
|
this.reload = 3; |
|
this.floorBqShow = false; |
|
this.restoreBuildColor(); |
|
this.setOpacity(); |
|
bfHelper.overrideComponentsOpacityByObjectData( |
|
this.setFloorOpacity(), |
|
0.5 |
|
); |
|
this.reload = 4; |
|
return; |
|
} else if (height < 300000 && height > 80000 && this.reload != 4) { |
|
// 显示三级标签 每号楼 |
|
this.restoreBuildColor(); |
|
this.setOpacity(); |
|
bfHelper.overrideComponentsOpacityByObjectData( |
|
this.setFloorOpacity(), |
|
0.7 |
|
); |
|
this.reload = 4; |
|
return; |
|
} else if ( |
|
height < 300000 && |
|
height > 80000 && |
|
this.reload == 100 && |
|
this.isShowAll |
|
) { |
|
// 显示三级标签 每号楼 |
|
this.isMapViewer = 0; |
|
this.monitoring = false; |
|
bfHelper.setCameraAnimation(true); // 设置模型动画开启关闭 |
|
bfHelper.cancelSelected(); // 清除选中状态 |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
this.getMonitorIds("00", ""); |
|
this.build = ""; |
|
this.floor = ""; |
|
// this.getSbgk(); |
|
this.getCameraWarnList(); //告警列表 |
|
this.getSblb(); |
|
this.restoreBuildColor(); |
|
this.setOpacity(); |
|
bfHelper.overrideComponentsOpacityByObjectData( |
|
this.setFloorOpacity(), |
|
0.7 |
|
); |
|
// bfHelper.showAllComponents(); // 显示全部构件 |
|
let position = bfHelper.ywqThreeLevelPt; |
|
let num = [11, 32, 9, 18, 34, 18, 21]; |
|
for (let i = 0; i < num.length; i++) { |
|
bfHelper.customTag( |
|
position[i], |
|
null, |
|
this.monitorImgContent(num[i]) |
|
); |
|
bfHelper.customItemFun().onClick((item) => { |
|
for (let a = 0; a < position.length; a++) { |
|
if ( |
|
item.worldPosition.x == position[a].x && |
|
item.worldPosition.y == position[a].y && |
|
item.worldPosition.z == position[a].z |
|
) { |
|
// 处理点击1-6号楼 |
|
this.towerIndex = a; |
|
if (a != 6) { |
|
this.threeBtn(a); |
|
} else { |
|
// 点击地下室 |
|
this.basementBtn(a); |
|
} |
|
return; |
|
} |
|
} |
|
}); |
|
} |
|
this.reload = 4; |
|
return; |
|
} |
|
// else if (height <= 80000 && this.reload == 100 && this.isShowAll) { //别的页面放大到模型附近切换监控页面显示全部的监控图标标签 |
|
// bfHelper.setCameraAnimation(true); // 设置模型动画开启关闭 |
|
// bfHelper.cancelSelected(); // 清除选中状态 |
|
// bfHelper.clearDrawableContainer(); //清除外部标签 |
|
// this.getMonitorIds('', '') |
|
// this.isShowAll = false |
|
// return |
|
// } |
|
}); |
|
} else { |
|
// 塔台 |
|
let origin = bfHelper.ttOrigin; //原点 |
|
let height = null; //相机与原点的两点距离 |
|
// 业务区 |
|
// console.log(this.reload) |
|
bfHelper.CameraPositionChanged((data) => { |
|
height = Math.sqrt( |
|
Math.pow(origin[0] - data.position.x, 2) + |
|
Math.pow(origin[1] - data.position.y, 2) + |
|
Math.pow(origin[2] - data.position.z, 2) |
|
); |
|
// console.log(height) |
|
|
|
if (300000 <= height && this.reload != 1) { |
|
// 显示一级标签 |
|
this.monitoring = false; |
|
bfHelper.setCameraAnimation(true); // 设置模型动画开启关闭 |
|
bfHelper.cancelSelected(); // 清除选中状态 |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
// bfHelper.showAllComponents(); // 显示全部构件 |
|
let position = bfHelper.ttStairPt; |
|
bfHelper.customTag(position, null, this.monitorImgContent(69)); |
|
this.reload = 1; |
|
return; |
|
} else if (height < 300000 && height >= 200000 && this.reload != 2) { |
|
// 显示二级标签 |
|
this.monitoring = false; |
|
bfHelper.setCameraAnimation(true); // 设置模型动画开启关闭 |
|
bfHelper.cancelSelected(); // 清除选中状态 |
|
bfHelper.clearDrawableContainer(); //清除外部标签 |
|
// 塔台+室外整体+辅楼(1层+2层) |
|
// 根据筛选条件显示构件 |
|
bfHelper.showComponentsByObjectData([ |
|
{ |
|
fileId: this.fileId[1], |
|
family: "楼板", |
|
}, |
|
{ |
|
fileId: this.fileId[1], |
|
family: "基本墙", |
|
}, |
|
{ |
|
fileId: this.fileId[0], |
|
family: "楼板", |
|
}, |
|
{ |
|
fileId: this.fileId[0], |
|
family: "基本墙", |
|
}, |
|
{ |
|
categoryId: "-2003400", //外墙 甜甜筒 |
|
fileId: this.fileId[0], |
|
}, |
|
]); |
|
let position = bfHelper.ttSecondLevelPt; |
|
let num = [35, 21, 9, 4]; |
|
for (let i = 0; i < num.length; i++) { |
|
bfHelper.customTag( |
|
position[i], |
|
null, |
|
this.monitorImgContent(num[i]) |
|
); |
|
bfHelper.customItemFun().onClick((item) => { |
|
// 不显示三级标签 |
|
this.reload = null; //滑动滚轮开启重新加载标签 |
|
bfHelper.clearDrawableContainer(); //清除所有标签 |
|
bfHelper.setCameraAnimation(false); // 设置模型动画开启关闭 |
|
|
|
if ( |
|
item.worldPosition.x == position[0].x && |
|
item.worldPosition.y == position[0].y && |
|
item.worldPosition.z == position[0].z |
|
) { |
|
// 点击塔台 |
|
// 添加标签 |
|
this.getMonitorIds("08", ""); |
|
this.floorBqShow = true; |
|
return; |
|
} else if ( |
|
item.worldPosition.x == position[1].x && |
|
item.worldPosition.y == position[1].y && |
|
item.worldPosition.z == position[1].z |
|
) { |
|
// 点击室外整体 |
|
// 添加标签 |
|
this.getMonitorIds("00", ""); |
|
this.floorBqShow = true; |
|
return; |
|
} else if ( |
|
item.worldPosition.x == position[2].x && |
|
item.worldPosition.y == position[2].y && |
|
item.worldPosition.z == position[2].z |
|
) { |
|
// 点击辅楼第一层 |
|
// 根据筛选条件隐藏构件/隐藏当前楼全部构件 |
|
bfHelper.hideComponentsByObjectData([ |
|
{ |
|
fileId: this.fileId[0], |
|
}, |
|
{ |
|
fileId: this.fileId[1], |
|
}, |
|
]); |
|
// 根据筛选条件显示构件 |
|
bfHelper.showComponentsByObjectData([ |
|
{ |
|
fileId: this.fileId[1], |
|
levelName: "L1", |
|
family: "楼板", |
|
}, |
|
{ |
|
fileId: this.fileId[1], |
|
levelName: "L1", |
|
family: "基本墙", |
|
}, |
|
]); |
|
this.getMonitorIds("09", "01"); |
|
this.floorBqShow = true; |
|
return; |
|
} else { |
|
// 点击辅楼第二层 |
|
|
|
// 根据筛选条件隐藏构件/隐藏当前楼全部构件 |
|
bfHelper.hideComponentsByObjectData([ |
|
{ |
|
fileId: this.fileId[0], |
|
}, |
|
{ |
|
fileId: this.fileId[1], |
|
}, |
|
]); |
|
// 根据筛选条件显示构件 |
|
bfHelper.showComponentsByObjectData([ |
|
{ |
|
fileId: this.fileId[1], |
|
levelName: "L1", |
|
family: "楼板", |
|
}, |
|
{ |
|
fileId: this.fileId[1], |
|
levelName: "L1", |
|
family: "基本墙", |
|
}, |
|
{ |
|
fileId: this.fileId[1], |
|
levelName: "L2", |
|
family: "楼板", |
|
}, |
|
{ |
|
fileId: this.fileId[1], |
|
levelName: "L2", |
|
family: "基本墙", |
|
}, |
|
]); |
|
|
|
this.getMonitorIds("09", "02"); |
|
|
|
this.floorBqShow = true; |
|
} |
|
}); |
|
} |
|
this.reload = 2; |
|
} |
|
}); |
|
} |
|
}, |
|
// 点击1-6楼三级标签 |
|
threeBtn(index) { |
|
// console.log(index) |
|
this.build = "0" + (index + 1); |
|
this.floor = ""; |
|
// this.getSbgk(); |
|
this.getCameraWarnList(); //告警列表 |
|
this.getSblb(); |
|
bfHelper.setCameraAnimation(false); |
|
// 根据筛选条件隐藏构件 |
|
bfHelper.showComponentsByObjectData([ |
|
{ |
|
fileId: this.tower[index], |
|
// 'levelName': `${b+1}F`, |
|
family: "楼板", |
|
}, |
|
{ |
|
fileId: this.tower[index], |
|
// 'levelName': `${b+1}F`, |
|
family: "基本墙", |
|
}, |
|
]); |
|
bfHelper.mapDestroy(); |
|
bfHelper.navigationMap( |
|
".mapDom", |
|
require("../../../public/img/monitoring/mapviewer/electricity" + |
|
(index + 1) + |
|
"b.png"), |
|
1, |
|
1 |
|
); |
|
|
|
this.buildMessage = index + 1 + "号楼"; |
|
bfHelper.setCameraStatus(this.cameraPosition[index]).then(() => { |
|
// console.log('kkkkk') |
|
this.reload = null; |
|
bfHelper.clearDrawableContainer(); //清除所有标签 |
|
// return |
|
|
|
for (let n = 0; n < this.floorNum.length; n++) { |
|
let position = this.position[n]; //1-6号楼每层标签点位 |
|
for (let i = 0; i < this.floorNum[n].length; i++) { |
|
if (this.floorNum[n][i] != 0) { |
|
bfHelper.customTag( |
|
position[i], |
|
null, |
|
this.monitorImgContent(this.floorNum[n][i]) |
|
); |
|
} |
|
|
|
bfHelper.customItemFun().onClick((item) => { |
|
// console.log(bfHelper.getBoxMessage('10000753466346.2674262', true).max) |
|
for (let a = 0; a < position.length; a++) { |
|
this.floorBqShow = true; //允许添加楼层标签 |
|
if ( |
|
item.worldPosition.x == position[a].x && |
|
item.worldPosition.y == position[a].y && |
|
item.worldPosition.z == position[a].z |
|
) { |
|
// console.log(n,a) |
|
bfHelper.mapDestroy(); |
|
bfHelper.navigationMap( |
|
".mapDom", |
|
require("../../../public/img/monitoring/mapviewer/monitor" + |
|
(n + 1) + |
|
"b" + |
|
(a + 1) + |
|
"f.png"), |
|
n + 1, |
|
a + 1 |
|
); |
|
|
|
this.buildMessage = n + 1 + "号楼" + (a + 1) + "层"; |
|
this.build = "0" + (n + 1); |
|
this.floor = "0" + (a + 1); |
|
// this.getSbgk(); |
|
this.getCameraWarnList(); //告警列表 |
|
this.getSblb(); |
|
// 根据筛选条件隐藏构件/隐藏当前楼全部构件 |
|
bfHelper.hideComponentsByObjectData([ |
|
{ |
|
fileId: this.tower[n], |
|
}, |
|
]); |
|
// 根据筛选条件隐藏构件 |
|
for (let b = 0; b < position.length; b++) { |
|
if (b <= a) { |
|
// 根据筛选条件显示构件 |
|
bfHelper.showComponentsByObjectData([ |
|
{ |
|
fileId: this.tower[n], |
|
levelName: `${b + 1}F`, |
|
family: "楼板", |
|
}, |
|
{ |
|
fileId: this.tower[n], |
|
levelName: `${b + 1}F`, |
|
family: "基本墙", |
|
}, |
|
]); |
|
// 根据筛选条件隐藏构件 |
|
bfHelper.hideComponentsByObjectData([ |
|
{ |
|
fileId: this.tower[n], |
|
levelName: "1F", |
|
familyType: "建筑-50mm", |
|
}, |
|
{ |
|
fileId: this.tower[n], |
|
levelName: "1F", |
|
familyType: "建筑-400mm", |
|
}, |
|
{ |
|
fileId: this.tower[n], |
|
levelName: "1F", |
|
familyType: "常规 - 300mm", |
|
}, |
|
]); |
|
} |
|
} |
|
this.getMonitorIds("0" + (n + 1), "0" + (a + 1)); |
|
} |
|
} |
|
}); |
|
} |
|
} |
|
}); |
|
}, |
|
// 点击地下室 |
|
basementBtn(index) { |
|
this.reload = null; |
|
this.build = "07"; |
|
this.floor = ""; |
|
// this.getSbgk(); |
|
this.getCameraWarnList(); //告警列表 |
|
this.getSblb(); |
|
bfHelper.setCameraAnimation(false); |
|
bfHelper.setCameraStatus(this.cameraPosition[index]).then(() => { |
|
// 隐藏1-6+地下室 |
|
for (let i = 0; i < this.tower.length; i++) { |
|
bfHelper.hideComponentsByObjectData([ |
|
{ |
|
fileId: this.tower[i], |
|
}, |
|
]); |
|
} |
|
|
|
bfHelper.clearDrawableContainer(); //清除所有标签 |
|
bfHelper.mapDestroy(); |
|
bfHelper.navigationMap( |
|
".mapDom", |
|
require("../../../public/img/monitoring/mapviewer/electricity7b.png"), |
|
7, |
|
1 |
|
); |
|
|
|
this.buildMessage = "地下室"; |
|
bfHelper.showComponentsByObjectData([ |
|
{ |
|
fileId: this.tower[this.tower.length - 1], |
|
family: "基本墙", |
|
}, |
|
{ |
|
fileId: this.tower[this.tower.length - 1], |
|
familyType: "人防底板400mm", |
|
}, |
|
]); |
|
this.getMonitorIds("07", ""); |
|
}); |
|
}, |
|
// 添加标签 |
|
addBq( |
|
positions, |
|
camera, |
|
status, |
|
arr, |
|
condition, |
|
num, |
|
location, |
|
name, |
|
code |
|
) { |
|
// 根据筛选条件显示构件 |
|
bfHelper.showComponentsByObjectData(condition); |
|
// // 根据筛选条件加入选中集合 |
|
bfHelper.setSelectedById(arr); |
|
// // // // 设置视角为俯视 |
|
if (this.bimModel == 2) { |
|
bfHelper.setCameraStatus(camera[0]); |
|
} else { |
|
if ( |
|
(this.bimModel == 1 && name == "园区") || |
|
(this.bimModel == 1 && name == "整体") |
|
) { |
|
} else { |
|
if (camera && JSON.stringify(camera[0]) != "{}") { |
|
bfHelper.setCameraStatus(camera[0]); |
|
} else { |
|
if (code == "22") { |
|
} else { |
|
bfHelper.setCameraView(location ? location : "Top"); |
|
// 缩放到加入选中集合的构件 |
|
bfHelper.zoomToSelectedComponents(); |
|
} |
|
} |
|
} |
|
} |
|
if (this.bimModel == 1 && name == "园区") { |
|
} else { |
|
//清除所有标签 |
|
bfHelper.clearDrawableContainer(); |
|
} |
|
|
|
// // 选中的集合构件id(也就是所有摄像的Id) |
|
let selectComponentId = bfHelper.getselectGather(); |
|
if (this.bimModel == 1 && name != "整体") { |
|
for (let b = 0; b < selectComponentId.length; b++) { |
|
for (let r = 0; r < positions.length; r++) { |
|
if (selectComponentId[b] == positions[r].id) { |
|
let content = `<div class="leadTips" style="transform: translateY(-40px);"> |
|
<div style="display: flex;width:max-content"> |
|
<img id='monitor${selectComponentId[b]}' alt='${status[b]}' |
|
class = 'montorImg' src="${require(status[b] == 90000 |
|
? "../../../public/img/monitoring/electricity/camera11.png" |
|
: status[b] == 90001 |
|
? "../../../public/img/monitoring/electricity/camera-off.png" |
|
: "../../../public/img/monitoring/electricity/camera-bj.png")}" style="width:40px;height:40px;"/> |
|
</div> |
|
</div>`; |
|
// console.log(positions[r].bounding.max) |
|
bfHelper.customTag( |
|
positions[r].bounding.max, |
|
null, |
|
content, |
|
selectComponentId[b] |
|
); |
|
bfHelper.customItemFun().onClick((item) => { |
|
this.classList = document.getElementsByClassName("montorImg"); |
|
bfHelper.setCameraAnimation(false); // 设置模型动画开启关闭 |
|
// 设置视角为俯视 |
|
let id = item.layerId; |
|
let index = id.lastIndexOf("."); |
|
id = id.substring(index + 1, id.length); |
|
getmonData(this.bimModel, id).then((res) => { |
|
// console.log(res) |
|
if (res.data.data.status != 90001) { |
|
this.codeId = res.data.data.thirdId; |
|
this.currentItem = item.layerId; |
|
this.monitoring = true; |
|
this.monitor = false; |
|
this.isMon = res.data.data.agentViewHis; |
|
} else { |
|
this.$message.warning("设备离线,不可查看"); |
|
} |
|
}); |
|
}); |
|
} |
|
} |
|
} |
|
} else { |
|
for (let b = 0; b < selectComponentId.length; b++) { |
|
let content = `<div class="leadTips" style="transform: translateY(-40px);"> |
|
<div style="display: flex;width:max-content"> |
|
<img id='monitor${selectComponentId[b]}' alt='${status[b]}' |
|
class = 'montorImg' src="${require(status[b] == 90000 |
|
? "../../../public/img/monitoring/electricity/camera11.png" |
|
: status[b] == 90001 |
|
? "../../../public/img/monitoring/electricity/camera-off.png" |
|
: "../../../public/img/monitoring/electricity/camera-bj.png")}" style="width:40px;height:40px;"/> |
|
</div> |
|
</div>`; |
|
|
|
if ( |
|
JSON.stringify( |
|
bfHelper.getBoxMessage(selectComponentId[b], true).max.x |
|
) != "null" |
|
) { |
|
bfHelper.customTag( |
|
bfHelper.getBoxMessage(selectComponentId[b], true).max, |
|
null, |
|
content, |
|
selectComponentId[b] |
|
); |
|
bfHelper.customItemFun().onClick((item) => { |
|
this.classList = document.getElementsByClassName("montorImg"); |
|
bfHelper.setCameraAnimation(false); // 设置模型动画开启关闭 |
|
// 设置视角为俯视 |
|
let id = item.layerId; |
|
let index = id.lastIndexOf("."); |
|
id = id.substring(index + 1, id.length); |
|
getmonData(this.bimModel, id).then((res) => { |
|
// console.log(res) |
|
if (res.data.data.status != 90001) { |
|
this.codeId = res.data.data.thirdId; |
|
this.currentItem = item.layerId; |
|
this.monitoring = true; |
|
this.monitor = false; |
|
this.isMon = res.data.data.agentViewHis; |
|
} else { |
|
this.$message.warning("设备离线,不可查看"); |
|
} |
|
}); |
|
}); |
|
} |
|
} |
|
} |
|
}, |
|
// 点击操作跳转监控页 |
|
getMonitorIds(build, floor, code) { |
|
getMonitoringList(this.bimModel, build, floor).then((res) => { |
|
// bfHelper.clearDrawableContainer(); |
|
const data = res.data.data; |
|
let idArr = []; |
|
let statusArr = []; |
|
for (let d = 0; d < data.length; d++) { |
|
if (data[d].modelId == "" || data[d].modelId == "模型无") { |
|
} else { |
|
if (this.bimModel == 2 && build == "00") { |
|
let id = bfHelper.disposeId(data[d].area, "10", data[d].modelId); |
|
idArr.push(id); |
|
} else { |
|
let id = bfHelper.disposeId( |
|
data[d].area, |
|
data[d].build, |
|
data[d].modelId |
|
); |
|
idArr.push(id); |
|
} |
|
let status = data[d].status; |
|
|
|
statusArr.push(status); |
|
} |
|
} |
|
let condition = JSON.parse(JSON.stringify(this.condition)); |
|
for (let c = 0; c < condition.length; c++) { |
|
if (this.bimModel == 1) { |
|
if (build == "07") { |
|
let obj = { |
|
levelName: "B1", |
|
fileId: this.tower[this.tower.length - 1], |
|
}; |
|
Object.assign(condition[c], obj); |
|
} else if (build == "00") { |
|
let obj = { |
|
fileId: this.tower[6], |
|
}; |
|
Object.assign(condition[c], obj); |
|
} else { |
|
let obj = { |
|
levelName: `${Number(floor)}F`, |
|
fileId: this.tower[Number(build)], |
|
}; |
|
Object.assign(condition[c], obj); |
|
} |
|
} else { |
|
if (build == "08") { |
|
let obj = { |
|
fileId: this.fileId[0], |
|
}; |
|
Object.assign(condition[c], obj); |
|
} else if (build == "00") { |
|
let obj = { |
|
fileId: this.fileId[2], |
|
}; |
|
Object.assign(condition[c], obj); |
|
} else if (build == "09" && floor == "01") { |
|
let obj = { |
|
levelName: "L1", |
|
fileId: this.fileId[1], |
|
}; |
|
Object.assign(condition[c], obj); |
|
} else if (build == "09" && floor == "02") { |
|
let obj = { |
|
levelName: "L2", |
|
fileId: this.fileId[1], |
|
}; |
|
Object.assign(condition[c], obj); |
|
} |
|
} |
|
} |
|
|
|
if (this.bimModel == 1) { |
|
if (build == "07") { |
|
this.addBq( |
|
this.monitorPosition[6][0], |
|
null, |
|
statusArr, |
|
idArr, |
|
condition |
|
); |
|
} else if (build == "00") { |
|
this.addBq( |
|
this.monitorPosition[7][0], |
|
null, |
|
statusArr, |
|
idArr, |
|
condition, |
|
null, |
|
null, |
|
"园区" |
|
); |
|
} else if (build == "") { |
|
this.addBq(null, null, statusArr, idArr, null, null, null, "整体"); |
|
} else { |
|
// if(code == '22'){ |
|
// this.addBq(null,null, statusArr,idArr, condition); |
|
// }else{ |
|
this.addBq( |
|
this.monitorPosition[Number(build) - 1][Number(floor) - 1], |
|
null, |
|
statusArr, |
|
idArr, |
|
condition, |
|
null, |
|
null, |
|
null, |
|
code |
|
); |
|
// } |
|
} |
|
} else { |
|
if (build == "08") { |
|
const cameraTower = [ |
|
{ |
|
aspect: 1.889763779527559, |
|
coordinateSystem: "world", |
|
far: 195615.69644792317, |
|
fov: 45, |
|
name: "persp", |
|
near: 110180.26708172823, |
|
position: { |
|
x: -39548.89957187824, |
|
y: -525993.6238512459, |
|
z: 38640.62510066625, |
|
}, |
|
target: { |
|
x: -20545.351813693076, |
|
y: 372241.2560735995, |
|
z: 24669.065657504725, |
|
}, |
|
up: { |
|
x: 0.00032889260186363527, |
|
y: 0.015545622433294026, |
|
z: 0.9998791054186591, |
|
}, |
|
version: 1, |
|
zoom: 1, |
|
}, |
|
]; |
|
this.addBq( |
|
null, |
|
cameraTower, |
|
statusArr, |
|
idArr, |
|
condition, |
|
1, |
|
"SouthTop", |
|
"塔台" |
|
); |
|
} else if (build == "00") { |
|
const cameraTower = [ |
|
{ |
|
aspect: 1.889763779527559, |
|
coordinateSystem: "world", |
|
far: 157731.7844962148, |
|
fov: 45, |
|
name: "persp", |
|
near: 23980.735698856108, |
|
position: { |
|
x: -43387.090990135286, |
|
y: -444311.8364162102, |
|
z: 102427.03554761136, |
|
}, |
|
target: { |
|
x: -34968.59598398651, |
|
y: 77332.86680249915, |
|
z: -629145.3609791917, |
|
}, |
|
up: { |
|
x: 0.013137746075591192, |
|
y: 0.8140689058752524, |
|
z: 0.5806196828519705, |
|
}, |
|
version: 1, |
|
zoom: 1, |
|
}, |
|
]; |
|
this.addBq( |
|
null, |
|
cameraTower, |
|
statusArr, |
|
idArr, |
|
condition, |
|
null, |
|
null, |
|
"塔台" |
|
); |
|
} else { |
|
const cameraTower = [ |
|
{ |
|
aspect: 1.889763779527559, |
|
coordinateSystem: "world", |
|
far: 97604.44561389177, |
|
fov: 45, |
|
name: "persp", |
|
near: 10.369999998297162, |
|
position: { |
|
x: -56007.33936157323, |
|
y: -389985.3790084629, |
|
z: 74901.75652403604, |
|
}, |
|
target: { |
|
x: -52864.50486469997, |
|
y: -170453.7668408688, |
|
z: -796406.5888191625, |
|
}, |
|
up: { |
|
x: 0.013880729883673048, |
|
y: 0.9695892196104088, |
|
z: 0.24434416414797946, |
|
}, |
|
version: 1, |
|
zoom: 1, |
|
}, |
|
]; |
|
this.addBq( |
|
null, |
|
cameraTower, |
|
statusArr, |
|
idArr, |
|
condition, |
|
null, |
|
null, |
|
"塔台" |
|
); |
|
// bfHelper.setCameraStatus(cameraTower) |
|
} |
|
} |
|
}); |
|
}, |
|
goMonitoring(row) { |
|
const { href } = this.$router.resolve({ |
|
path: "/garden/monitoring", |
|
query: { |
|
id: row.thirdId, |
|
name: row.name, |
|
jurisdiction: row.agentViewHis, |
|
}, |
|
}); |
|
window.open(href, "_blank"); |
|
}, |
|
// 点击回放按钮 |
|
playBack() { |
|
let currentId = this.currentItem; |
|
let currentIndex = currentId.lastIndexOf("."); |
|
currentId = currentId.substring(currentIndex + 1, currentId.length); |
|
if (this.isMon == 1) { |
|
getmonData(this.bimModel, currentId).then((res) => { |
|
const { href } = this.$router.resolve({ |
|
path: "/garden/monitoring", |
|
query: { |
|
id: res.data.data.thirdId, |
|
name: res.data.data.name, |
|
}, |
|
}); |
|
window.open(href, "_blank"); |
|
}); |
|
} else { |
|
this.$message.error("没有回放权限!"); |
|
} |
|
}, |
|
|
|
// 点击关闭按钮 |
|
closeView() { |
|
this.monitoring = false; |
|
}, |
|
|
|
// 构件点击 |
|
onClick() { |
|
bfHelper.onClick((data) => { |
|
let colorArr = []; |
|
let modelId = data.objectId; |
|
colorArr.push(modelId); |
|
let index = modelId.lastIndexOf("."); |
|
modelId = modelId.substring(index + 1, modelId.length); |
|
getmonData(this.bimModel, modelId).then((res) => { |
|
let tmp = JSON.stringify(res.data.data); |
|
if (tmp === "{}") { |
|
} else { |
|
if (res.data.data.status == 90001) { |
|
this.$message.warning("设备离线,不可查看"); |
|
} else { |
|
bfHelper.restoreComponentsColorByObjectData(this.condition); |
|
bfHelper.setColor("#07e6ed", colorArr); |
|
this.codeId = res.data.data.thirdId; |
|
this.monitoring = true; |
|
this.isMon = res.data.data.agentViewHis; |
|
this.currentItem = data.objectId; |
|
} |
|
} |
|
}); |
|
}); |
|
}, |
|
}, |
|
}; |
|
</script> |
|
|
|
<style scoped lang="scss"> |
|
.door { |
|
|
|
// 设备概况 |
|
.box2 { |
|
z-index: 99; |
|
background: url(../../../public/img/monitoring/electricity/genbag.png) no-repeat; |
|
background-size: 100% 100%; |
|
width: 402px; |
|
height: 450px; |
|
position: absolute; |
|
top: 150px; |
|
right: 40px; |
|
|
|
&.tataigen { |
|
background: url(../../../public/img/monitoring/electricity/genbac.png); |
|
background-size: 100% 100%; |
|
} |
|
|
|
.title { |
|
margin: 17px 0 0 17px; |
|
font-size: 15px; |
|
font-weight: bold; |
|
color: #ffffff; |
|
|
|
img { |
|
margin-right: 5px; |
|
width: 20px; |
|
height: 19px; |
|
} |
|
} |
|
|
|
.state { |
|
margin-top: 30px; |
|
font-size: 28px; |
|
line-height: 17px; |
|
color: #ffffff; |
|
|
|
.zc { |
|
box-sizing: border-box; |
|
background: url(../../../public/img/monitoring/electricity/normal.png) no-repeat; |
|
background-size: cover; |
|
width: 176px; |
|
height: 78px; |
|
} |
|
|
|
.lx { |
|
box-sizing: border-box; |
|
background: url(../../../public/img/monitoring/electricity/guzhangbg.png) no-repeat; |
|
background-size: cover; |
|
width: 176px; |
|
height: 78px; |
|
} |
|
} |
|
|
|
.stateName { |
|
margin: 5px 0 20px; |
|
color: #2cd52c; |
|
font-size: 14px; |
|
display: flex; |
|
justify-content: space-around; |
|
|
|
.lx { |
|
color: #ec9b28; |
|
} |
|
} |
|
|
|
.tab_box { |
|
width: 80%; |
|
display: flex; |
|
margin-top: 25px; |
|
margin-bottom: 30px; |
|
margin-left: 23px; |
|
color: #fff; |
|
|
|
.tab_one { |
|
cursor: pointer; |
|
} |
|
|
|
.tab_two { |
|
margin-left: 20px; |
|
} |
|
|
|
/deep/ .item .is-dot { |
|
background: red; |
|
border: none; |
|
} |
|
} |
|
|
|
.tit { |
|
margin: 0 auto 6px; |
|
width: 345px; |
|
height: 34px; |
|
line-height: 34px; |
|
background-color: #07a7ff; |
|
font-size: 14px; |
|
color: white; |
|
|
|
&.tataitit { |
|
background: rgb(34, 110, 196); |
|
|
|
span { |
|
color: #1851ab; |
|
} |
|
} |
|
|
|
p { |
|
width: 33.3%; |
|
text-align: center; |
|
} |
|
|
|
span { |
|
color: silver; |
|
} |
|
} |
|
|
|
.noBjxx { |
|
color: white; |
|
font-size: 1rem; |
|
margin: 2.5rem 0 0; |
|
text-align: center; |
|
} |
|
|
|
.warp { |
|
height: 120px; |
|
width: 345px; |
|
margin: auto; |
|
overflow-y: auto; |
|
|
|
.item { |
|
height: 40px; |
|
font-size: 14px; |
|
|
|
// color: #9d9d9d; |
|
.alarm-alert { |
|
position: absolute; |
|
width: 100%; |
|
height: 100%; |
|
background: rgba(11, 34, 74, 0.8); |
|
// display: flex; |
|
justify-content: space-around; |
|
align-items: center; |
|
color: #07e6ed; |
|
|
|
p { |
|
display: flex; |
|
align-items: center; |
|
|
|
img { |
|
margin-right: 7px; |
|
} |
|
} |
|
} |
|
|
|
.box { |
|
width: 100%; |
|
height: 34px; |
|
background-color: rgba($color: #0d318b, $alpha: 0.6); |
|
|
|
&.tataicon { |
|
background-color: rgba($color: #1f355c, $alpha: 1); |
|
|
|
span { |
|
color: #1851ab; |
|
} |
|
} |
|
|
|
.left { |
|
width: 33.3%; |
|
text-align: center; |
|
|
|
img { |
|
width: 16px; |
|
height: auto; |
|
margin: 0 5px 0 10px; |
|
} |
|
|
|
.message { |
|
flex: 1; |
|
white-space: nowrap; |
|
overflow: hidden; |
|
text-overflow: ellipsis; |
|
} |
|
} |
|
|
|
.data { |
|
width: 33.3%; |
|
text-align: center; |
|
} |
|
|
|
.time { |
|
width: 33.3%; |
|
text-align: center; |
|
} |
|
} |
|
} |
|
|
|
.item:hover { |
|
cursor: pointer; |
|
} |
|
} |
|
|
|
.more { |
|
justify-content: flex-end; |
|
font-size: 14px; |
|
color: #07e6ed; |
|
margin: 10px 27px 0 0; |
|
} |
|
} |
|
|
|
.monitoring2 { |
|
z-index: 99; |
|
position: absolute; |
|
right: 2.5rem; |
|
top: 5.875rem; |
|
width: 404px; |
|
height: 340px; |
|
background-image: url(../../../public/img/monitoring/doorBg3.png); |
|
background-size: 100% 100%; |
|
|
|
.title { |
|
margin: 1rem 0 1.5rem 1.25rem; |
|
color: #fff; |
|
font-size: 1rem; |
|
|
|
img { |
|
display: block; |
|
width: 1.437rem; |
|
height: 1.437rem; |
|
margin-right: 0.438rem; |
|
} |
|
} |
|
|
|
.btn_box { |
|
display: flex; |
|
float: right; |
|
margin-right: 35px; |
|
margin-top: 10px; |
|
|
|
.btn { |
|
width: 60px; |
|
height: 30px; |
|
border: 1px solid rgb(0, 187, 255); |
|
display: flex; |
|
justify-content: center; |
|
align-items: center; |
|
color: #c3e1ea; |
|
margin-left: 20px; |
|
cursor: pointer; |
|
} |
|
} |
|
} |
|
|
|
.tab2 { |
|
position: absolute; |
|
right: 2.5rem; |
|
top: 30rem; |
|
width: 404px; |
|
height: 309px; |
|
background-image: url(../../../public/img/monitoring/doorBg3.png); |
|
background-size: 100% 100%; |
|
|
|
.title { |
|
margin: 1rem 0 2rem 1.25rem; |
|
color: #fff; |
|
font-size: 1rem; |
|
|
|
img { |
|
display: block; |
|
width: 1.375rem; |
|
margin-right: 0.438rem; |
|
} |
|
} |
|
|
|
.mapDom { |
|
width: 370px; |
|
height: 200px; |
|
margin: 45px auto 0; |
|
} |
|
} |
|
|
|
// 设备列表 |
|
.tab { |
|
z-index: 99; |
|
position: absolute; |
|
right: 39px; |
|
bottom: 41px; |
|
width: 402px; |
|
height: 342px; |
|
background: url(../../../public/img/monitoring/electricity/newbg.png) no-repeat; |
|
background-size: cover; |
|
|
|
&.tataigen { |
|
background: url(../../../public/img/monitoring/electricity/genbac.png) no-repeat; |
|
background-size: 100% 100%; |
|
} |
|
|
|
.title { |
|
margin: 1rem 0 2rem 1.25rem; |
|
color: #fff; |
|
font-size: 15px; |
|
font-weight: bold; |
|
|
|
img { |
|
display: block; |
|
width: 16px; |
|
margin-right: 10px; |
|
} |
|
} |
|
|
|
.tabBox { |
|
border: 1px solid #07a7ff; |
|
width: 21.563rem; |
|
margin: 1rem auto 0; |
|
|
|
.mon_box { |
|
width: 100%; |
|
} |
|
|
|
/deep/ .el-table--enable-row-hover .el-table__body tr:hover>td { |
|
background-color: transparent !important; |
|
} |
|
|
|
/deep/ .el-table__header-wrapper .has-gutter th { |
|
border-bottom: none; |
|
padding: 0; |
|
text-align: center; |
|
} |
|
|
|
/deep/ .el-table__header-wrapper .has-gutter th .cell { |
|
line-height: 31px; |
|
padding: 0; |
|
background-color: #07a7ff; |
|
color: white; |
|
} |
|
|
|
/deep/ .tataitab .el-table__header-wrapper .has-gutter th .cell { |
|
background: rgb(33, 110, 196); |
|
} |
|
|
|
/deep/ .tataitab .el-table__header-wrapper .has-gutter th:nth-of-type(even) .cell { |
|
color: rgb(31, 91, 180); |
|
} |
|
|
|
/deep/ .el-table__body-wrapper.is-scrolling-none .el-table__row:nth-of-type(odd) { |
|
color: white; |
|
background-color: rgba($color: #1e419d, $alpha: 1); |
|
} |
|
|
|
/deep/ .el-table__body-wrapper.is-scrolling-none .el-table__row:nth-of-type(even) { |
|
background-color: rgba($color: #0d318b, $alpha: 1); |
|
color: white; |
|
} |
|
|
|
/deep/ .tataitab .el-table__body-wrapper.is-scrolling-none .el-table__row:nth-of-type(odd) { |
|
color: white; |
|
background-color: rgba($color: #384c6f, $alpha: 1); |
|
} |
|
|
|
/deep/ .tataitab .el-table__body-wrapper.is-scrolling-none .el-table__row:nth-of-type(even) { |
|
background-color: rgba($color: #1f355c, $alpha: 1); |
|
color: white; |
|
} |
|
|
|
/deep/ .el-table__body-wrapper.is-scrolling-none .el-table__row td { |
|
border-bottom: none; |
|
padding: 0; |
|
text-align: center; |
|
} |
|
|
|
/deep/ .el-table__body-wrapper.is-scrolling-none .el-table__row td .cell { |
|
display: flex; |
|
line-height: 36px; |
|
align-content: center; |
|
justify-content: center; |
|
} |
|
|
|
/deep/ .el-table__body-wrapper.is-scrolling-none .el-table__empty-block { |
|
background-color: #3656ae; |
|
height: 252px !important; |
|
} |
|
|
|
/deep/ .el-table::before { |
|
background-color: transparent; |
|
} |
|
} |
|
|
|
// 分页 |
|
.pagination { |
|
position: absolute; |
|
right: 15px; |
|
bottom: 8px; |
|
} |
|
|
|
.pagination .el-pagination.is-background { |
|
display: flex; |
|
justify-content: flex-end; |
|
} |
|
|
|
/deep/ .el-pagination.is-background .btn-next, |
|
/deep/ .el-pagination.is-background .btn-prev, |
|
/deep/ .el-pagination.is-background .el-pager li { |
|
min-width: 20px; |
|
height: 20px; |
|
line-height: 20px; |
|
font-size: 12px; |
|
} |
|
|
|
/deep/ .el-pagination__total { |
|
height: 20px; |
|
line-height: 20px; |
|
color: #07e6ed; |
|
} |
|
} |
|
} |
|
</style>
|
|
|