文案修改,实时运行图表切换站点数据未更新问题修复,电表未知类型

This commit is contained in:
白菜
2026-01-21 18:58:37 +08:00
parent c1c411e48a
commit 823c0949d0
6 changed files with 102 additions and 80 deletions

View File

@ -32,13 +32,13 @@ export default {
attr:'installCapacity' attr:'installCapacity'
},{ },{
title:'总充电量(MWh', title:'总充电量(KWh',
num:'', num:'',
color:'#A696FF', color:'#A696FF',
attr:'totalChargedCap' attr:'totalChargedCap'
},{ },{
title:'总放电量(MWh', title:'总放电量(KWh',
num:'', num:'',
color:'#A696FF', color:'#A696FF',
attr:'totalDischargedCap' attr:'totalDischargedCap'

View File

@ -35,13 +35,19 @@
</div> </div>
</div> </div>
<el-row class="device-info-row"> <el-row class="device-info-row">
<el-col v-for="(tempDataItem,tempDataIndex) in deviceIdTypeMsg[item.deviceId]" :key="tempDataIndex+'dbTempData'" <template v-if="deviceIdTypeMsg[item.deviceId]">
:span="8" class="device-info-col"> <el-col v-for="(tempDataItem,tempDataIndex) in deviceIdTypeMsg[item.deviceId]"
:key="tempDataIndex+'dbTempData'"
:span="8" class="device-info-col">
<span class="pointer" @click="showChart(tempDataItem.pointName,item.deviceId)"> <span class="pointer" @click="showChart(tempDataItem.pointName,item.deviceId)">
<span class="left">{{ tempDataItem.name }}</span> <span class="right">{{ item[tempDataItem.attr] || '-' }}<span <span class="left">{{ tempDataItem.name }}</span> <span class="right">{{ item[tempDataItem.attr] || '-' }}<span
v-html="tempDataItem.unit"></span></span> v-html="tempDataItem.unit"></span></span>
</span> </span>
</el-col> </el-col>
</template>
<template v-else>
<el-empty :image-size="80" description="未知的电表数据"></el-empty>
</template>
</el-row> </el-row>
</el-card> </el-card>
<el-empty v-show="list.length<=0" :image-size="200"></el-empty> <el-empty v-show="list.length<=0" :image-size="200"></el-empty>
@ -70,86 +76,102 @@ export default {
{ {
name: '正向有功电能', name: '正向有功电能',
attr: 'forwardActive', attr: 'forwardActive',
pointName: '正向有功电能' pointName: '正向有功电能',
unit: 'kWh'
}, },
{ {
name: '反向有功电能', name: '反向有功电能',
attr: 'reverseActive', attr: 'reverseActive',
pointName: '反向有功电能' pointName: '反向有功电能',
unit: 'kWh'
}, },
{ {
name: '正向无功电能', name: '正向无功电能',
attr: 'forwardReactive', attr: 'forwardReactive',
pointName: '正向无功电能' pointName: '正向无功电能',
unit: 'kvarh'
}, },
{ {
name: '反向无功电能', name: '反向无功电能',
attr: 'reverseReactive', attr: 'reverseReactive',
pointName: '反向无功电能' pointName: '反向无功电能',
unit: 'kvarh'
}, },
{ {
name: '有功功率', name: '有功功率',
attr: 'activePower', attr: 'activePower',
pointName: '总有功功率' pointName: '总有功功率',
unit: 'kW'
}, },
{ {
name: '无功功率', name: '无功功率',
attr: 'reactivePower', attr: 'reactivePower',
pointName: '总无功功率' pointName: '总无功功率',
unit: 'kvar'
} }
], ],
'METE': [ 'METE': [
{ {
name: '正向有功电能', name: '正向有功电能',
attr: 'forwardActive', attr: 'forwardActive',
pointName: '正向有功电能' pointName: '正向有功电能',
unit: 'kWh'
}, },
{ {
name: '反向有功电能', name: '反向有功电能',
attr: 'reverseActive', attr: 'reverseActive',
pointName: '反向有功电能' pointName: '反向有功电能',
unit: 'kWh'
}, },
{ {
name: '正向无功电能', name: '正向无功电能',
attr: 'forwardReactive', attr: 'forwardReactive',
pointName: '正向无功电能' pointName: '正向无功电能',
unit: 'kvarh'
}, },
{ {
name: '反向无功电能', name: '反向无功电能',
attr: 'reverseReactive', attr: 'reverseReactive',
pointName: '反向无功电能' pointName: '反向无功电能',
unit: 'kvarh'
}, },
{ {
name: '有功功率', name: '有功功率',
attr: 'activePower', attr: 'activePower',
pointName: '总有功功率' pointName: '总有功功率',
unit: 'kW'
}, },
{ {
name: '无功功率', name: '无功功率',
attr: 'reactivePower', attr: 'reactivePower',
pointName: '总无功功率' pointName: '总无功功率',
unit: 'kvar'
} }
], ],
'METEGF': [ 'METEGF': [
{ {
name: '有功电能', name: '有功电能',
attr: 'activeEnergy', attr: 'activeEnergy',
pointName: '有功电能' pointName: '有功电能',
unit: 'kWh'
}, },
{ {
name: '无功电能', name: '无功电能',
attr: 'reactiveEnergy', attr: 'reactiveEnergy',
pointName: '无功电能' pointName: '无功电能',
unit: 'kvarh'
}, },
{ {
name: '有功功率', name: '有功功率',
attr: 'activePower', attr: 'activePower',
pointName: '总有功功率' pointName: '总有功功率',
unit: 'kW'
}, },
{ {
name: '无功功率', name: '无功功率',
attr: 'reactivePower', attr: 'reactivePower',
pointName: '总无功功率' pointName: '总无功功率',
unit: 'kvar'
} }
] ]
} }

