Compare commits
3 Commits
edab894447
...
baicai
Author | SHA1 | Date | |
---|---|---|---|
cacd939dd6 | |||
b59b564544 | |||
0861c3e15f |
@ -83,3 +83,12 @@ export function getAlarmDetailList({siteId, deviceType, alarmLevel, alarmStartTi
|
|||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 概率统计
|
||||||
|
//获取概率统计 电量指标接口
|
||||||
|
export function getElectricData({siteId,startDate,endDate}) {
|
||||||
|
return request({
|
||||||
|
url: `/ems/statsReport/getElectricData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -65,11 +65,13 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.card{
|
.card{
|
||||||
width: 150px;
|
min-width: 150px;
|
||||||
height: 96px;
|
height: 96px;
|
||||||
margin-right: 27px;
|
margin-right: 27px;
|
||||||
border-bottom: 4px solid transparent;
|
border-bottom: 4px solid transparent;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding:0 10px;
|
||||||
.info{
|
.info{
|
||||||
color: #666666;
|
color: #666666;
|
||||||
line-height: 14px;
|
line-height: 14px;
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
<!-- 搜索栏-->
|
<!-- 搜索栏-->
|
||||||
<el-form :inline="true" class="select-container">
|
<el-form :inline="true" class="select-container">
|
||||||
<el-form-item label="设备类型">
|
<el-form-item label="设备类型">
|
||||||
<el-select v-model="search.deviceType" placeholder="请选择" :loading="loading" loading-text="正在加载数据">
|
<el-select v-model="search.deviceType" clearable placeholder="请选择" :loading="loading" loading-text="正在加载数据">
|
||||||
<el-option :label="value" :value="key" v-for="(value,key) in $store.state.ems.deviceTypeOptions" :key="key+'deviceTypeOptions'"></el-option>
|
<el-option :label="value" :value="key" v-for="(value,key) in $store.state.ems.deviceTypeOptions" :key="key+'deviceTypeOptions'"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="告警等级">
|
<el-form-item label="告警等级">
|
||||||
<el-select v-model="search.alarmLevel" placeholder="请选择" :loading="loading" loading-text="正在加载数据">
|
<el-select v-model="search.alarmLevel" clearable placeholder="请选择" :loading="loading" loading-text="正在加载数据">
|
||||||
<el-option :label="value" :value="key" v-for="(value,key) in $store.state.ems.alarmLevelOptions" :key="key+'alarmLevelOptions'"></el-option>
|
<el-option :label="value" :value="key" v-for="(value,key) in $store.state.ems.alarmLevelOptions" :key="key+'alarmLevelOptions'"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -157,7 +157,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 搜索
|
// 搜索
|
||||||
onSearch(){
|
onSearch(){
|
||||||
const [alarmStartTime='',alarmEndTime='']=this.dateRange
|
const [alarmStartTime='',alarmEndTime='']=(this.dateRange || [])
|
||||||
// 选中了时间范围
|
// 选中了时间范围
|
||||||
if(alarmStartTime && alarmStartTime){
|
if(alarmStartTime && alarmStartTime){
|
||||||
// 如果选择的时间范围是今天
|
// 如果选择的时间范围是今天
|
||||||
@ -182,7 +182,7 @@ export default {
|
|||||||
if(id !== this.activeBtn){
|
if(id !== this.activeBtn){
|
||||||
console.log('点击了不同的菜单,更新数据')
|
console.log('点击了不同的菜单,更新数据')
|
||||||
this.activeBtn=id;
|
this.activeBtn=id;
|
||||||
const [alarmStartTime,alarmEndTime]=this.dateRange
|
const [alarmStartTime,alarmEndTime]=(this.dateRange || [])
|
||||||
// 切换到今日告警,如果已经选择了时间范围清空
|
// 切换到今日告警,如果已经选择了时间范围清空
|
||||||
if(alarmStartTime && alarmEndTime){
|
if(alarmStartTime && alarmEndTime){
|
||||||
// 如果切换到了今日告警,时间范围不相等或者相等但是不是今天 清空时间选择范围
|
// 如果切换到了今日告警,时间范围不相等或者相等但是不是今天 清空时间选择范围
|
||||||
@ -201,7 +201,7 @@ export default {
|
|||||||
this.loading=true
|
this.loading=true
|
||||||
const {deviceType,alarmLevel} = this.search
|
const {deviceType,alarmLevel} = this.search
|
||||||
const {siteId,pageNum,pageSize,activeBtn} =this
|
const {siteId,pageNum,pageSize,activeBtn} =this
|
||||||
const [alarmStartTime='',alarmEndTime='']=this.dateRange
|
const [alarmStartTime='',alarmEndTime='']=(this.dateRange || [])
|
||||||
let start='',end = '',now =new Date()
|
let start='',end = '',now =new Date()
|
||||||
if(activeBtn === 'today'){
|
if(activeBtn === 'today'){
|
||||||
start = end = now
|
start = end = now
|
||||||
@ -232,3 +232,4 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<div slot="header">
|
<div slot="header">
|
||||||
<span class="card-title">电量指标</span>
|
<span class="card-title">电量指标</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-main">
|
<div class="card-main" v-loading="loading">
|
||||||
<!-- 搜索栏-->
|
<!-- 搜索栏-->
|
||||||
<div class="select-container">
|
<div class="select-container">
|
||||||
<el-form :inline="true">
|
<el-form :inline="true">
|
||||||
@ -19,7 +19,7 @@
|
|||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="onSearch" native-type="button">搜索</el-button>
|
<el-button type="primary" @click="getData" native-type="button">搜索</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button @click="onReset" native-type="button">重置</el-button>
|
<el-button @click="onReset" native-type="button">重置</el-button>
|
||||||
@ -27,9 +27,9 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div class="total-data">
|
<div class="total-data">
|
||||||
<div>总充电量:<span class="point">1390988kWh</span></div>
|
<div>总充电量:<span class="point">{{totalChargedCap | formatNumber}}kWh</span></div>
|
||||||
<div>总放电量:<span class="point">988kWh</span></div>
|
<div>总放电量:<span class="point">{{totalDisChargedCap | formatNumber}}kWh</span></div>
|
||||||
<div>综合效率:<span class="point">99%</span></div>
|
<div>综合效率:<span class="point">{{efficiency | formatNumber}}%</span></div>
|
||||||
</div>
|
</div>
|
||||||
<div id="dlzbChart" style="height: 310px"></div>
|
<div id="dlzbChart" style="height: 310px"></div>
|
||||||
</div>
|
</div>
|
||||||
@ -39,8 +39,11 @@
|
|||||||
<script>
|
<script>
|
||||||
import * as echarts from 'echarts'
|
import * as echarts from 'echarts'
|
||||||
import resize from "@/mixins/ems/resize";
|
import resize from "@/mixins/ems/resize";
|
||||||
|
import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
|
||||||
|
import {getElectricData} from '@/api/ems/dzjk'
|
||||||
|
import {formatDate} from '@/filters/ems'
|
||||||
export default {
|
export default {
|
||||||
mixins: [resize],
|
mixins: [resize,getQuerySiteId],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pickerOptions:{
|
pickerOptions:{
|
||||||
@ -51,74 +54,92 @@ export default {
|
|||||||
defaultDateRange:[],//默认展示的时间
|
defaultDateRange:[],//默认展示的时间
|
||||||
dateRange:[],
|
dateRange:[],
|
||||||
loading:false,
|
loading:false,
|
||||||
chart: null
|
chart: null,
|
||||||
|
totalChargedCap:'',
|
||||||
|
totalDisChargedCap:'',
|
||||||
|
efficiency:''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 搜索
|
|
||||||
onSearch(){
|
|
||||||
this.getData()
|
|
||||||
},
|
|
||||||
// 重置
|
// 重置
|
||||||
onReset(){
|
onReset(){
|
||||||
this.dateRange=[]
|
this.dateRange=[]
|
||||||
this.getData()
|
this.getData()
|
||||||
},
|
},
|
||||||
getData(){
|
|
||||||
this.loading=true;
|
|
||||||
this.chart.showLoading()
|
|
||||||
//接口调用完成之后 设置图表、结束loading
|
|
||||||
this.setOption()
|
|
||||||
this.loading=false;
|
|
||||||
this.chart.hideLoading()
|
|
||||||
},
|
|
||||||
setOption(data){
|
setOption(data){
|
||||||
// const source = [['日期','充电量','放电量']]
|
const source = [['日期','充电量','放电量','效率']]
|
||||||
// data.forEach(item=>{
|
data.forEach(item=>{
|
||||||
// source.push([item.ammeterDate, item.chargedCap,item.disChargedCap])
|
source.push([item.ammeterDate, item.chargedCap,item.disChargedCap,item.dailyEfficiency])
|
||||||
// })
|
})
|
||||||
this.chart.setOption({
|
this.chart.setOption({
|
||||||
color:['#FFBD00','#3C81FF'],
|
color:['#FFBD00','#3C81FF','#05AEA3'],
|
||||||
// legend: {
|
// legend: {
|
||||||
// left: 'right',
|
// left: 'right',
|
||||||
// bottom: '10',
|
// bottom: '10',
|
||||||
// },
|
// },
|
||||||
tooltip: {},
|
tooltip: {},
|
||||||
xAxis: { type: 'category' },
|
xAxis: { type: 'category' },
|
||||||
yAxis: { type: 'value' },
|
yAxis: [{
|
||||||
|
type: 'value',
|
||||||
|
axisLine: {
|
||||||
|
lineStyle:{
|
||||||
|
color: '#333333',
|
||||||
|
},
|
||||||
|
onZero:false
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
type: 'value',
|
||||||
|
axisLine: {
|
||||||
|
lineStyle:{
|
||||||
|
color: '#333333',
|
||||||
|
},
|
||||||
|
onZero:false
|
||||||
|
}
|
||||||
|
}],
|
||||||
grid:{top:30},
|
grid:{top:30},
|
||||||
dataset:{
|
dataset:{
|
||||||
// source
|
source
|
||||||
source:[//格式
|
|
||||||
['product','充电量','放电量'],
|
|
||||||
['6/10',101,220],
|
|
||||||
['6/11',210,390],
|
|
||||||
['6/12',220,360],
|
|
||||||
['6/13',520,340],
|
|
||||||
['6/14',270,430],
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
|
yAxisIndex:0,
|
||||||
type: 'bar',//柱状图
|
type: 'bar',//柱状图
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
yAxisIndex:0,
|
||||||
type: 'bar',//柱状图
|
type: 'bar',//柱状图
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
yAxisIndex:1,
|
||||||
|
type: 'line',//柱状图
|
||||||
|
},
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
initChart() {
|
getData(){
|
||||||
|
this.loading=true;
|
||||||
|
//接口调用完成之后 设置图表、结束loading
|
||||||
|
const [start='',end='']=this.dateRange || [];
|
||||||
|
const startDate=formatDate(start),endDate = formatDate(end)
|
||||||
|
getElectricData({siteId:this.siteId,startDate,endDate}).then(response => {
|
||||||
|
const {totalChargedCap='',totalDisChargedCap='',efficiency='',sevenDayDisChargeStats=[]}=response?.data || {}
|
||||||
|
this.setOption(sevenDayDisChargeStats)
|
||||||
|
this.totalChargedCap=totalChargedCap
|
||||||
|
this.totalDisChargedCap=totalDisChargedCap
|
||||||
|
this.efficiency=efficiency
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading=false;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
init(){
|
||||||
this.chart = echarts.init(document.querySelector('#dlzbChart'));
|
this.chart = echarts.init(document.querySelector('#dlzbChart'));
|
||||||
|
this.onReset()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted(){
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
const lastMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1);
|
const lastMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1);
|
||||||
this.defaultDateRange = [lastMonth, now];
|
this.defaultDateRange = [lastMonth, now];
|
||||||
this.initChart()
|
|
||||||
this.getData()
|
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
if (!this.chart) {
|
if (!this.chart) {
|
||||||
|
Reference in New Issue
Block a user