2025-06-18 01:01:17 +08:00
|
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<el-row :gutter="32" style="background:#fff;">
|
|
|
|
|
<el-col :xs="24" :sm="24" :lg="10">
|
|
|
|
|
<el-card shadow="always" class="common-card-container common-card-container-body-no-padding">
|
|
|
|
|
<div slot="header">
|
|
|
|
|
<span class="card-title">数据概览</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="height: 310px" >
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
<el-col :span="12" v-for="(item,index) in sjglData" :key="index+'sjglData'" class="sjgl-data">
|
|
|
|
|
<div class="sjgl-title">{{item.title}}</div>
|
|
|
|
|
<div class="sjgl-value">{{item.value}}</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</div>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :xs="24" :sm="24" :lg="14">
|
|
|
|
|
<el-card shadow="always" class="common-card-container common-card-container-body-no-padding">
|
|
|
|
|
<div slot="header">
|
|
|
|
|
<span class="card-title">实时告警</span>
|
2025-06-20 13:53:36 +08:00
|
|
|
|
<!-- <el-button style="float: right; padding: 3px 0" type="text" size="small">通讯状态:<span style="color:red">超时</span></el-button>-->
|
2025-06-18 01:01:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="ssgj-container">
|
|
|
|
|
<el-table
|
|
|
|
|
:data="tableData"
|
|
|
|
|
height="100%"
|
|
|
|
|
stripe
|
|
|
|
|
style="width: 100%">
|
|
|
|
|
<el-table-column
|
2025-06-20 02:00:10 +08:00
|
|
|
|
prop="deviceName"
|
2025-06-18 01:01:17 +08:00
|
|
|
|
label="名称">
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="状态"
|
2025-06-20 02:00:10 +08:00
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<span class="warning-status">{{ scope.row.status == 0 ? '中断':'todo不是0是什么告警'}}</span>
|
|
|
|
|
</template>
|
2025-06-18 01:01:17 +08:00
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
2025-06-20 02:00:10 +08:00
|
|
|
|
prop="alarmContent"
|
2025-06-18 01:01:17 +08:00
|
|
|
|
label="告警内容">
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</div>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
2025-06-20 13:53:36 +08:00
|
|
|
|
<nllz-chart ref="nllzChart"/>
|
2025-06-18 01:01:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2025-06-20 02:00:10 +08:00
|
|
|
|
import {getDzjkHomeView} from '@/api/ems/dzjk'
|
2025-06-18 01:01:17 +08:00
|
|
|
|
import NllzChart from "./NllzChart.vue";
|
|
|
|
|
export default {
|
|
|
|
|
components: {NllzChart},
|
2025-06-20 02:00:10 +08:00
|
|
|
|
watch: {
|
|
|
|
|
'$route.query':{
|
|
|
|
|
handler (newQuery,oldQuery) {
|
|
|
|
|
// 参数变化处理
|
|
|
|
|
console.log('单站监控=>首页=>页面地址发生变化',newQuery,oldQuery)
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
const {siteId} =newQuery
|
|
|
|
|
siteId && this.getData(newQuery.siteId)
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
immediate: true,
|
|
|
|
|
}
|
|
|
|
|
},
|
2025-06-18 01:01:17 +08:00
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
sjglData:[{
|
|
|
|
|
title:'今日充电量(MWh)',
|
2025-06-20 02:00:10 +08:00
|
|
|
|
value:'',
|
|
|
|
|
attr:'dayChargedCap'
|
2025-06-18 01:01:17 +08:00
|
|
|
|
},{
|
|
|
|
|
title:'今日放电量(MWh)',
|
2025-06-20 02:00:10 +08:00
|
|
|
|
value:'',
|
|
|
|
|
attr:'dayDisChargedCap'
|
2025-06-18 01:01:17 +08:00
|
|
|
|
},{
|
|
|
|
|
title:'总充电量(MWh)',
|
2025-06-20 02:00:10 +08:00
|
|
|
|
value:'',
|
|
|
|
|
attr:'totalChargedCap'
|
2025-06-18 01:01:17 +08:00
|
|
|
|
},{
|
|
|
|
|
title:'总放电量(MWh)',
|
2025-06-20 02:00:10 +08:00
|
|
|
|
value:'',
|
|
|
|
|
attr:'totalDischargedCap'
|
2025-06-18 01:01:17 +08:00
|
|
|
|
}],
|
|
|
|
|
// todo 表格里的不同状态可能需要显示不同颜色 确定表格内容
|
2025-06-20 02:00:10 +08:00
|
|
|
|
tableData:[]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods:{
|
|
|
|
|
getData(siteId){
|
|
|
|
|
getDzjkHomeView(siteId).then(response => {
|
|
|
|
|
console.log(`获取单站监控id=${siteId}的基本信息`,response)
|
|
|
|
|
const data = response.data || {}
|
|
|
|
|
this.sjglData.forEach(item=>{
|
|
|
|
|
item.value = (data[item.attr] || data[item.attr] == 0) ? data[item.attr] : '-'
|
|
|
|
|
})
|
|
|
|
|
this.tableData = data?.siteMonitorHomeAlarmVo || []
|
2025-06-20 13:53:36 +08:00
|
|
|
|
this.$refs.nllzChart.setOption(data)
|
2025-06-20 02:00:10 +08:00
|
|
|
|
})
|
2025-06-18 01:01:17 +08:00
|
|
|
|
}
|
2025-06-20 02:00:10 +08:00
|
|
|
|
},
|
2025-06-18 01:01:17 +08:00
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
//数据概览
|
|
|
|
|
.sjgl-data{
|
|
|
|
|
text-align: center;
|
|
|
|
|
margin-top:20px;
|
|
|
|
|
.sjgl-title{
|
|
|
|
|
color: #666666;
|
|
|
|
|
line-height: 14px;
|
|
|
|
|
padding-top: 18px;
|
|
|
|
|
}
|
|
|
|
|
.sjgl-value{
|
|
|
|
|
color: rgba(51,51,51,1);
|
|
|
|
|
font-size: 26px;
|
|
|
|
|
line-height: 26px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
margin-top: 14px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//实时告警
|
|
|
|
|
.ssgj-container{
|
|
|
|
|
padding:20px;
|
|
|
|
|
height: 310px;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
::v-deep{
|
|
|
|
|
.el-table .el-table__header-wrapper th, .el-table .el-table__fixed-header-wrapper th{
|
|
|
|
|
background:#FFF2CB ;
|
|
|
|
|
border-bottom: none;
|
|
|
|
|
}
|
|
|
|
|
.warning-status{
|
|
|
|
|
color:red;
|
|
|
|
|
}
|
|
|
|
|
.table-head{
|
|
|
|
|
color:#515a6e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|