View File

@ -1,12 +1,12 @@
<template> <template>
<el-card <el-card
shadow="always" shadow="always"
class="common-card-container common-card-container-body-no-padding" class="common-card-container common-card-container-body-no-padding"
> >
<div slot="header"> <div slot="header">
<span class="card-title">PCS有功功率/PCS无功功率</span> <span class="card-title">PCS有功功率/PCS无功功率</span>
</div> </div>
<div style="height: 360px" id="cnglqxChart" /> <div style="height: 360px" id="cnglqxChart"/>
</el-card> </el-card>
</template> </template>
@ -14,7 +14,7 @@
<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 { storagePower } from "@/api/ems/dzjk"; import {storagePower} from "@/api/ems/dzjk";
export default { export default {
mixins: [resize], mixins: [resize],
@ -36,56 +36,56 @@ export default {
methods: { methods: {
init(siteId, timeRange) { init(siteId, timeRange) {
this.chart.showLoading(); this.chart.showLoading();
const [startTime='', endTime=''] = timeRange; const [startTime = '', endTime = ''] = timeRange;
storagePower(siteId,startTime,endTime) storagePower(siteId, startTime, endTime)
.then((response) => { .then((response) => {
this.setOption(response?.data?.pcsPowerList || []); this.setOption(response?.data?.pcsPowerList || []);
}) })
.finally(() => { .finally(() => {
this.chart.hideLoading(); this.chart.hideLoading();
}); });
}, },
setOption(data) { setOption(data) {
let xdata = [], let xdata = [],
series = []; series = [];
data.forEach((element, index) => { data.forEach((element, index) => {
if (index === 0) { if (index === 0) {
xdata = (element.energyStoragePowList || []).map((i) => i.createDate); xdata = (element.energyStoragePowList || []).map((i) => i.createDate);
} }
series.push( series.push(
{ {
type: "line", type: "line",
name: `${element.deviceId}有功功率`, name: `${element.deviceId}有功功率`,
areaStyle: { areaStyle: {
// color:'#FFBD00' // color:'#FFBD00'
},
data: (element.energyStoragePowList || []).map(
(i) => {
return {
value: i.pcsTotalActPower,
year: i.dateDay || ''
}
}
)
}, },
data: (element.energyStoragePowList || []).map( {
(i) => { type: "line",
return { name: `${element.deviceId}无功功率`,
value:i.pcsTotalActPower, areaStyle: {
year:i.dateDay || '' // color:'#FFBD00'
} },
} data: (element.energyStoragePowList || []).map(
) (i) => {
}, return {
{ value: i.pcsTotalReactivePower,
type: "line", year: i.dateDay || ''
name: `${element.deviceId}无功功率`, }
areaStyle: { }
// color:'#FFBD00' ),
}, }
data: (element.energyStoragePowList || []).map(
(i) => {
return {
value: i.pcsTotalReactivePower,
year:i.dateDay || ''
}
}
),
}
); );
}); });
this.chart.setOption({ this.chart && this.chart.setOption({
legend: { legend: {
left: "center", left: "center",
top: "5", top: "5",
@ -99,29 +99,29 @@ export default {
containLabel: true, containLabel: true,
}, },
tooltip: { tooltip: {
show:true, show: true,
trigger: "axis", trigger: "axis",
axisPointer: { axisPointer: {
// 坐标轴指示器,坐标轴触发有效 // 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow' type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
}, },
formatter :(params)=>{ formatter: (params) => {
if(params.length <= 0) return if (params.length <= 0) return
let result = (params[0].data.year || '')+' '+ params[0].name + '<div>' let result = (params[0].data.year || '') + ' ' + params[0].name + '<div>'
params.forEach(item=>{ params.forEach(item => {
const {color,seriesName,value} = item const {color, seriesName, value} = item
result += `<div style="position: relative;padding-left:20px;line-height: 20px;"> result += `<div style="position: relative;padding-left:20px;line-height: 20px;">
<div style="position: absolute;top:50%;left:0;width:12px;height:12px;border-radius:100%;background: ${color};transform: translateY(-50%)"></div> <div style="position: absolute;top:50%;left:0;width:12px;height:12px;border-radius:100%;background: ${color};transform: translateY(-50%)"></div>
<span>${seriesName}</span><span style="margin-left:20px;font-weight: 700">${value}</span></div>` <span>${seriesName}</span><span style="margin-left:20px;font-weight: 700">${value}</span></div>`
}) })
result+='</div>' result += '</div>'
return result return result
} }
}, },
textStyle: { textStyle: {
color: "#333333", color: "#333333",
}, },
xAxis: { type: "category", data: xdata }, xAxis: {type: "category", data: xdata},
yAxis: { yAxis: {
type: "value", type: "value",
}, },
@ -137,7 +137,7 @@ export default {
}, },
], ],
series, series,
}); }, true);
}, },
}, },
}; };

View File

@ -54,7 +54,7 @@ export default {
year:element.dateDay, year:element.dateDay,
}); });
}); });
xdata = this.chart.setOption({ this.chart && this.chart.setOption({
legend: { legend: {
left: "center", left: "center",
top: "5", top: "5",
@ -115,7 +115,7 @@ export default {
data: ydata, data: ydata,
}, },
], ],
}); },true);
}, },
}, },
}; };

View File

@ -57,7 +57,7 @@ export default {
} }
); );
}); });
xdata = this.chart.setOption({ this.chart && this.chart.setOption({
legend: { legend: {
left: "center", left: "center",
top: "5", top: "5",
@ -118,7 +118,7 @@ export default {
data: ydata, data: ydata,
}, },
], ],
}); },true);
}, },
}, },
}; };

View File

@ -66,7 +66,7 @@ export default {
}), }),
}); });
}); });
this.chart.setOption({ this.chart && this.chart.setOption({
legend: { legend: {
left: "center", left: "center",
top: "5", top: "5",
@ -118,7 +118,7 @@ export default {
}, },
], ],
series, series,
}); },true);
}, },
}, },
}; };