2025-06-18 01:01:17 +08:00
|
|
|
|
<template>
|
2025-06-28 14:52:49 +08:00
|
|
|
|
<div v-loading="loading">
|
2025-06-18 01:01:17 +08:00
|
|
|
|
<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
|
2025-06-23 13:56:43 +08:00
|
|
|
|
class="common-table"
|
2025-06-18 01:01:17 +08:00
|
|
|
|
: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">
|
2025-06-30 17:32:04 +08:00
|
|
|
|
<span :class="{'circle warning-status' : scope.row.status !== 0}">{{ $store.state.ems.warnOptions[scope.row.status]}}</span>
|
2025-06-20 02:00:10 +08:00
|
|
|
|
</template>
|
2025-06-18 01:01:17 +08:00
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
2025-06-22 21:01:34 +08:00
|
|
|
|
class-name="alarm-content"
|
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";
|
2025-06-28 14:52:49 +08:00
|
|
|
|
import getQuerySiteId from '@/mixins/ems/getQuerySiteId'
|
2025-06-18 01:01:17 +08:00
|
|
|
|
export default {
|
2025-06-24 23:50:29 +08:00
|
|
|
|
name:'DzjkSbjkHome',
|
2025-06-28 14:52:49 +08:00
|
|
|
|
computed: {
|
|
|
|
|
loader() {
|
|
|
|
|
return loader
|
2025-06-20 02:00:10 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
2025-06-28 14:52:49 +08:00
|
|
|
|
components: {NllzChart},
|
|
|
|
|
mixins: [getQuerySiteId],
|
2025-06-18 01:01:17 +08:00
|
|
|
|
data() {
|
|
|
|
|
return {
|
2025-06-28 14:52:49 +08:00
|
|
|
|
loading:false,
|
2025-06-18 01:01:17 +08:00
|
|
|
|
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:{
|
2025-06-28 14:52:49 +08:00
|
|
|
|
init(){
|
|
|
|
|
this.loading = true
|
|
|
|
|
getDzjkHomeView(this.siteId).then(response => {
|
|
|
|
|
const data = response?.data || {}
|
2025-06-20 02:00:10 +08:00
|
|
|
|
this.sjglData.forEach(item=>{
|
2025-06-20 14:19:05 +08:00
|
|
|
|
item.value = (data[item.attr] || data[item.attr] === 0) ? data[item.attr] : '-'
|
2025-06-20 02:00:10 +08:00
|
|
|
|
})
|
|
|
|
|
this.tableData = data?.siteMonitorHomeAlarmVo || []
|
2025-06-20 13:53:36 +08:00
|
|
|
|
this.$refs.nllzChart.setOption(data)
|
2025-06-28 14:52:49 +08:00
|
|
|
|
}).finally(() => {this.loading = false})
|
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 ;
|
2025-06-22 21:01:34 +08:00
|
|
|
|
}
|
2025-06-18 01:01:17 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|