光伏功能逻辑代码及BUG修改

This commit is contained in:
huangjp
2025-12-26 11:26:40 +08:00
parent b3608320a8
commit cbb1d7a8a9
27 changed files with 1839 additions and 543 deletions

View File

@ -20,7 +20,7 @@
<charts v-else id="pcsChart" :options="curve_option"></charts>
</view>
</view>
<view class="box" style="margin-bottom: 0;">
<!-- <view class="box" style="margin-bottom: 0;">
<Section :title="$t('homePage.device.deviceData')" />
<zero-loading v-if="stationLoading" position="absolute"></zero-loading>
<view v-else class="group-box">
@ -32,13 +32,13 @@
<image src="/static/aidex/images/zjrl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.outputPower | kWFormat }}
<view class="item-num">{{ panelData.pvActivePower | kWFormat }}
</view>
<view class="item-title">{{$t('homePage.home.batVoltage')}}(kVar)</view>
<view class="item-title">{{$t('homePage.home.batVoltage')}}(V)</view>
</view>
</view>
<view class="group-item border-right"
@click="showHistory($t('homePage.home.batCurrent'), 'reactivePowerPCS', 'pcs', 'kVar', '')">
@click="showHistory($t('homePage.home.batCurrent'), 'reactivePowerPCS', 'pcs', 'V', '')">
<view class="history-icon">
<image src="/static/aidex/images/history-icon.png"></image>
</view>
@ -46,7 +46,7 @@
<image src="/static/aidex/images/zjrl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.reactivePowerPCS }}
<view class="item-num">{{ panelData.lowV }}
</view>
<view class="item-title">{{$t('homePage.home.batCurrent')}}(A)</view>
@ -61,10 +61,10 @@
<image src="/static/aidex/images/dqgl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.grid | isNull }}
<view class="item-num">{{ panelData.lowI | isNull }}
</view>
<view class="item-title">{{$t('homePage.home.busVoltage')}}(kVar)</view>
<view class="item-title">{{$t('homePage.home.busVoltage')}}(V)</view>
</view>
</view>
@ -76,132 +76,15 @@
<image src="/static/aidex/images/zfdl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.volA | isNull }}
<view class="item-num">{{ panelData.highV | isNull }}
</view>
<view class="item-title">{{$t('homePage.home.busCurrent')}}(A)</view>
</view>
</view>
<view class="group-item border-right" @click="showHistory($t('homePage.home.dc'), 'volB', 'pcs', 'V', '')">
<view class="history-icon">
<image src="/static/aidex/images/history-icon.png"></image>
</view>
<view class="item-icon">
<image src="/static/aidex/images/zfdl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.volB | isNull }}
</view>
<view class="item-title">{{$t('homePage.home.dc')}}(A)</view>
</view>
</view>
<view class="group-item" @click="showHistory($t('homePage.home.dcVoltage'), 'volC', 'pcs', 'V', '')">
<view class="history-icon">
<image src="/static/aidex/images/history-icon.png"></image>
</view>
<view class="item-icon">
<image src="/static/aidex/images/zfdl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.volC | isNull }}
</view>
<view class="item-title">{{$t('homePage.home.dcVoltage')}}(kVar)</view>
</view>
</view>
<!-- <view class="group-item border-right" @click="showHistory($t('homePage.device.acur'), 'currentA', 'pcs', 'A', '')">
<view class="history-icon">
<image src="/static/aidex/images/history-icon.png"></image>
</view>
<view class="item-icon">
<image src="/static/aidex/images/rfdl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.currentA | isNull }}
</view>
<view class="item-title">{{$t('homePage.device.acur')}}(A)</view>
</view>
</view> -->
<!-- <view class="group-item border-right" @click="showHistory($t('homePage.device.bcur'), 'currentB', 'pcs', 'A', '')">
<view class="history-icon">
<image src="/static/aidex/images/history-icon.png"></image>
</view>
<view class="item-icon">
<image src="/static/aidex/images/rfdl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.currentB | isNull }}
</view>
<view class="item-title">{{$t('homePage.device.bcur')}}(A)</view>
</view>
</view>
<view class="group-item" @click="showHistory($t('homePage.device.ccur'), 'currentC', 'pcs', 'A', '')">
<view class="history-icon">
<image src="/static/aidex/images/history-icon.png"></image>
</view>
<view class="item-icon">
<image src="/static/aidex/images/rfdl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.currentC | isNull }}
</view>
<view class="item-title">{{$t('homePage.device.ccur')}}(A)</view>
</view>
</view>
<view class="group-item border-right" @click="showHistory($t('homePage.device.DCPower'), 'dcPower', 'pcs', 'kW', '')">
<view class="history-icon">
<image src="/static/aidex/images/history-icon.png"></image>
</view>
<view class="item-icon">
<image src="/static/aidex/images/dqgl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.dcPower | kWFormat }}</view>
<view class="item-title">{{$t('homePage.device.DCPower')}}({{ panelData.dcPower | kwUnitFormat}})</view>
</view>
</view>
<view class="group-item border-right" @click="showHistory($t('homePage.device.DCVol'), 'dcInputVol', 'pcs', 'V', '')">
<view class="history-icon">
<image src="/static/aidex/images/history-icon.png"></image>
</view>
<view class="item-icon">
<image src="/static/aidex/images/zfdl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.dcInputVol | isNull }}
</view>
<view class="item-title">{{$t('homePage.device.DCVol')}}(V)</view>
</view>
</view>
<view class="group-item" @click="showHistory($t('homePage.device.DCCurrent'), 'dcCurrent', 'pcs', 'A', '')">
<view class="history-icon">
<image src="/static/aidex/images/history-icon.png"></image>
</view>
<view class="item-icon">
<image src="/static/aidex/images/rfdl.png"></image>
</view>
<view class="item-con">
<view class="item-num">{{ panelData.dcCurrent | isNull }}
</view>
<view class="item-title">{{$t('homePage.device.DCCurrent')}}(A)</view>
</view>
</view> -->
</view>
</view>
</view> -->
<historyModal :is-show.sync="histroyShow" :title="chartTitle" :params="hisParams" />
<u-action-sheet :list="actionSheetList" v-model="timeShow" @click="actionSheetCallback" @close="closeTimeAction"
:mask-close-able="false"></u-action-sheet>
@ -234,62 +117,80 @@
stationId: null,
srcId: null,
hnStationId: [417, 398, 416, 415, 405, 485],
actionSheetList: this.$t('homePage.device.timesArr'),
sampleTime:this.$t('homePage.device.timesArr')[0].label,
actionSheetList: Object.values(this.$t('homePage.home.timesArr')),
sampleTime:this.$t('homePage.home.timesArr')[0].text,
canvasData: [],
textCanvasData: [
{
type: "text",
coord: [
[144, 240]
],
font: [{
text:this.$t('homePage.home.activePowerpcs'),
size: 12,
color: "#999",
},
{
text: "",
size: 12,
color: "#000",
offsetX: 0
},
],
},
{
type: "text",
coord: [
[144, 260]
],
font: [{
text:this.$t('homePage.home.highV') + ':',
size: 12,
color: "#999",
},
{
text: "",
size: 12,
color: "#000",
offsetX: 0
},
],
},
//2
{
type: "text",
coord: [
[200, 200]
[144, 280]
],
font: [{
text:this.$t('homePage.device.vol') + "",
text:this.$t('homePage.home.lowV') + ':',
size: 12,
color: "#999",
},
{
text: "3.265 kVar",
text: "",
size: 12,
color: "#000",
left: 35
offsetX: 0
},
],
},
{
type: "text",
coord: [
[200, 220]
[144, 300]
],
font: [{
text:this.$t('homePage.device.current') + "",
text:this.$t('homePage.home.lowI') + ':',
size: 12,
color: "#999",
},
{
text: "3.98 A",
text: "",
size: 12,
color: "#000",
left: 35
},
],
},
{
type: "text",
coord: [
[200, 180]
],
font: [{
text:this.$t('homePage.home.pvPower') + "",
size: 12,
color: "#999",
},
{
text: "12.9 kW",
size: 12,
color: "#000",
left: 50
offsetX: 0
},
],
},
@ -299,6 +200,26 @@
coord: [
[3, 120]
],
font: [{
text: this.$t('homePage.device.gridMode') + ':',
size: 14,
color: "#999999",
width: 50,
},
{
text: "",
size: 14,
color: "#000",
left: 80
},
],
},
//6
{
type: "text",
coord: [
[3, 140]
],
font: [{
text: this.$t('homePage.device.runState') + ':',
size: 14,
@ -306,10 +227,10 @@
width: 50,
},
{
text: this.$t('homePage.device.offGrid'),
text: "",
size: 14,
color: "#000",
left: 80
offsetX: 0
},
],
}
@ -384,7 +305,7 @@
self.chartLoading = true;
return new Promise((resolve, reject) => {
self.$u.api.deviceList
.GetPCSCurve({
.GetPvCurve({
stationId: this.stationId,
sampleTime: this.time,
srcId: this.srcId,
@ -406,12 +327,12 @@
},
initChargeChart(val) {
const gonglv = [];
const soc = [];
// const soc = [];
const xAxis = [];
val.forEach((v) => {
xAxis.push(v.data);
gonglv.push(v.pcsRealTimeCurve);
soc.push(v.inCoreDataCurve);
gonglv.push(v.planCurve);
// soc.push(v.inCoreDataCurve);
});
this.curve_option = {
color: ["#BFE49F"],
@ -548,7 +469,6 @@
}
],
};
},
openTimeAction() {
this.timeShow = true;
@ -556,90 +476,50 @@
getStatus() {
this.stationLoading = true
const self = this;
this.$u.api.deviceList
.GetNewValue({
stationId: this.stationId,
srcId: this.srcId,
colList: [
"runState",
"remoteInPlace",
"onGrid",
"offGrid",
"stateCharging",
"stateDischarging",
"deviceStateStand",
"deviceStateFault",
"deviceStateFull",
"deviceStateEmpty",
"acBreaker",
"dcBreaker",
"soc",
"outputPower",
"reactivePowerPCS",
"grid",
"volA",
"volB",
"volC",
"currentA",
"currentB",
"currentC",
"dcPower",
"dcInputVol",
"dcCurrent",
colList: ["lowV", "highV", "lowI",
"pvActivePower","runState","remoteInPlace",
"onGrid","offGrid","stateCharging",
"stateDischarging","deviceStateStand","deviceStateFault",
"deviceStateFull","deviceStateEmpty","dcBreaker",
"eStop","soc","grid",
"outputPower",
// "reactivePowerPCS",
// ,
// "volA",
// "volB",
// "volC",
// "currentA",
// "currentB",
// "currentC",
// "dcPower",
// "dcInputVol",
// "dcCurrent",
],
})
.then((res) => {
const battery = self.updateBattery(res.data.soc?.value ? res.data.soc.value : 0);
this.panelData = {
outputPower: res.data.outputPower?.value ? res.data.outputPower?.value : 0,
reactivePowerPCS: res.data.reactivePowerPCS?.value ? res.data.reactivePowerPCS?.value :
0,
grid: res.data.grid?.value ? res.data.grid?.value : 0,
volA: res.data.volA?.value ? res.data.volA?.value : 0,
volB: res.data.volB?.value ? res.data.volB?.value : 0,
volC: res.data.volC?.value ? res.data.volC?.value : 0,
currentA: res.data.currentA?.value ? res.data.currentA?.value : 0,
currentB: res.data.currentB?.value ? res.data.currentB?.value : 0,
currentC: res.data.currentC?.value ? res.data.currentC?.value : 0,
dcPower: res.data.dcPower?.value ? res.data.dcPower?.value : 0,
dcInputVol: res.data.dcInputVol?.value ? res.data.dcInputVol?.value : 0,
dcCurrent: res.data.dcCurrent?.value ? res.data.dcCurrent?.value : 0,
lowV: res.data.lowV?.value ? res.data.lowV?.value : 0,
highV: res.data.highV?.value ? res.data.highV?.value : 0,
lowI: res.data.lowI?.value ? res.data.lowI?.value : 0,
pvActivePower: res.data.pvActivePower?.value ? res.data.pvActivePower?.value : 0
};
// this.textCanvasData[2].font[1].text = res.data.soc?.value ? res.data.soc.value + "%" : 0 + "%";
// this.textCanvasData[3].font[1].text = this.workStatus(res.data.runState?.value);
// if (this.stationId === 349 || this.stationId === 362 || this.stationId === 363) {
// if (res.data.remoteInPlace?.value === 0) {
// this.textCanvasData[4].font[1].text = this.$t('homePage.device.localAutomatic')
// }
// if (res.data.remoteInPlace?.value === 1) {
// this.textCanvasData[4].font[1].text = this.$t('homePage.device.localManual')
// }
// if (res.data.remoteInPlace?.value === 2) {
// this.textCanvasData[4].font[1].text = this.$t('homePage.device.distance')
// }
// } else {
// if (res.data.remoteInPlace?.value === 0) {
// this.textCanvasData[4].font[1].text = this.$t('homePage.device.local')
// }
// if (res.data.remoteInPlace?.value === 1) {
// this.textCanvasData[4].font[1].text = this.$t('homePage.device.distance')
// }
// }
// this.textCanvasData[5].font[1].text = res.data.onGrid?.value ?
// this.$t('homePage.device.grid') :
// this.$t('homePage.device.offGrid');
// if(res.data.outputPower?.value){
// this.textCanvasData[6].font[1].text = this.getFlowDirection(res.data.outputPower?.value, res
// .data.flowDirection)
// }
this.canvasData = [...this.textCanvasData, ...this.imageCanvasData, ...this
.lineCanvasData
]
this.textCanvasData[0].font[1].text = res.data.pvActivePower?.value ? res.data.pvActivePower.value + " kW" : 0 + " kW";
this.textCanvasData[1].font[1].text = res.data.highV?.value ? res.data.highV.value + " V" : 0 + " V";
this.textCanvasData[2].font[1].text = res.data.lowV?.value ? res.data.lowV.value + " V" : 0 + " V";
this.textCanvasData[3].font[1].text = res.data.lowI?.value ? res.data.lowI.value + " A" : 0 + " A";
this.textCanvasData[5].font[1].text = res.data.onGrid?.value ?
this.$t('homePage.device.grid') :
this.$t('homePage.device.offGrid');
if(res.data.outputPower?.value){
this.textCanvasData[6].font[1].text = this.getFlowDirection(res.data.outputPower?.value, res
.data.flowDirection)
}
this.canvasData = [...this.textCanvasData, ...this.imageCanvasData, ...this.lineCanvasData]
})
.finally((res) => {
this.stationLoading = false;

View File

@ -236,8 +236,8 @@
stationId: null,
srcId: null,
hnStationId: [417, 398, 416, 415, 405, 485],
actionSheetList: this.$t('homePage.device.timesArr'),
sampleTime:this.$t('homePage.device.timesArr')[0].label,
actionSheetList: Object.values(this.$t('homePage.home.timesArr')),
sampleTime:this.$t('homePage.home.timesArr')[0].text,
canvasData: [],
textCanvasData: [
//0