2025-06-16 15:54:10 +08:00
< template >
2025-06-28 14:52:49 +08:00
< div class = "ems-dashboard-editor-container" v-loading = "loading" >
2025-06-16 15:54:10 +08:00
< zd-info > < / zd-info >
2025-06-16 22:46:40 +08:00
< div class = "ems-content-container " >
2025-06-20 02:00:10 +08:00
< div class = "map-container" >
< map-chart ref = "mapChart" / >
< / div >
2025-06-16 15:54:10 +08:00
< div class = "zd-msg-container" >
< div class = "zd-msg-top" >
2025-06-25 00:17:08 +08:00
< zd-select ref = "zdSelect" @submitSite ="submitSite" > < / zd -select >
2025-06-17 00:46:20 +08:00
< el-card class = "common-card-container" >
2025-06-16 15:54:10 +08:00
< div slot = "header" >
2025-06-17 00:46:20 +08:00
< span class = "card-title" > 基本信息 < / span >
2025-06-20 02:00:10 +08:00
< el-button style = "float: right; padding: 3px 0" type = "text" size = "small" @click ="toDzjk" > 查看详情 < / el -button >
2025-06-16 15:54:10 +08:00
< / div >
2025-06-20 02:00:10 +08:00
< div class = "single-zd-name" > { { singleSiteName } } < / div >
2025-06-16 15:54:10 +08:00
<!-- 四个方块 -- >
< el-row :gutter = "14" >
< el-col :span = "12" class = "single-square-box-container" v-for = "(item,index) in singleZdSqaure" :key="index+'singleSquareBox'" >
< single-square-box :data = "item" > < / single-square-box >
< / el-col >
< / el-row >
<!-- 基本信息 -- >
< el-descriptions class = "single-zd-info-container" :column = "1" >
2025-06-28 14:52:49 +08:00
< el-descriptions-item v-for = "(item,index) in singleZdInfo" :key="index+'singleZdInfo'" :label="item.title" > {{ item.value | formatNumber }} < / el -descriptions -item >
2025-06-16 15:54:10 +08:00
< / el-descriptions >
<!-- echarts柱状图 -- >
2025-06-20 02:00:10 +08:00
< bar-chart ref = "barChart" > < / bar-chart >
2025-06-16 15:54:10 +08:00
< / el-card >
< / div >
< / div >
< / div >
< / div >
< / template >
< script >
import ZdInfo from '@/components/Ems/ZdBaseInfo/index.vue'
import ZdSelect from '@/components/Ems/ZdSelect/index.vue'
import SingleSquareBox from '@/components/Ems/SingleSquareBox/index.vue'
import BarChart from './BarChart.vue'
2025-06-20 02:00:10 +08:00
import MapChart from './MapChart.vue'
import { getSingleSiteBaseInfo } from '@/api/ems/zddt'
2025-06-16 15:54:10 +08:00
export default {
2025-06-20 02:00:10 +08:00
components : { ZdSelect , ZdInfo , SingleSquareBox , BarChart , MapChart } ,
2025-06-16 15:54:10 +08:00
data ( ) {
return {
2025-06-28 14:52:49 +08:00
loading : false ,
2025-06-20 02:00:10 +08:00
singleSiteId : '' ,
singleSiteName : '' ,
2025-06-20 13:53:36 +08:00
singleSiteLocation : [ ] ,
2025-06-16 15:54:10 +08:00
// 单个电站 四个方块数据
2025-06-20 02:00:10 +08:00
singleZdSqaure : [
{
title : '今日充电( kWh) ' ,
value : '' ,
bgColor : '#FFE5E5' ,
attr : 'dayChargedCap'
} , {
title : '累计充电( kWh) ' ,
value : '' ,
bgColor : '#FFE5E5' ,
attr : 'totalChargedCap'
} , {
title : '今日放电( kWh) ' ,
value : '' ,
bgColor : '#EEEBFF' ,
attr : 'dayDisChargedCap'
} , {
title : '累计放电( kWh) ' ,
value : '' ,
bgColor : '#EEEBFF' ,
attr : 'totalDisChargedCap'
}
] ,
2025-06-16 15:54:10 +08:00
// 单个电站 基本信息
singleZdInfo : [ {
title : '电站位置' ,
2025-06-20 02:00:10 +08:00
value : '' ,
2025-06-20 13:53:36 +08:00
attr : 'siteAddress'
2025-06-16 15:54:10 +08:00
} , {
title : '投运时间' ,
2025-06-20 02:00:10 +08:00
value : '' ,
attr : 'runningTime'
2025-06-16 15:54:10 +08:00
} , {
2025-07-11 17:24:45 +08:00
title : '装机功率(MW)' ,
2025-06-20 02:00:10 +08:00
value : '' ,
2025-06-30 17:32:04 +08:00
attr : 'installPower'
2025-06-16 15:54:10 +08:00
} , {
2025-07-11 17:24:45 +08:00
title : '装机容量(MW)' ,
2025-06-20 02:00:10 +08:00
value : '' ,
2025-06-30 17:32:04 +08:00
attr : 'installCapacity' ,
2025-06-16 15:54:10 +08:00
} ]
}
} ,
2025-06-20 02:00:10 +08:00
methods : {
// 站点选中
submitSite ( id ) {
2025-06-20 14:19:05 +08:00
if ( this . singleSiteId === id ) { return console . log ( ` 点击搜索按钮 搜索相同的站点id= ${ id } 不再调用获取基本信息接口 ` ) }
2025-06-28 14:52:49 +08:00
this . loading = true
2025-06-20 14:19:05 +08:00
console . log ( '点击搜索按钮 选中的站点id' , id )
2025-06-20 02:00:10 +08:00
this . singleSiteId = id
2025-06-25 00:17:08 +08:00
this . $refs . zdSelect . searchLoading = true
2025-06-20 02:00:10 +08:00
getSingleSiteBaseInfo ( id ) . then ( response => {
console . log ( '单个站点详情数据' , response )
2025-06-28 14:52:49 +08:00
const res = response ? . data || { }
2025-06-20 02:00:10 +08:00
this . singleSiteName = res ? . siteName || '' //站点名称
2025-06-20 13:53:36 +08:00
this . singleSiteLocation = res ? . siteLocation || [ ] //站点坐标
2025-06-20 02:00:10 +08:00
this . singleZdSqaure . forEach ( item => {
2025-06-28 14:52:49 +08:00
item . value = res [ item . attr ]
2025-06-20 02:00:10 +08:00
} )
this . singleZdInfo . forEach ( item => {
2025-06-28 14:52:49 +08:00
item . value = res [ item . attr ]
2025-06-20 02:00:10 +08:00
} )
2025-06-20 13:53:36 +08:00
this . $refs . barChart . setOption ( res ? . sevenDayDisChargeStats || [ ] )
this . $refs . mapChart . setOption ( [ { name : this . singleSiteName , value : this . singleSiteLocation } ] )
2025-06-28 14:52:49 +08:00
} ) . finally ( ( ) => { this . $refs . zdSelect . searchLoading = false ; this . loading = false } )
2025-06-20 02:00:10 +08:00
} ,
//跳转单站监控页面
toDzjk ( ) {
this . $router . push ( {
path : '/dzjk' ,
query : {
siteId : this . singleSiteId ,
}
} )
}
} ,
2025-06-16 15:54:10 +08:00
}
< / script >
< style lang = "scss" scoped >
2025-06-16 22:46:40 +08:00
. ems - content - container {
2025-06-16 15:54:10 +08:00
display : flex ;
padding : 24 px ;
padding - right : 0 ;
. map - container {
flex : auto ;
}
. zd - msg - container {
width : 500 px ;
padding : 24 px ;
. single - zd - name {
font - weight : 500 ;
line - height : 23 px ;
color : # FFBD00 ;
font - size : 16 px ;
margin - bottom : 24 px ;
}
. single - square - box - container {
height : 78 px ;
box - sizing : border - box ;
margin - bottom : 10 px ;
}
. single - zd - info - container {
font - size : 12 px ;
margin - top : 10 px ;
color : # 666666 ;
}
}
}
< / style >