Files
emsfront/src/views/ems/dzjk/home/index.vue

180 lines
5.1 KiB
Vue
Raw Normal View History

2025-06-18 01:01:17 +08:00
<template>
2025-06-28 14:52:49 +08:00
<div v-loading="loading">
2025-08-11 21:50:38 +08:00
<el-row style="background:#fff;" class="row-container" :gutter="15">
2025-08-11 17:34:39 +08:00
<el-col v-if="tableData.length>0" :xs="24" :sm="24" :lg="24">
<alarm-table :tableData="tableData"/>
</el-col>
2025-08-06 17:34:35 +08:00
<el-col :xs="24" :sm="24" :lg="6">
2025-06-18 01:01:17 +08:00
<el-card shadow="always" class="common-card-container common-card-container-body-no-padding">
<div slot="header">
2025-08-06 17:34:35 +08:00
<span class="card-title">静态信息</span>
</div>
<div style="box-sizing: border-box; height: 250px;padding:20px 15px;" >
<el-descriptions class="single-zd-info-container" :column="1" >
<el-descriptions-item size="mini" v-for="(item,index) in singleZdInfo" :key="index+'singleZdInfo'" :label="item.title">{{info[item.attr] | formatNumber }}</el-descriptions-item>
</el-descriptions>
2025-06-18 01:01:17 +08:00
</div>
2025-08-06 17:34:35 +08:00
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :lg="8">
<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="box-sizing: border-box; height: 250px;padding:20px 15px;" >
2025-06-18 01:01:17 +08:00
<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>
2025-08-11 17:34:39 +08:00
<div class="sjgl-value">{{runningInfo[item.attr] | formatNumber}}</div>
2025-06-18 01:01:17 +08:00
</el-col>
</el-row>
</div>
</el-card>
</el-col>
2025-08-06 17:34:35 +08:00
<el-col :xs="24" :sm="24" :lg="10">
2025-06-18 01:01:17 +08:00
<el-card shadow="always" class="common-card-container common-card-container-body-no-padding">
<div slot="header">
2025-08-11 17:34:39 +08:00
<span class="card-title">策略信息</span>
2025-06-18 01:01:17 +08:00
</div>
2025-08-11 17:34:39 +08:00
<div style="box-sizing: border-box; height: 250px;padding:20px 15px;" >
2025-08-11 21:50:38 +08:00
2025-06-18 01:01:17 +08:00
</div>
</el-card>
</el-col>
2025-08-11 17:34:39 +08:00
<el-col :xs="24" :sm="24" :lg="24">
2025-08-06 17:34:35 +08:00
<week-chart ref="weekChart"/>
</el-col>
2025-08-11 17:34:39 +08:00
<el-col :xs="24" :sm="24" :lg="24">
2025-08-06 17:34:35 +08:00
<active-chart ref="activeChart"/>
</el-col>
</el-row>
2025-08-11 21:50:38 +08:00
2025-06-18 01:01:17 +08:00
</div>
</template>
<script>
2025-08-06 17:34:35 +08:00
import {getSingleSiteBaseInfo} from '@/api/ems/zddt'
2025-08-11 17:34:39 +08:00
import {getDzjkHomeView} from '@/api/ems/dzjk'
2025-08-06 17:34:35 +08:00
import WeekChart from "./WeekChart.vue";
import ActiveChart from "./ActiveChart.vue";
2025-08-11 17:34:39 +08:00
import AlarmTable from "./AlarmTable.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-08-11 17:34:39 +08:00
components: {WeekChart,ActiveChart,AlarmTable},
2025-06-28 14:52:49 +08:00
mixins: [getQuerySiteId],
2025-06-18 01:01:17 +08:00
data() {
return {
2025-06-28 14:52:49 +08:00
loading:false,
2025-08-06 17:34:35 +08:00
singleZdInfo:[{
title:'电站位置',
attr:'siteAddress'
},{
title:'投运时间',
attr:'runningTime'
},{
title:'装机功率(MW)',
attr:'installPower'
},{
title:'装机容量(MW)',
attr:'installCapacity',
}],
2025-06-18 01:01:17 +08:00
sjglData:[{
title:'今日充电量MWh',
attr:'dayChargedCap'
2025-06-18 01:01:17 +08:00
},{
title:'今日放电量MWh',
attr:'dayDisChargedCap'
2025-06-18 01:01:17 +08:00
},{
title:'总充电量MWh',
attr:'totalChargedCap'
2025-06-18 01:01:17 +08:00
},{
title:'总放电量MWh',
attr:'totalDischargedCap'
2025-06-18 01:01:17 +08:00
}],
2025-08-11 17:34:39 +08:00
info:{},//基本信息
runningInfo:{},//总累计运行数据+报警表格
}
},
computed:{
tableData(){
console.log('this.runningInfo?.siteMonitorHomeAlarmVo ',this.runningInfo?.siteMonitorHomeAlarmVo )
return this.runningInfo?.siteMonitorHomeAlarmVo || []
}
},
methods:{
2025-08-06 23:06:12 +08:00
getBaseInfo(){
2025-08-11 17:34:39 +08:00
return getSingleSiteBaseInfo(this.siteId).then(response => {
2025-08-06 17:34:35 +08:00
this.info = response?.data || {}
})
2025-08-06 23:06:12 +08:00
},
2025-08-11 17:34:39 +08:00
getRunningInfo(){
return getDzjkHomeView(this.siteId).then(response => {
2025-08-11 21:52:04 +08:00
this.runningInfo = response?.data || {}
2025-08-11 17:34:39 +08:00
})
2025-08-06 23:06:12 +08:00
},
init(){
this.loading = true
// 功率曲线
2025-08-11 17:34:39 +08:00
this.$refs.activeChart.init(this.siteId)
// 一周冲放曲线
this.$refs.weekChart.init(this.siteId)
// 静态信息 this.getBaseInfo()
// 总累计运行数据+故障告警 this.getRunningInfo()
Promise.all([this.getBaseInfo(),this.getRunningInfo()]).finally(()=>{
this.loading = false
})
2025-08-06 23:06:12 +08:00
2025-06-18 01:01:17 +08:00
}
},
2025-06-18 01:01:17 +08:00
}
</script>
<style scoped lang="scss">
2025-08-11 17:34:39 +08:00
.row-container{
&>.el-col{
margin-bottom: 20px;
}
}
2025-06-18 01:01:17 +08:00
//数据概览
.sjgl-data{
text-align: center;
2025-08-06 17:34:35 +08:00
&:nth-child(1),&:nth-child(2){
margin-bottom:25px;
}
2025-06-18 01:01:17 +08:00
.sjgl-title{
color: #666666;
line-height: 14px;
}
.sjgl-value{
color: rgba(51,51,51,1);
font-size: 26px;
line-height: 26px;
font-weight: 500;
margin-top: 14px;
2025-08-06 17:34:35 +08:00
word-wrap: break-word;
2025-06-18 01:01:17 +08:00
}
}
2025-08-11 17:34:39 +08:00
</style>
<style lang="scss">
/* card标题里的时间选择器 */
.time-range-card{
&.common-card-container .el-card__header{
padding-top: 0;
padding-bottom: 0;
.time-range-header{
height: 40px;
display: flex;
justify-content: space-between;
align-items: center;
.card-title{
line-height: 40px;
}
2025-06-18 01:01:17 +08:00
}
}
2025-08-11 17:34:39 +08:00
}
2025-08-11 21:50:38 +08:00
</style>