Merge branch 'dev-yjl' into 'shenzhen-dev'

修改中建四局(双碳管理页面)实时数据设备渲染、预警列表

See merge request !49
This commit is contained in:
yjlHub 2022-11-04 14:44:03 +08:00
commit f99591021b
2 changed files with 208 additions and 81 deletions

View File

@ -6,17 +6,35 @@
</div>
<div class="right3">
<div class="dropDown" v-show="0 === number">
<el-select v-model="Equipment" >
<!-- <el-select >
<el-option
v-for="(item,index) in devList"
:key="index"
@click="realTimeMonitor(item)"
:label="item.label"
:value="item.value">
@click="realTimeMonitor(item)">
</el-option>
</el-select>
</el-select> -->
<el-popover placement="bottom" width="70" trigger="click">
<ul class="devList">
<li
:class="{ active: item.deviceId == currentDevDetail.deviceId }"
v-for="(item, index) in devList"
:key="index"
@click="realTimeMonitor(item)"
>
{{ item.deviceName }}
</li>
</ul>
<p class="greenBtn selectDev" slot="reference">
<img
v-for="item in 4"
:key="item"
:class="'arrow' + item"
class="arrow"
/>
{{ currentDevDetail.deviceName }}
<i class="el-icon-arrow-down"></i>
</p>
</el-popover>
</div>
<div v-show="0 === number" ref="centerChart" class="centerChart" id="right2"></div>
<div class="right4" v-show="1 === number">
@ -32,8 +50,14 @@
<script>
import videoPhoto from '@/views/projectAdmin/fourEngin/components/videoPhotoTwo'
// import centerTops from '@/views/projectAdmin/jlw/envirManage/centerTop'
import { environmentDevList } from '@/assets/js/api/environmentManage'
import { getRealTimeDustNoiseDataApi } from '@/assets/js/api/environmentManage'
import {
environmentDevList,
selectNewEnvironmentAlarmListApi,
getRealTimeDustNoiseDataApi,
getAirQualityStatisticsApi,sprayDevListApi,
selectDustNoiseDataApi,getWeatherDataApi,getCurrentDayAirQualityApi,
sprayOperateDataApi
} from "@/assets/js/api/environmentManage";
import echarts from 'echarts4'
export default {
components: {
@ -41,26 +65,12 @@ export default {
},
data() {
return {
options:
[
{
value: '设备一',
label: '设备一'
},
{
value: '设备二',
label: '设备二'
},
{
value: '设备三',
label: '设备三'
},
],
Equipment: '设备一',
number: 0,
devList: [],
currentDevDetail: {},
sprayDevList:[],
alarmList: [],
onlineDevNum: 0,
offlineDevNum: 0,
realTimeDustNoiseDataTime: null, //
@ -81,43 +91,83 @@ export default {
}
}
},
created(){
this.getDevList()
},
mounted() {
this.createCenterChart()
this.getRealTimeDustNoiseData()
this.realTimeMonitor()
// this.getDevList()
// this.$nextTick(() => {
// this.getDevList();
// });
},
methods: {
//----
getDevList() {
environmentDevList({ projectSn: this.$store.state.projectSn }).then(result => {
console.log('列表', result)
this.devList = result.result
console.log(this.devList)
if (result.result.length > 0) {
this.currentDevDetail = result.result[0]
console.log('环境下拉列表进来了吗--------');
environmentDevList({ projectSn: this.$store.state.projectSn }).then(
(result) => {
console.log('环境监测下拉列表', result)
this.devList = result.result;
if(result.result.length>0){
this.currentDevDetail = result.result[0];
// this.getRealTimeDustNoiseData();
// this.selectDustNoiseData();
}else{
// this.createCenterChart();
}
this.$emit('custClick', this.currentDevDetail)
this.offlineDevNum = 0
this.onlineDevNum = 0
this.devList.forEach(element => {
if (element.isClosed == 2) {
this.offlineDevNum++
} else {
this.onlineDevNum++
}
})
this.getRealTimeDustNoiseData()
// this.realTimeDustNoiseDataTime = setInterval( () => {
// this.getRealTimeDustNoiseData();
// },5000)
// this.selectDustNoiseData(); 24H
} else {
// this.createCenterChart();
}
);
},
//24
selectDustNoiseData() {
var now = new Date();
var yy = now.getFullYear(); //
var mm = now.getMonth() + 1; //
var dd = now.getDate(); //
var time = yy + "-";
if (mm < 10) time += "0";
time += mm + "-";
if (dd < 10) time += "0";
time += dd;
let data = {
searchDate:time,
projectSn:this.projectSn,
deviceId: this.currentDevDetail.deviceId,
}
selectDustNoiseDataApi(data).then(res=>{
// console.log(res)
this.dustData_24=res.result
this.createdEcharts2();
})
},
//
getAlarmList() {
let data = {
projectSn: this.projectSn,
};
selectNewEnvironmentAlarmListApi(data).then((res) => {
if (res.code == 200) {
this.alarmList = res.result;
}
});
},
sprayOperate(deviceId,operateType){
sprayOperateDataApi({ projectSn: this.$store.state.projectSn,operateType:operateType,deviceId:deviceId }).then((res) => {
this.sprayDevList=res.result
});
},
getSprayDevList(){
sprayDevListApi({ projectSn: this.$store.state.projectSn }).then((res) => {
this.sprayDevList=res.result
});
},
/** 查询 */
handleQuery() {
@ -127,19 +177,44 @@ export default {
},
// //
realTimeMonitor(value) {
if (this.realTimeDustNoiseDataTime) {
clearInterval(this.realTimeDustNoiseDataTime)
}
console.log('id换了吗', value)
this.currentDevDetail = value
this.currentDevDetail = value;
this.getRealTimeDustNoiseData();
this.selectDustNoiseData();
// if (this.realTimeDustNoiseDataTime) {
// clearInterval(this.realTimeDustNoiseDataTime)
// }
// console.log('id', value)
// this.currentDevDetail = value
this.getRealTimeDustNoiseData()
// this.getRealTimeDustNoiseData()
// this.realTimeDustNoiseDataTime = setInterval( () => {
// this.getRealTimeDustNoiseData();
// },5000)
// this.getRealTimeDustNoiseData();
// this.selectDustNoiseData(); 24H
},
//24
selectDustNoiseData() {
var now = new Date();
var yy = now.getFullYear(); //
var mm = now.getMonth() + 1; //
var dd = now.getDate(); //
var time = yy + "-";
if (mm < 10) time += "0";
time += mm + "-";
if (dd < 10) time += "0";
time += dd;
let data = {
searchDate:time,
projectSn:this.projectSn,
deviceId: this.currentDevDetail.deviceId,
}
selectDustNoiseDataApi(data).then(res=>{
// console.log(res)
this.dustData_24=res.result
this.createdEcharts2();
})
},
//
getRealTimeDustNoiseData() {
@ -150,7 +225,7 @@ export default {
console.log(data)
getRealTimeDustNoiseDataApi(data).then(res => {
if (res.code == 200) {
console.log('获取环境设备详情数据',res.result)
console.log('获取环境设备详情数据------',res.result)
if (res.result != null) {
this.plantCap = res.result
} else {
@ -487,27 +562,31 @@ export default {
margin-right: 40px;
margin-top: -20px;
width: 100px;
height: 20px;
line-height: 20px;
height: 30px;
line-height: 30px;
background-color: #305c6d;
background-image: url(../assets/images/common/bg_sby.png);
background-repeat: no-repeat;
background-size: 100%;
font-size: 8px;
::v-deep .el-select{
width: 100px;
height: 20px;
}
::v-deep .el-input__inner {
background-color: #3e7c86;
color: #fff;
}
::v-deep .el-select__caret {
color: #fff;
}
// ::v-deep .el-select{
// width: 100px;
// height: 20px;
// }
// ::v-deep .el-input__inner {
// background-color: #3e7c86;
// color: #fff;
// }
// ::v-deep .el-select__caret {
// color: #fff;
// }
}
.devList {
width: 100px;
height: 20px;
li {
width: 100px;
height: 20px;
cursor: pointer;
text-align: center;
line-height: 22px;

View File

@ -3,7 +3,7 @@
<div class="containerBox">
<div class="dataBoardContent">
<vue-scroll>
<table class="greenTable">
<table class="greenTable" v-if="sprayDevList.length > 0">
<thead>
<tr>
<th>设备名称</th>
@ -14,21 +14,25 @@
</tr>
</thead>
<tbody>
<tr v-for="i in 8" :key="i">
<td>一号设备</td>
<tr v-for="(item, index) in sprayDevList" :key="index">
<td>{{ item.deviceName }}</td>
<td>离线</td>
<td>pm2.5</td>
<td>0.1μg/</td>
<td>2</td>
<td>1</td>
</tr>
</tbody>
</table>
<div v-else style="margin-top:60px; height: 70%;text-align: center">
<img src="@/assets/images/noData.png" alt="" />
<p>暂无数据</p>
</div>
<!-- <div class="placeholderBox placeholderBox2" v-if="alarmList.length == 0">
<img src="@/assets/images/noData3.png" alt srcset />
<p>
暂无数据
{{$t('message.dataBoard.nodata')}} -->
<!-- </p> -->
<!-- </p> -->
<!-- </div> -->
</vue-scroll>
</div>
@ -37,11 +41,25 @@
</template>
<script>
import Card from "../components/Card.vue";
import {
environmentDevList,
selectNewEnvironmentAlarmListApi,
getRealTimeDustNoiseDataApi,
getAirQualityStatisticsApi,
sprayDevListApi,
selectDustNoiseDataApi,
getWeatherDataApi,
getCurrentDayAirQualityApi,
sprayOperateDataApi
} from '@/assets/js/api/environmentManage'
import Card from '../components/Card.vue'
export default {
components: { Card },
data() {
return {
alarmList: [],
sprayDevList: [],
// alarmList: [
// {
// deviceName: "",
@ -71,9 +89,39 @@ export default {
// ],
value: true
};
}
},
created() {
this.getAlarmList()
this.getSprayDevList()
this.sprayOperate()
console.log('合并列表数据', dataListNew)
},
methods: {
sprayOperate(deviceId, operateType) {
sprayOperateDataApi({ projectSn: this.$store.state.projectSn, operateType: operateType, deviceId: deviceId }).then(res => {
this.sprayDevList = res.result
})
},
getSprayDevList() {
sprayDevListApi({ projectSn: this.$store.state.projectSn }).then(res => {
this.sprayDevList = res.result
})
},
//
getAlarmList() {
let data = {
projectSn: this.projectSn
}
selectNewEnvironmentAlarmListApi(data).then(res => {
if (res.code == 200) {
this.alarmList = res.result
console.log('报警列表----', this.alarmList)
}
})
}
}
};
}
</script>
<style lang="less" scoped>
@ -88,13 +136,13 @@ export default {
}
.greenTable {
th {
color:#72bdc9;
color: #72bdc9;
border-bottom: 1px solid rgba(31, 68, 86, 0.3);
line-height: 35px;
//opacity: 0.8;
}
td {
color: #FFF;
color: #fff;
line-height: 35px;
}
}
@ -107,7 +155,7 @@ export default {
border-radius: 8px;
}
.alarmType::before {
content: "";
content: '';
position: absolute;
top: 1px;
left: 3px;
@ -125,7 +173,7 @@ export default {
border-radius: 8px;
}
.unAlarm::before {
content: "";
content: '';
position: absolute;
top: 1px;
right: 3px;