2025-06-18 01:01:17 +08:00
< template >
2025-06-28 14:52:49 +08:00
< div v-loading = "loading" >
2025-08-11 17:34:39 +08:00
< el-row style = "background:#fff;" class = "row-container" >
< 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-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 17:34:39 +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-08-06 23:06:12 +08:00
import { formatDate } from "@/filters/ems" ;
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) ' ,
2025-06-20 02:00:10 +08:00
attr : 'dayChargedCap'
2025-06-18 01:01:17 +08:00
} , {
title : '今日放电量( MWh) ' ,
2025-06-20 02:00:10 +08:00
attr : 'dayDisChargedCap'
2025-06-18 01:01:17 +08:00
} , {
title : '总充电量( MWh) ' ,
2025-06-20 02:00:10 +08:00
attr : 'totalChargedCap'
2025-06-18 01:01:17 +08:00
} , {
title : '总放电量( MWh) ' ,
2025-06-20 02:00:10 +08:00
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 || [ ]
2025-06-20 02:00:10 +08:00
}
} ,
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-06-28 14:52:49 +08:00
const data = response ? . data || { }
2025-08-11 17:34:39 +08:00
this . runningInfo = data
} )
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-20 02:00:10 +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 : 20 px ;
}
}
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 : 25 px ;
}
2025-06-18 01:01:17 +08:00
. sjgl - title {
color : # 666666 ;
line - height : 14 px ;
}
. sjgl - value {
color : rgba ( 51 , 51 , 51 , 1 ) ;
font - size : 26 px ;
line - height : 26 px ;
font - weight : 500 ;
margin - top : 14 px ;
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 : 40 px ;
display : flex ;
justify - content : space - between ;
align - items : center ;
. card - title {
line - height : 40 px ;
2025-06-22 21:01:34 +08:00
}
2025-06-18 01:01:17 +08:00
}
}
2025-08-11 17:34:39 +08:00
}
< / style >