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.
1956 lines
61 KiB
1956 lines
61 KiB
<template> |
|
<!-- 空调 --> |
|
<div class="light"> |
|
<!-- 各楼栋楼层切换 --> |
|
<clickCp :bimModel="bimModel" sbType="空调" ref="clickcp"></clickCp> |
|
<!-- 返回主视角 --> |
|
<backHome :bimModel="bimModel" type="空调"></backHome> |
|
<div class="mapDom" style=" |
|
position: absolute; |
|
left: 105px; |
|
top: 210px; |
|
width: 250px; |
|
height: 180px; |
|
margin: 45px auto; |
|
"></div> |
|
<!-- 设备概况 --> |
|
<div class="box2"> |
|
<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">{{ |
|
normalTotal |
|
}}</span> |
|
</div> |
|
<div class="lx flex-center" style="font-family: fantasy"> |
|
<span style="margin-left: 72px">{{ warnEquip }}</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" @click="clickAlarm(1)" :style="{ color: isAlarm ? 'red' : '#fff' }"> |
|
<!-- <span>系统报警 <span class="circle"></span> <span>(4)</span></span> --> |
|
<el-badge :is-dot="isAlarm" class="item">设备告警</el-badge><span |
|
style="margin-left: 5px; vertical-align: bottom">({{ equipWarn }})</span> |
|
</div> |
|
<!-- <div class="tab_one tab_two" @click="clickAlarm(2)" :style="{color: isSafe ? 'red' :'#fff'}"><el-badge :is-dot='isSafe' class="item">安全报警</el-badge><span style="margin-left:5px;vertical-align: bottom;">({{safeTotal}})</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="listData.length == 0" class="noBjxx">暂无故障报警信息</div> |
|
<vue-seamless-scroll :class-option="classOption" :data="listData" class="warp"> |
|
<div class="item flex-center" v-for="(item, index) in listData" :key="index" style="position: relative" |
|
@mouseenter="showAlarkAlert(item, index)" @mouseleave="closeAlarkAlert(item, index)"> |
|
<div v-if="item.homepageShow == 1" @click="doCancelWarn(item.id)" |
|
:style="{ display: item.showAlert ? 'flex' : 'none' }" class="alark-alert"> |
|
<p> |
|
<img src="../../../public/img/monitoring/electricity/close-alark-icon.png" alt="" /> |
|
<span>关闭告警</span> |
|
</p> |
|
</div> |
|
<div class="box flex-center" style="justify-content: space-around" :class="bimModel == 2 ? 'tataicon' : ''"> |
|
<div class="left flex-center-center"> |
|
<img class="icon" src="../../../public/img/monitoring/electricity/lx.png" v-if="item.status == '90001'" /> |
|
<img class="icon" src="../../../public/img/monitoring/electricity/bj.png" v-else /> |
|
<span class="message" v-text="item.name" :style="{ |
|
color: |
|
item.status == 90000 |
|
? 'white' |
|
: item.status == 90001 |
|
? '#a5bbe5' |
|
: '#ff0000', |
|
}" :title="item.name"></span> |
|
</div> |
|
<span></span> |
|
<span class="data" :style="{ |
|
color: |
|
item.status == 90000 |
|
? 'white' |
|
: item.status == 90001 |
|
? '#a5bbe5' |
|
: '#ff0000', |
|
}" :title="item.warnContent">{{ item.warnContent }}</span> |
|
<span class=""></span> |
|
<span class="time" |
|
:style="{ color: item.status == 90000 ? '' : item.status == 90001 ? '#a5bbe5' : '#ff0000' }">{{ |
|
item.warnDate.substring(5, 16) |
|
}}</span> |
|
</div> |
|
</div> |
|
</vue-seamless-scroll> |
|
<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 v-if="bimModel == 1" class="switch"> |
|
<div class="title flex-center"> |
|
<!-- <img src="../../../public/img/monitoring/sblb.png" /> --> |
|
<img src="../../../public/img/monitoring/electricity/listIcon3.png" /> |
|
<span>设备列表</span> |
|
</div> |
|
<!-- <div class="select flex-center-between"> |
|
<span class="name">设备位置</span> |
|
<el-select v-model="build" placeholder="请选择"> |
|
<el-option v-for="(item,key) in devices" :key="key" :label="item.name" :value="item.name"> |
|
</el-option> |
|
</el-select> |
|
<span class="btn" @click="searchDevice" style="cursor: pointer;">查询</span> |
|
</div> --> |
|
<div class="tabBox"> |
|
<el-table :data="tableData" style="width: 100%; max-height: 220px"> |
|
<el-table-column label="设备名称" min-width="100px" style="cursor: pointer"> |
|
<template slot-scope="scope"> |
|
<div class="flex-center-center" @click="clickConditions(scope.row)" style="cursor: pointer"> |
|
<img v-if="scope.row.open == 1" style="margin-right: 6px" |
|
src="../../../public/img/monitoring/electricity/listIcon.png" /> |
|
<img v-else style="margin-right: 6px" src="../../../public/img/monitoring/electricity/listIcon2.png" /> |
|
<!--<img v-else style="margin-right: 6px;" src="../../../public/img/monitoring/gz.png"> --> |
|
<!-- <marquee behavior="scroll" direction="left" style="width: 30px;">{{scope.row.name}}</marquee> --> |
|
<span :style="{ color: scope.row.open == 1 ? 'white' : '#9d9d9d' }">{{ scope.row.name }}</span> |
|
</div> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="|" width="5"></el-table-column> |
|
<el-table-column label="温度(实际/设定)" style="cursor: pointer"> |
|
<template slot-scope="scope"> |
|
<span @click="clickConditions(scope.row)" style="cursor: pointer" |
|
:style="{ color: scope.row.open == 1 ? 'white' : '#9d9d9d' }">{{ scope.row.temCur ? scope.row.temCur : |
|
"--" |
|
}}℃/{{ |
|
scope.row.temSetting ? scope.row.temSetting : "--" |
|
}}℃</span> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="|" width="5"></el-table-column> |
|
<el-table-column label="楼层" width="100" style="cursor: pointer"> |
|
<template slot-scope="scope"> |
|
<span @click="clickConditions(scope.row)" style="cursor: pointer" |
|
:style="{ color: scope.row.open == 1 ? 'white' : '#9d9d9d' }">{{ |
|
Number(scope.row.build) + |
|
"号楼" + |
|
Number(scope.row.floored) + |
|
"层" |
|
}}</span> |
|
</template> |
|
</el-table-column> |
|
<!-- <el-table-column label="设备状态" style="cursor: pointer;"> |
|
<template slot-scope="scope"> |
|
<span @click="clickConditions(scope.row)" style="cursor: pointer;" |
|
:style="{color:scope.row.open == 1?'white':'#9d9d9d'}">{{scope.row.open == 1?'开启':'关闭'}}</span> |
|
</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 class="box"> |
|
<span>空开1</span> |
|
<el-switch @change="switchChange1" v-model="value1" active-color="#13ce66" inactive-color="#ff4949"> |
|
</el-switch> |
|
</div> |
|
<div class="box"> |
|
<span>空开5</span> |
|
<el-switch @change="switchChange2" v-model="value2" active-color="#13ce66" inactive-color="#ff4949"> |
|
</el-switch> |
|
</div> --> |
|
</div> |
|
<div v-if="bimModel == 1 && isControl" class="tab_control"> |
|
<div class="title flex-center"> |
|
<img src="../../../public/img/monitoring/electricity/kt-control.png" /> |
|
<span>空调控制</span> |
|
<!-- {{testObject1.name}} --> |
|
</div> |
|
<div class="flex-center-between" style="padding: 0 1rem"> |
|
<div class="open-txt"> |
|
{{ testObject1.name }} |
|
<span v-if="testObject1.funcCat == 1">{{ |
|
testObject1.mode == 0 |
|
? "通风" |
|
: testObject1.mode == 1 |
|
? "制热" |
|
: "制冷" |
|
}}</span> |
|
<span v-if="testObject1.funcCat == 3">{{ |
|
testObject1.mode == 0 |
|
? "内机制热" |
|
: testObject1.mode == 1 |
|
? "内机地暖同时制热" |
|
: testObject1.mode == 2 |
|
? "地暖制热" |
|
: testObject1.mode == 3 |
|
? "制冷" |
|
: testObject1.mode == 9 |
|
? "通风" |
|
: "" |
|
}}</span> |
|
</div> |
|
<div> |
|
<img style="width: 44px; height: 22px" v-if="testObject1.open == 1" |
|
src="../../../public/img/monitoring/open.png" @click="closeCondition" /> |
|
<img style="width: 44px; height: 22px" v-if="testObject1.open == 2 || testObject1.open == 0" |
|
src="../../../public/img/monitoring/off.png" @click="openCondition" /> |
|
</div> |
|
</div> |
|
<div class="conditios-block" v-if="testObject1.open == 1"> |
|
<div class="conditios-block-temper" v-if="testObject1.mode == 0 || testObject1.mode == 9" |
|
style="justify-content: center"> |
|
<img src="../../../public/img/monitoring/electricity/green-wind.png" alt="" /> |
|
</div> |
|
<div class="conditios-block-temper" v-else> |
|
<img src="../../../public/img/monitoring/electricity/jian.png" alt="" @click="descreaseTemper" /> |
|
<span><span style="font-size: 40px; font-family: fantasy">{{ |
|
testObject1.temSetting |
|
}}</span>℃</span> |
|
<img src="../../../public/img/monitoring/electricity/jia.png" alt="" @click="plusTemper" /> |
|
</div> |
|
<div class="conditios-block-temper1"> |
|
<div class="conditios-block-temper1-left"> |
|
<img src="../../../public/img/monitoring/electricity/wendu.png" alt="" /> |
|
室内温度: |
|
<span>{{ testObject1.temCur }}℃</span> |
|
</div> |
|
<div class="conditios-block-temper1-right"> |
|
<img src="../../../public/img/monitoring/electricity/wind-line.png" alt="" /> |
|
当前风速: |
|
<span v-if="testObject1.funcCat == 1">{{ |
|
testObject1.speed == 0 |
|
? "低速" |
|
: testObject1.speed == 1 |
|
? "中速" |
|
: testObject1.speed == 2 |
|
? "高速" |
|
: "自动" |
|
}}</span> |
|
<span v-if="testObject1.funcCat == 3">{{ |
|
testObject1.speed == 1 |
|
? "低速" |
|
: testObject1.speed == 2 |
|
? "中速" |
|
: testObject1.speed == 3 |
|
? "高速" |
|
: "自动" |
|
}}</span> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="conditios-block" v-if="testObject1.open == 2 || testObject1.open == 0"> |
|
<div class="conditios-block-temper" v-if="testObject1.mode == 0 || testObject1.mode == 9" |
|
style="justify-content: center"> |
|
<img src="../../../public/img/monitoring/electricity/gray-wind.png" alt="" /> |
|
</div> |
|
<div class="conditios-block-temper" v-else> |
|
<img src="../../../public/img/monitoring/electricity/gray-jian.png" alt="" @click="descreaseTemper" /> |
|
<span style="color: #7da0d1"><span style="font-size: 40px; font-family: fantasy">{{ |
|
testObject1.temSetting |
|
}}</span>℃</span> |
|
<img src="../../../public/img/monitoring/electricity/gray-jia.png" alt="" @click="plusTemper" /> |
|
</div> |
|
<div class="conditios-block-temper1"> |
|
<div class="conditios-block-temper1-left"> |
|
<img src="../../../public/img/monitoring/electricity/wendu.png" alt="" /> |
|
室内温度: |
|
<span>{{ testObject1.temCur }}℃</span> |
|
</div> |
|
<div class="conditios-block-temper1-right"> |
|
<img src="../../../public/img/monitoring/electricity/wind-line.png" alt="" /> |
|
当前风速: |
|
<span v-if="testObject1.funcCat == 1">{{ |
|
testObject1.speed == 0 |
|
? "低速" |
|
: testObject1.speed == 1 |
|
? "中速" |
|
: testObject1.speed == 2 |
|
? "高速" |
|
: "自动" |
|
}}</span> |
|
<span v-if="testObject1.funcCat == 3">{{ |
|
testObject1.speed == 1 |
|
? "低速" |
|
: testObject1.speed == 2 |
|
? "中速" |
|
: testObject1.speed == 3 |
|
? "高速" |
|
: "自动" |
|
}}</span> |
|
</div> |
|
</div> |
|
</div> |
|
<!-- 设备不在线 --> |
|
<div class="conditios-block" style="text-align:center;padding:4rem 0;" v-if="testObject1.open == -1"> |
|
<img src="../../../public/img/monitoring/device_online.png" /> |
|
<div style="color:#7597cb;font-size:0.14rem;margin-top:0.1rem;">设备离线</div> |
|
</div> |
|
</div> |
|
</div> |
|
</template> |
|
|
|
<script> |
|
import * as bfHelper from "../../util/bfHelper"; |
|
import * as commonValue from "../../util/commonValue"; |
|
import { |
|
openConditionsList, |
|
getConditionData, |
|
getConditionOpen, |
|
getConditionClose, |
|
setConditionTemUp, |
|
setConditionTemDown, |
|
setConditionMode, |
|
setConditionSpeedUp, |
|
setConditionSpeedDown, |
|
getFloorTemp, |
|
getLifList, |
|
getAirWarnList,//报警列表 |
|
getCancelWarn,//关闭告警 |
|
setLoraTemp,//设置lora面板温度 |
|
setLoraStatus,//设置lora面板开关0:关机 1:开机 |
|
setLoraModel,//设置lora面板模式0:内机制热 1:内机地暖同时制热(默认) 2::地暖制热 3:制冷模式 9:通风模式| |
|
setLoraSpeed,//设置lora面板风速1:低速 2:中速 3:高速 4:自动 |
|
queryLoraAll,//读取lora面板### 读取空调面板的 |
|
} from "@/api/garden/monitoring"; |
|
import clickCp from "./clickCp"; |
|
import backHome from "./backHome"; |
|
export default { |
|
props: { |
|
bimModel: { |
|
type: Number, |
|
}, |
|
}, |
|
components: { |
|
clickCp, |
|
backHome, |
|
}, |
|
filters: { |
|
statusType: (data) => { |
|
//状态值所对应的数据 |
|
switch (data) { |
|
case 0: |
|
return "未运行"; |
|
case 1: |
|
return "运行中"; |
|
case 2: |
|
return "故障"; |
|
} |
|
}, |
|
}, |
|
data() { |
|
return { |
|
value1: false, |
|
value2: false, |
|
build: "", |
|
build1: "", |
|
tableData: [], |
|
current: 1, //当前页 |
|
size: 5, //每页数量 |
|
total: 0, //总条目数 |
|
chooseId: [], |
|
switchAllClose: require("../../../public/img/monitoring/switchbg.png"), |
|
switchAllOpen: require("../../../public/img/monitoring/switchbg.png"), |
|
conditionInfo: { |
|
name: "空调1", |
|
status: 1, //运行中 |
|
temperature: 24, |
|
roomTemperature: 20, |
|
speed: "强", |
|
}, |
|
operatorHot: require("../../../public/img/monitoring/hot.png"), |
|
operatorCold: require("../../../public/img/monitoring/snow.png"), |
|
operatorWet: require("../../../public/img/monitoring/wet.png"), |
|
|
|
testObject: { |
|
status: 0, //通风模式 |
|
isOpen: false, //空调开启 |
|
name: "空调1", |
|
temper: 28, |
|
actualTemper: 30, |
|
windSpeed: 0, |
|
worldPosition: { |
|
x: 57430.87626265357, |
|
y: -5298.693359375, |
|
z: 3059.87618005641, |
|
}, |
|
tower: null, |
|
layer: null, |
|
}, |
|
testObject1: {}, |
|
status: 0, |
|
isControl: false, |
|
bgImg: null, |
|
openStatus: null, |
|
build: null, |
|
floor: null, |
|
position: null, |
|
clickCode: null, |
|
allDatas: [], |
|
isMapViewer: 0, |
|
conditionNum: null, |
|
arr: [], //空调信息 |
|
listData: [], //告警列表 |
|
noramlTotal: 0,//正常设备数量 |
|
warnEquip: 0,//告警设备数量 |
|
equipWarn: 0,//告警数量 |
|
}; |
|
}, |
|
watch: { |
|
bimModel: { |
|
handler(newVal, oldVal) { |
|
this.getAirWarnList();//告警列表 |
|
this.getLifLists();//设备信息 |
|
if (this.setInterval) { |
|
clearInterval(this.setInterval); |
|
} |
|
|
|
this.setInterval = setInterval(() => { |
|
this.getConditions(); //空调列表 |
|
this.getAirWarnList();//告警列表 |
|
}, 3600000); |
|
|
|
this.getConditions(); //空调列表 |
|
}, |
|
}, |
|
openStatus(newVal, oldVal) { |
|
bfHelper.clearTags(); |
|
this.allDatas.forEach((item) => { |
|
bfHelper.customTag( |
|
{ x: item.xmove, y: item.ymove, z: item.zmove }, |
|
null, |
|
item.funcCat == 1 ? this.getContent(item) : item.funcCat == 2 ? this.getOAContent(item) : this.getMbContent(item) |
|
); |
|
}); |
|
}, |
|
clickCode(newVal, oldVal) { |
|
bfHelper.clearTags(); |
|
if (this.conditionNum == 1) { |
|
bfHelper.customTag( |
|
this.position, |
|
null, |
|
this.testObject1.funcCat == 1 ? this.getContent(this.testObject1) : this.testObject1.funcCat == 2 ? this.getOAContent(this.testObject1) : this.getMbContent(this.testObject1) |
|
); |
|
} else if (this.conditionNum == 2) { |
|
this.allDatas.forEach((item) => { |
|
bfHelper.customTag( |
|
{ x: item.xmove, y: item.ymove, z: item.zmove }, |
|
null, |
|
item.funcCat == 1 ? this.getContent(item) : item.funcCat == 2 ? this.getOAContent(item) : this.getMbContent(item) |
|
); |
|
}); |
|
} |
|
}, |
|
//模型是否加载完成监听 |
|
"$store.state.bfHelperState.bfState": { |
|
immediate: true, |
|
handler(newval, olval) { |
|
if (newval) { |
|
// 模型恢复全部状态 |
|
bfHelper.resetStatus(2); |
|
bfHelper.extObjMngClear(); //清除外部构件 |
|
// this.initial(); |
|
if (newval == 1) { |
|
// 查看管线 |
|
// 滚轮设置透明度 |
|
if (this.bimModel == 1) { |
|
window.sessionStorage.setItem( |
|
"camera", |
|
JSON.stringify(bfHelper.getCameraStatus()) |
|
); |
|
let build = sessionStorage.getItem("build"); |
|
let floor = sessionStorage.getItem("floor"); |
|
// console.log(build,floor) |
|
if (build) { |
|
if (build == 10) { |
|
setTimeout(() => { |
|
this.setTowerKT("07"); |
|
this.$refs.clickcp.active = 26; |
|
this.$refs.clickcp.tower = 9; |
|
}, 300); |
|
bfHelper.lookPipeline2(null, null, build - 1, null, "空调"); |
|
// bfHelper.setCameraStatus(bfHelper.lightCamera[6]); |
|
} else if (build == 26) { |
|
// bfHelper.resetStatus(2); |
|
bfHelper.lookEquipmentCop("空调"); |
|
setTimeout(() => { |
|
this.setTowerKT(); |
|
this.initial(); |
|
}, 300); |
|
bfHelper.setOpacityFun(); |
|
} else { |
|
if (floor.indexOf("undefined") == -1) { |
|
setTimeout(() => { |
|
this.setTowerKT("0" + build, "0" + floor); |
|
this.$refs.clickcp.active = commonValue.activeValue( |
|
Number(build), |
|
Number(floor) |
|
); |
|
this.$refs.clickcp.tower = commonValue.towerValue(build); |
|
}, 300); |
|
bfHelper.lookPipeline2( |
|
null, |
|
null, |
|
build - 1, |
|
floor, |
|
"空调" |
|
); |
|
} else { |
|
setTimeout(() => { |
|
this.setTowerKT("0" + build); |
|
this.$refs.clickcp.active = commonValue.activeValue( |
|
Number(build), |
|
null |
|
); |
|
this.$refs.clickcp.tower = commonValue.towerValue(build); |
|
}, 300); |
|
bfHelper.lookPipeline2(null, null, build - 1, floor, "空调"); |
|
// bfHelper.setCameraStatus(bfHelper.lightCamera[build - 1]); |
|
} |
|
} |
|
} else { |
|
bfHelper.lookEquipmentCop("空调"); |
|
this.getNavigationMap(); |
|
bfHelper.setOpacityFun(); |
|
// setTimeout(() => { |
|
this.initial(); |
|
// },300) |
|
} |
|
// this.initial() |
|
} else { |
|
} |
|
} else { |
|
} |
|
} |
|
}, |
|
}, |
|
}, |
|
beforeDestroy() { |
|
console.log('销毁interval') |
|
if (this.setInterval) { |
|
clearInterval(this.setInterval); |
|
} |
|
}, |
|
created() { |
|
this.getConditions(); //空调列表 |
|
this.getAirWarnList();//告警列表 |
|
this.setInterval = setInterval(() => { |
|
this.getConditions(); //空调列表 |
|
this.getAirWarnList();//告警列表 |
|
}, 3600000); |
|
}, |
|
mounted() { |
|
this.getNavigationMap(); |
|
}, |
|
|
|
methods: { |
|
//关闭告警 - 重新查询告警列表 |
|
doCancelWarn(id) { |
|
getCancelWarn(id).then((res) => { |
|
this.getAirWarnList(); |
|
}) |
|
}, |
|
//跳转历史告警列表 |
|
goMoreWarnList() { |
|
const routerUrl = this.$router.resolve({ path: '/equipment/warnHistory', query: { classCode: '0900', area: this.bimModel } }); |
|
window.open(routerUrl.href, "_blank"); |
|
}, |
|
// 报警记录-20221031改版 |
|
getAirWarnList() { |
|
getAirWarnList({ |
|
area: this.bimModel, |
|
build: this.build ? this.build : "", |
|
floor: this.floor ? this.floor : "", |
|
}).then((res) => { |
|
this.listData = res.data.data.warnEquipList; |
|
this.normalTotal = res.data.data.normalEquipNumber; |
|
this.warnEquip = res.data.data.warnEquipEquipNumber; |
|
for (let i = 0; i < this.listData.length; i++) { |
|
this.listData[i].showAlert = false; |
|
} |
|
}); |
|
}, |
|
// 设备信息、告警信息 |
|
getLifLists() { |
|
getLifList(this.bimModel).then((res) => { |
|
if (res.data.code == 200) { |
|
this.arr = res.data.data; |
|
this.setLiftColor(this.arr); |
|
} |
|
}); |
|
}, |
|
setLiftColor(arr) { |
|
let arrs = []; |
|
for (let i = 0; i < arr.length; i++) { |
|
if (arr[i].status != 90000) { |
|
arrs.push(arr[i]); |
|
} |
|
} |
|
|
|
// this.listData = arrs; |
|
|
|
for (let j = 0; j < this.listData.length; j++) { |
|
this.listData[j].showAlert = false; |
|
} |
|
let offList = []; |
|
let bjList = []; |
|
let normalList = []; |
|
for (let i = 0; i < arr.length; i++) { |
|
let objectId = bfHelper.getExternalComponentId(arr[i].modelId); |
|
if (arr[i].status == 90000) { |
|
normalList.push(objectId); |
|
} else if (arr[i].status == 90001) { |
|
offList.push(objectId); |
|
} else { |
|
bjList.push(objectId); |
|
} |
|
} |
|
bfHelper.restoreColor(normalList); |
|
bfHelper.setFlicker(bjList, "#ff0000", 100); |
|
bfHelper.cancelFlicker(normalList); |
|
bfHelper.setColor("#a5bbe5", offList); |
|
}, |
|
getNavigationMap() { |
|
commonValue.getNavigationMap("water"); |
|
}, |
|
// 接收子组件当前点击楼号 |
|
setTowerKT(i, j) { |
|
this.current = 1; //当前页 |
|
this.total = 0; //总条目数 |
|
this.build = i; |
|
this.floor = j; |
|
if (this.bimModel == 1) { |
|
commonValue.getUpdateMap("water", i, j); |
|
this.removeEvent(); |
|
this.getConditions(); |
|
|
|
window.addEventListener("click", this.addEvent); |
|
this.conditionNum = 2; |
|
} |
|
}, |
|
|
|
getConditions() { |
|
if (this.bimModel == 1) { |
|
openConditionsList( |
|
this.current, |
|
this.size, |
|
1, |
|
this.build ? this.build : "", |
|
this.floor ? this.floor : "" |
|
).then((res) => { |
|
if (this.build && this.floor) { |
|
this.tableData = res.data.data.records.slice( |
|
(this.current - 1) * this.size, |
|
this.current * this.size |
|
); |
|
this.allDatas = res.data.data.records; |
|
bfHelper.clearTags(); |
|
res.data.data.records.forEach((item) => { |
|
bfHelper.customTag( |
|
{ |
|
x: item.xmove, |
|
y: item.ymove, |
|
z: item.zmove, |
|
}, |
|
null, |
|
item.funcCat == 1 ? this.getContent(item) : item.funcCat == 2 ? this.getOAContent(item) : this.getMbContent(item) |
|
); |
|
}); |
|
} else { |
|
// bfHelper.clearTags(); |
|
this.tableData = res.data.data.records; |
|
} |
|
|
|
this.total = res.data.data.total; |
|
}); |
|
} |
|
}, |
|
changeMode(mode) { |
|
//改变空调模式 |
|
if (this.testObject1.open == 1) { |
|
this.testObject1.mode = mode; |
|
if (this.testObject1.funcCat == 3) { |
|
//lora面板 |
|
setLoraModel(this.testObject1.code, this.testObject1.mode).then(res => { |
|
}) |
|
return; |
|
} |
|
var arr = bfHelper.getAll(); |
|
bfHelper.clearTags(); |
|
if (arr.length < 2) { |
|
bfHelper.customTag( |
|
{ |
|
x: this.testObject1.xmove, |
|
y: this.testObject1.ymove, |
|
z: this.testObject1.zmove, |
|
}, |
|
null, |
|
this.getContent(this.testObject1) |
|
); |
|
} else { |
|
this.allDatas.forEach((item) => { |
|
if (item.code == this.clickCode) { |
|
item.mode = mode; |
|
} |
|
bfHelper.customTag( |
|
{ |
|
x: item.xmove, |
|
y: item.ymove, |
|
z: item.zmove, |
|
}, |
|
null, |
|
item.funcCat == 1 ? this.getContent(item) : item.funcCat == 2 ? this.getOAContent(item) : this.getMbContent(item) |
|
); |
|
}); |
|
} |
|
setConditionMode(this.testObject1.code, this.testObject1.mode).then( |
|
(res) => { |
|
if (res.data.code == 200) { |
|
this.getConditions(); |
|
} |
|
} |
|
); |
|
} |
|
}, |
|
descreaseTemper() { |
|
//减温度 |
|
if (this.testObject1.open == 1) { |
|
if (this.testObject1.agentCtrl == 0) { |
|
this.$message.error("暂无设备控制权限!"); |
|
} else { |
|
this.testObject1.temSetting--; |
|
if (this.testObject1.temSetting <= 16) { |
|
this.testObject1.temSetting = 16; |
|
} |
|
if (this.testObject1.funcCat == 3) { |
|
//lora面板 |
|
setLoraTemp(this.testObject1.code, this.testObject1.temSetting).then(res => { |
|
if (res.data.code == 200) { |
|
this.$message.success('温度设置成功'); |
|
} else { |
|
this.$message.error('温度设置失败'); |
|
this.testObject1.temSetting++; |
|
} |
|
}) |
|
return; |
|
} |
|
setConditionTemDown( |
|
this.testObject1.code, |
|
this.testObject1.temSetting |
|
).then((res) => { |
|
if (res.data.code == 200) { |
|
this.getConditions(); |
|
} |
|
}); |
|
} |
|
} |
|
}, |
|
plusTemper() { |
|
//加温度 |
|
if (this.testObject1.open == 1) { |
|
if (this.testObject1.agentCtrl == 0) { |
|
this.$message.error("暂无设备控制权限!"); |
|
} else { |
|
this.testObject1.temSetting++; |
|
if (this.testObject1.temSetting >= 30) { |
|
this.testObject1.temSetting = 30; |
|
} |
|
if (this.testObject1.funcCat == 3) { |
|
//lora面板 |
|
setLoraTemp(this.testObject1.code, this.testObject1.temSetting).then(res => { |
|
if (res.data.code == 200) { |
|
this.$message.success('温度设置成功'); |
|
} else { |
|
this.$message.error('温度设置失败'); |
|
this.testObject1.temSetting--; |
|
} |
|
}) |
|
return; |
|
} |
|
setConditionTemUp( |
|
this.testObject1.code, |
|
this.testObject1.temSetting |
|
).then((res) => { |
|
if (res.data.code == 200) { |
|
this.getConditions(); |
|
} |
|
}); |
|
} |
|
} |
|
}, |
|
decreaseWind() { |
|
//减风速 |
|
if (this.testObject1.open == 1) { |
|
this.testObject1.speed--; |
|
if (this.testObject1.speed <= 0) { |
|
this.testObject1.speed = 0; |
|
} |
|
if (this.testObject1.funcCat == 3) { |
|
//lora面板 |
|
setLoraSpeed(this.testObject1.code, this.testObject1.speed).then(res => { |
|
}) |
|
return; |
|
} |
|
setConditionSpeedDown( |
|
this.testObject1.code, |
|
this.testObject1.speed |
|
).then((res) => { |
|
if (res.data.code == 200) { |
|
this.getConditions(); |
|
} |
|
}); |
|
} |
|
}, |
|
plusWind() { |
|
//加风速 |
|
if (this.testObject1.open == 1) { |
|
this.testObject1.speed++; |
|
if (this.testObject1.speed >= 3) { |
|
this.testObject1.speed = 3; |
|
} |
|
if (this.testObject1.funcCat == 3) { |
|
//lora面板 |
|
setLoraSpeed(this.testObject1.code, this.testObject1.speed).then(res => { |
|
}) |
|
return; |
|
} |
|
setConditionSpeedUp(this.testObject1.code, this.testObject1.speed).then( |
|
(res) => { |
|
if (res.data.code == 200) { |
|
this.getConditions(); |
|
} |
|
} |
|
); |
|
} |
|
}, |
|
closeCondition() { |
|
if (this.testObject1.agentCtrl == 0) { |
|
this.$message.error("暂无设备控制权限!"); |
|
} else { |
|
if (this.testObject1.funcCat == 3) { |
|
//lora面板 |
|
setLoraStatus(this.testObject1.code, 0).then(res => { |
|
this.testObject1.open = 2; |
|
}) |
|
return; |
|
} |
|
getConditionClose(this.testObject1.code).then((res) => { |
|
if (res.data.code == 200) { |
|
if (res.data.data) { |
|
this.getConditions(); |
|
this.testObject1.open = 2; |
|
var arr = bfHelper.getAll(); |
|
bfHelper.clearTags(); |
|
if (arr.length < 2) { |
|
bfHelper.customTag( |
|
{ |
|
x: this.testObject1.xmove, |
|
y: this.testObject1.ymove, |
|
z: this.testObject1.zmove, |
|
}, |
|
null, |
|
this.testObject1.funcCat == 1 ? this.getContent(this.testObject1) : this.testObject1.funcCat == 2 ? this.getOAContent(this.testObject1) : this.getMbContent(this.testObject1) |
|
); |
|
} else { |
|
this.allDatas.forEach((item) => { |
|
if (item.code == this.clickCode) { |
|
item.open = 2; |
|
} |
|
bfHelper.customTag( |
|
{ |
|
x: item.xmove, |
|
y: item.ymove, |
|
z: item.zmove, |
|
}, |
|
null, |
|
item.funcCat == 1 ? this.getContent(item) : item.funcCat == 2 ? this.getOAContent(item) : this.getMbContent(item) |
|
); |
|
}); |
|
} |
|
} else { |
|
this.$message.warning(res.data.msg); |
|
} |
|
} |
|
}); |
|
} |
|
}, |
|
openCondition() { |
|
if (this.testObject1.agentCtrl == 0) { |
|
this.$message.error("暂无设备控制权限!"); |
|
} else { |
|
if (this.testObject1.funcCat == 3) { |
|
//lora面板 |
|
setLoraStatus(this.testObject1.code, 1).then(res => { |
|
this.testObject1.open = 1; |
|
}) |
|
return; |
|
} |
|
getConditionOpen(this.testObject1.code).then((res) => { |
|
if (res.data.code == 200) { |
|
if (res.data.data) { |
|
this.getConditions(); |
|
this.testObject1.open = 1; |
|
var arr = bfHelper.getAll(); |
|
bfHelper.clearTags(); |
|
if (arr.length < 2) {getOAContent |
|
bfHelper.customTag( |
|
{ |
|
x: this.testObject1.xmove, |
|
y: this.testObject1.ymove, |
|
z: this.testObject1.zmove, |
|
}, |
|
null, |
|
this.testObject1.funcCat == 1 ? this.getContent(this.testObject1) : this.testObject1.funcCat == 2 ? this.getOAContent(this.testObject1) : this.getMbContent(this.testObject1) |
|
); |
|
} else { |
|
this.allDatas.forEach((item) => { |
|
if (item.code == this.clickCode) { |
|
item.open = 1; |
|
} |
|
bfHelper.customTag( |
|
{ |
|
x: item.xmove, |
|
y: item.ymove, |
|
z: item.zmove, |
|
}, |
|
null, |
|
item.funcCat == 1 ? this.getContent(item) : item.funcCat == 2 ? this.getOAContent(item) : this.getMbContent(item) |
|
); |
|
}); |
|
} |
|
} |
|
} else { |
|
this.$message.warning(res.data.msg); |
|
} |
|
}); |
|
} |
|
}, |
|
testaaa(a) { |
|
console.log(a); |
|
}, |
|
// 设置单元格的样式 |
|
cellstyle({ row, column, rowIndex, columnIndex }) { |
|
if (columnIndex == 2) { |
|
return "text-align: center;padding:0;border-right:1px solid #2083ec;border-left:1px solid #2083ec;border-bottom:1px solid #2083ec;font-size: 0.75rem;color: #ffffff;height: 1.938rem;linh-height: 1.938rem;background-color: transparent;"; |
|
} else { |
|
return "text-align: center;padding:0;border-left:1px solid #2083ec;border-right:1px solid #2083ec;border-bottom:1px solid #2083ec;font-size: 0.75rem;color: #ffffff;height: 1.938rem;linh-height: 1.938rem;background-color: transparent;"; |
|
} |
|
}, |
|
// 定义表格的头部样式 |
|
tableHeaderColor({ row, rowIndex }) { |
|
if (rowIndex === 0) { |
|
return "line-height:2rem;height:2rem;padding: 0;border:none;background-color: #2083ec;color:#fff;font-size:0.875rem;text-align: center;"; |
|
} |
|
}, |
|
// 页码改变时触发 |
|
handleCurrentChange(val) { |
|
this.current = val; |
|
this.getConditions(); |
|
}, |
|
selectId(selection, row) { |
|
// console.log(selection,row) |
|
}, |
|
handleSelect(selection) { |
|
var arr = []; |
|
if (selection.length != 0) { |
|
selection.forEach((item) => { |
|
arr.push(item.id); |
|
}); |
|
} |
|
this.chooseId = arr; |
|
}, |
|
clickConditions(row) { |
|
getConditionData(row.code).then((res) => { |
|
if (res.data.code == 200) { |
|
this.testObject1 = res.data.data; |
|
this.$refs.clickcp.active = commonValue.activeValue( |
|
Number(row.build), |
|
Number(row.floored) |
|
); |
|
this.$refs.clickcp.tower = commonValue.towerValue(row.build); |
|
bfHelper.clearDrawableContainer(); |
|
bfHelper.clearTags(); |
|
bfHelper.lookPipeline2( |
|
null, |
|
null, |
|
Number(row.build) - 1, |
|
Number(row.floored), |
|
"空调" |
|
); |
|
window.sessionStorage.setItem("build", Number(row.build)); |
|
window.sessionStorage.setItem("floor", Number(row.floored)); |
|
commonValue.getUpdateMap("water", row.build, row.floored); |
|
// this.updateMap(row.build,row.floored) |
|
this.position = { |
|
x: row.xmove, |
|
y: row.ymove, |
|
z: row.zmove, |
|
}; |
|
// console.log(this.position) |
|
// console.log(this.getContent(this.testObject1)) |
|
bfHelper.customTag( |
|
this.position, |
|
null, |
|
row.funcCat == 1 ? this.getContent(this.testObject1) : row.funcCat == 2 ? this.getOAContent(this.testObject1) : this.getMbContent(this.testObject1) |
|
); |
|
this.removeEvent(); |
|
window.addEventListener("click", this.addEvent); |
|
this.conditionNum = 1; |
|
} |
|
}); |
|
}, |
|
// addClick() { |
|
// window.addEventListener('click', (e) => { |
|
// // console.log(e.target.id) |
|
|
|
// }) |
|
// }, |
|
addEvent(e) { |
|
let code = null; |
|
if (e.target.id.indexOf("condition") != -1) { |
|
code = e.target.id.substring(10); |
|
} |
|
if (e.target.id.indexOf("temper") != -1) { |
|
code = e.target.id.substring(7); |
|
} |
|
if (e.target.id.indexOf("tempea") != -1) { |
|
code = e.target.id.substring(7); |
|
} |
|
if (e.target.id.indexOf("tempec") != -1) { |
|
code = e.target.id.substring(7); |
|
} |
|
if (e.target.id.indexOf("tempac") != -1) { |
|
code = e.target.id.substring(7); |
|
} |
|
if (e.target.id.indexOf("temped") != -1) { |
|
code = e.target.id.substring(7); |
|
} |
|
if (code) { |
|
let funcCatObj = this.allDatas.find(item => { return item.code == code }); |
|
if (funcCatObj && funcCatObj.funcCat == 3) { |
|
//lora面板 |
|
queryLoraAll(code).then(res => { |
|
this.testObject1 = res.data.data; |
|
this.testObject1.funcCat = 3; |
|
if ( |
|
e.target.id == "condition-" + code || |
|
e.target.id == "temper-" + code || |
|
e.target.id == "tempea-" + code || |
|
e.target.id == "tempec-" + code || |
|
e.target.id == "tempac-" + code || |
|
e.target.id == "temped-" + code |
|
) { |
|
this.isControl = true; |
|
this.clickCode = code; |
|
} |
|
}) |
|
return; |
|
} |
|
getConditionData(code).then((res) => { |
|
if (res.data.code == 200) { |
|
this.testObject1 = res.data.data; |
|
if(this.testObject1.getConditionData == 2){ |
|
//新风不需要控制 |
|
return; |
|
} |
|
if ( |
|
e.target.id == "condition-" + code || |
|
e.target.id == "temper-" + code || |
|
e.target.id == "tempea-" + code || |
|
e.target.id == "tempec-" + code || |
|
e.target.id == "tempac-" + code || |
|
e.target.id == "temped-" + code |
|
) { |
|
this.isControl = true; |
|
this.clickCode = code; |
|
} |
|
} |
|
}); |
|
} |
|
}, |
|
removeEvent() { |
|
window.removeEventListener("click", this.addEvent); |
|
}, |
|
getContent(testObject) { |
|
// console.log(this.clickCode,testObject.code) |
|
let button = require("../../../public/img/monitoring/electricity/off-button.png"); |
|
let greenWind = require("../../../public/img/monitoring/electricity/green-wind.png"); |
|
let decrease = require("../../../public/img/monitoring/electricity/jian.png"); |
|
let plus = require("../../../public/img/monitoring/electricity/jia.png"); |
|
let wind = require("../../../public/img/monitoring/electricity/wind.png"); |
|
let hot = require("../../../public/img/monitoring/electricity/hot.png"); |
|
let cold = require("../../../public/img/monitoring/electricity/cold.png"); |
|
let bgImg1 = require("../../../public/img/monitoring/electricity/condition1.png"); |
|
let bgImg2 = require("../../../public/img/monitoring/electricity/condition2.png"); |
|
let content = `<div class="lift-block" style="position:relative;width:133px"> |
|
<div style="background-image:url(${testObject.open == 1 ? bgImg1 : bgImg2 |
|
});width:133px;height:40px;background-size:100% 100%;background-position:-5px 0;color:white" id="temped-${testObject.code |
|
}"> |
|
<div id="condition-${testObject.code |
|
}" style="width:103px;position:absolute;height:40px;display:flex;left:30px;top:0;justify-content: space-between;align-items:center;cursor: pointer"> |
|
<span style="font-size:14px;display:${testObject.code == this.clickCode ? "none" : "inline-block" |
|
}" > |
|
<span style="font-size:16px;font-family:fantasy;" id="temper-${testObject.code |
|
}">${testObject.temSetting}</span> |
|
<span id="tempec-${testObject.code |
|
}">℃/</span><span style="font-size:16px;font-family:fantasy;" id="tempea-${testObject.code |
|
}">${testObject.temCur}</span><span id="tempac-${testObject.code |
|
}"> ℃</span> |
|
</span> |
|
<span style="font-size:14px;display:${testObject.code == this.clickCode ? "inline-block" : "none" |
|
}" id="temper-${testObject.code}">${testObject.name}</span> |
|
</div> |
|
</div> |
|
|
|
</div>`; |
|
|
|
return content; |
|
}, |
|
getContent1() { |
|
let bgImg1 = require("../../../public/img/monitoring/electricity/condition1.png"); |
|
let bgImg2 = require("../../../public/img/monitoring/electricity/condition2.png"); |
|
let content = `<div class="lift-block" style="position:relative;width:133px"> |
|
<div style="background-image:url(${this.testObject.open == 1 ? bgImg1 : bgImg2 |
|
});width:133px;height:40px;background-size:100% 100%;color:white"> |
|
<div style="width:93px;position:absolute;height:40px;display:flex;left:40px;top:0;justify-content: space-between;align-items:center;cursor: pointer"> |
|
<span style="font-size:14px;" >${this.testObject.name}</span> |
|
</div> |
|
</div> |
|
|
|
</div>`; |
|
|
|
return content; |
|
}, |
|
//空调面板 |
|
getMbContent(testObject) { |
|
// console.log('空调面板',testObject) |
|
let bgImg1 = require("../../../public/img/monitoring/electricity/condition_mb.png"); |
|
let content = `<div class="lift-block" style="position:relative;width:100px"> |
|
<div id="temped-${testObject.code}" style="background:#07a7ff url(${bgImg1}) 5px center no-repeat;width:100px;height:34px;color:white;font-size:18px;" id="temped-${testObject.code |
|
}"> |
|
<div id="condition-${testObject.code |
|
}" style="width:60px;position:absolute;height:34px;line-height: 34px;left:40px;top:0;cursor: pointer"> |
|
<span id="temper-${testObject.code}" style="font-size:18px;font-family:fantasy;">${testObject.name}</span> |
|
</div> |
|
</div> |
|
|
|
</div>`; |
|
|
|
return content; |
|
}, |
|
//空调主机定位标签样式 |
|
getOAContent(objData) { |
|
let content = `<div class="leadTips" style="transform: translateY(-72px);"> |
|
<div style="display: flex;width:max-content"> |
|
<img src="${require(objData.open == 1 |
|
? "../../../public/img/monitoring/electricity/customTag1.png" |
|
: "../../../public/img/monitoring/electricity/offline2_2.png")}" style="width:87px;height:53px;"/> |
|
<div style="margin-top: -42px;"> |
|
<div style="width: 185px;height: 46px;background: url('${require(objData.open == 1 |
|
? "../../../public/img/monitoring/electricity/customTag1-1.png" |
|
: "../../../public/img/monitoring/electricity/offline2.png")}');"> |
|
<span style="padding-left: 36px;line-height: 32px;font-size: 15px;color: white;">${objData.name}</span> |
|
</div> |
|
<div style="margin-top: 5px;box-sizing: border-box;color: #ffffff;width: 185px;padding: 0 15px;background-color: ${objData.open == 1 |
|
? "rgba(30, 57, 102, 0.8)" |
|
: "rgba(96, 96, 96, 0.8)" |
|
};"> |
|
<div style="padding: 5px 0;display: flex;align-items: center;justify-content: space-between;"> |
|
<span style="opacity: 0.5;font-size: 12px;">设备状态:</span> |
|
<span style="font-size: 15px;">${objData.open == 1 ? "开" : "关"}</span> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div>`; |
|
return content; |
|
}, |
|
// 初始化标签 |
|
initial() { |
|
if (this.bimModel == 1) { |
|
getFloorTemp(this.bimModel).then((res) => { |
|
let num = []; |
|
const data = res.data.data; |
|
let position = bfHelper.ywqThreeLevelPt; |
|
for (let i = 0; i < data.length; i++) { |
|
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:110px;height:40px;background-color: rgba(7, 67, 151, 0.8);box-shadow: #009cff 0px 0px 15px inset;border: 1px solid #00BAFE;border-radius: 12px;"> |
|
<span>温度:${data[i].temp}℃</span> |
|
</div> |
|
</div> |
|
</div>`; |
|
bfHelper.customTag(position[i], null, content); |
|
} |
|
}); |
|
} |
|
}, |
|
}, |
|
}; |
|
</script> |
|
|
|
<style scoped lang="scss"> |
|
.switch { |
|
z-index: 99; |
|
position: absolute; |
|
right: 40px; |
|
bottom: 41px; |
|
// background-image: url(../../../public/img/monitoring/ktbg.png); |
|
width: 402px; |
|
height: 342px; |
|
background: url(../../../public/img/monitoring/electricity/newbg.png) no-repeat; |
|
background-size: cover; |
|
// padding-bottom: 30px; |
|
// 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; |
|
} |
|
} |
|
|
|
.select { |
|
width: 87%; |
|
margin: 1.563rem auto 0; |
|
|
|
.name { |
|
font-size: 0.875rem; |
|
color: #07e6ed; |
|
} |
|
|
|
.btn { |
|
width: 3.375rem; |
|
height: 1.125rem; |
|
background-color: rgba(7, 230, 237, 0.6); |
|
border-radius: 0.313rem; |
|
border: 0.063rem solid #07e5ed; |
|
text-align: center; |
|
font-size: 0.875rem; |
|
padding: 5px 10px; |
|
color: #ffffff; |
|
} |
|
|
|
/deep/ .el-input__inner { |
|
background-color: transparent; |
|
border-radius: 0.313rem; |
|
border: solid 0.063rem #07e6ed; |
|
height: 1.888rem; |
|
color: #fff; |
|
line-height: 1.888rem; |
|
font-size: 0.75rem; |
|
} |
|
|
|
/deep/ .el-select .el-input .el-select__caret { |
|
color: #07e6ed; |
|
} |
|
|
|
/deep/ .el-input__icon { |
|
line-height: 1.888rem; |
|
} |
|
|
|
/deep/ input::-webkit-input-placeholder { |
|
color: #d1d5d5; |
|
} |
|
|
|
/deep/ input::-moz-input-placeholder { |
|
color: #d1d5d5; |
|
} |
|
|
|
/deep/ input::-ms-input-placeholder { |
|
color: #d1d5d5; |
|
} |
|
} |
|
|
|
.tabBox { |
|
border: 1px solid #07a7ff; |
|
width: 21.563rem; |
|
margin: 1rem auto 0; |
|
|
|
/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; |
|
padding: 0; |
|
} |
|
|
|
/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; |
|
|
|
.el-pagination.is-background { |
|
display: flex; |
|
justify-content: flex-end; |
|
margin-top: 1rem; |
|
} |
|
} |
|
|
|
/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; |
|
} |
|
|
|
// .box { |
|
// margin: 20px 0; |
|
|
|
// span { |
|
// margin-right: 10px; |
|
// color: #fff; |
|
|
|
// } |
|
// } |
|
} |
|
|
|
.device-manager { |
|
z-index: 99; |
|
position: absolute; |
|
right: 40px; |
|
bottom: 41px; |
|
background-image: url(../../../public/img/monitoring/ktbg.png); |
|
width: 25.25rem; |
|
height: auto; |
|
padding-bottom: 30px; |
|
background-size: 100% 100%; |
|
|
|
.conditioner-info { |
|
display: flex; |
|
align-items: flex-end; |
|
margin: 1rem 0 1.5rem 0; |
|
padding: 0 30px; |
|
justify-content: space-between; |
|
|
|
>span { |
|
font-size: 30px; |
|
color: white; |
|
} |
|
|
|
>div { |
|
margin-left: 20px; |
|
color: white; |
|
font-size: 14px; |
|
|
|
.condition-status { |
|
display: flex; |
|
align-items: center; |
|
|
|
.circle { |
|
width: 10px; |
|
height: 10px; |
|
background-color: rgb(0, 230, 0); |
|
border-radius: 10px; |
|
margin-right: 8px; |
|
} |
|
} |
|
} |
|
} |
|
|
|
.condition-operator { |
|
display: flex; |
|
padding: 0 30px; |
|
justify-content: space-between; |
|
|
|
.operators { |
|
color: white; |
|
height: 186px; |
|
display: flex; |
|
flex-direction: column; |
|
justify-content: space-between; |
|
padding: 10px 0; |
|
|
|
div { |
|
display: flex; |
|
align-items: center; |
|
|
|
span { |
|
margin-left: 8px; |
|
} |
|
} |
|
} |
|
|
|
.wind-speed, |
|
.temperature { |
|
width: 47px; |
|
height: 186px; |
|
background-image: url(../../../public/img/monitoring/speedbg.png); |
|
background-size: 100% 100%; |
|
display: flex; |
|
padding: 15px 0; |
|
color: white; |
|
font-size: 14px; |
|
flex-direction: column; |
|
justify-content: space-between; |
|
align-items: center; |
|
} |
|
} |
|
} |
|
|
|
// 设备列表 |
|
.tab { |
|
z-index: 99; |
|
position: fixed; |
|
right: 40px; |
|
bottom: 15px; |
|
width: 402px; |
|
height: 342px; |
|
background: url(../../../public/img/monitoring/electricity/newbg.png); |
|
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 { |
|
width: 21.563rem; |
|
margin: 1rem auto 0; |
|
|
|
/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/ .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/ .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; |
|
} |
|
} |
|
|
|
.conditios-open { |
|
display: flex; |
|
justify-content: space-between; |
|
margin-top: -10px; |
|
margin-bottom: 10px; |
|
|
|
.open-txt { |
|
color: #95a1b7; |
|
line-height: 30px; |
|
} |
|
} |
|
|
|
.conditios-block { |
|
border: 6px solid rgb(121, 151, 203); |
|
padding: 40px 0; |
|
border-radius: 3px; |
|
|
|
.conditios-block-temper { |
|
color: rgb(43, 213, 42); |
|
display: flex; |
|
justify-content: space-around; |
|
align-items: center; |
|
} |
|
|
|
.conditios-block-temper1 { |
|
display: flex; |
|
justify-content: space-around; |
|
width: 100%; |
|
align-items: center; |
|
|
|
.conditios-block-temper1-left, |
|
.conditios-block-temper1-right { |
|
p { |
|
font-size: 13px; |
|
color: rgb(149, 161, 183); |
|
margin-bottom: 5px; |
|
display: flex; |
|
align-items: center; |
|
|
|
img { |
|
margin-right: 5px; |
|
} |
|
|
|
span { |
|
color: white; |
|
} |
|
} |
|
} |
|
|
|
.conditios-block-temper1-line { |
|
font-size: 20px; |
|
margin: 0; |
|
color: rgb(149, 161, 183); |
|
} |
|
} |
|
} |
|
|
|
.conditios-block-mode { |
|
display: flex; |
|
justify-content: space-between; |
|
width: 100%; |
|
align-items: center; |
|
margin-top: 10px; |
|
|
|
.conditios-block-mode-part { |
|
font-size: 13px; |
|
color: rgb(149, 161, 183); |
|
text-align: center; |
|
cursor: pointer; |
|
|
|
div { |
|
width: 90px; |
|
height: 40px; |
|
margin-bottom: 5px; |
|
background: rgba(121, 151, 203, 0.4); |
|
border-radius: 5px; |
|
display: flex; |
|
justify-content: space-around; |
|
align-items: center; |
|
|
|
img { |
|
width: 20px; |
|
height: 20px; |
|
} |
|
|
|
span { |
|
color: white; |
|
} |
|
} |
|
} |
|
} |
|
|
|
.conditios-block-wind { |
|
background: rgba(121, 151, 203, 0.4); |
|
padding: 5px 10px; |
|
margin-top: 20px; |
|
border-radius: 5px; |
|
display: flex; |
|
justify-content: space-between; |
|
align-items: center; |
|
color: white; |
|
} |
|
|
|
//空调控制 |
|
.tab_control { |
|
position: absolute; |
|
left: 105px; |
|
bottom: 41px; |
|
width: 244px; |
|
height: 333px; |
|
background: url(../../../public/img/monitoring/electricity/newbg1.png); |
|
background-size: 100% 100%; |
|
|
|
.title { |
|
margin: 1rem 0 2rem 1rem; |
|
color: #fff; |
|
font-size: 15px; |
|
font-weight: bold; |
|
|
|
img { |
|
display: block; |
|
width: 16px; |
|
margin-right: 10px; |
|
} |
|
} |
|
|
|
.open-txt { |
|
color: #fff; |
|
font-size: 14px; |
|
} |
|
|
|
.conditios-block { |
|
border-radius: 10px; |
|
margin: 1.1rem; |
|
padding: 0; |
|
} |
|
|
|
.conditios-block-temper { |
|
padding: 30px 15px 20px; |
|
} |
|
|
|
.conditios-block-temper1 { |
|
display: block; |
|
text-align: center; |
|
border-top: 1px solid rgba(55, 255, 255, 0.2); |
|
padding: 17px 0 5px 0; |
|
|
|
.conditios-block-temper1-left, |
|
.conditios-block-temper1-right { |
|
color: rgba(255, 255, 255, 0.5); |
|
font-size: 14px; |
|
margin-bottom: 0.6rem; |
|
|
|
img { |
|
vertical-align: middle; |
|
margin-right: 5px; |
|
} |
|
|
|
span { |
|
color: #fff; |
|
font-size: 15px; |
|
} |
|
} |
|
} |
|
} |
|
|
|
// 设备概况 |
|
.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; |
|
|
|
.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 { |
|
// padding-right: 36px; |
|
box-sizing: border-box; |
|
// justify-content: flex-end; |
|
background: url(../../../public/img/monitoring/electricity/normal.png) no-repeat; |
|
background-size: cover; |
|
width: 176px; |
|
height: 78px; |
|
} |
|
|
|
.lx { |
|
// padding-right: 36px; |
|
box-sizing: border-box; |
|
// justify-content: flex-end; |
|
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 { |
|
// padding-left: 146px; |
|
// color: red; |
|
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; |
|
justify-content: space-around; |
|
|
|
&.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: hidden; |
|
|
|
.item { |
|
height: 40px; |
|
font-size: 14px; |
|
color: #9d9d9d; |
|
|
|
.alark-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; |
|
} |
|
} |
|
</style>
|
|
|