光伏功能逻辑
This commit is contained in:
@ -300,3 +300,12 @@ export function SetDataConfig(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取电站光伏能量/收益趋势
|
||||
export function getPvData(data) {
|
||||
return request({
|
||||
url: 'business/openStation/getPvData',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@ -8,6 +8,13 @@ export function GetTotal(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
export function getPvMonthData(data) {
|
||||
return request({
|
||||
url: '/business/earningsCalculate/getPvMonthData',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/** 查询一键重算 */
|
||||
|
||||
|
||||
67
src/api/screen/zzPvScreen.js
Normal file
67
src/api/screen/zzPvScreen.js
Normal file
@ -0,0 +1,67 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 中自根据电站Id查询所属组织机构返回
|
||||
export function GetDeptIdByStationId(data) {
|
||||
return request({
|
||||
url: '/business/IargeScreenShow/getByStationId',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 总览
|
||||
export function GetPvOverviewData(data) {
|
||||
return request({
|
||||
url: '/business/IargeScreenShow/getZhongZiPvOverviewData',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 获取电站区域分布
|
||||
export function GetPvRegionalDistribution(data) {
|
||||
return request({
|
||||
url: '/business/IargeScreenShow/getZhongZiPvDistribution',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 节能减排
|
||||
export function GetPvEnergySaving(data) {
|
||||
return request({
|
||||
url: '/business/IargeScreenShow/getZhongZiPvEnergySaving',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 日发电量
|
||||
export function GetPvRelease(data) {
|
||||
return request({
|
||||
url: '/business/IargeScreenShow/getZhongZiPvRelease',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 收益曲线
|
||||
export function GetPvIncomeCurve(data) {
|
||||
return request({
|
||||
url: '/business/IargeScreenShow/getZhongZiPvIncomeCurve',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 电站收益率排名
|
||||
export function GetPvRegionalIncomeDate(data) {
|
||||
return request({
|
||||
url: '/business/IargeScreenShow/getZhongZiPvIncomeList',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 电站发电量排名
|
||||
export function GetPvElecList(data) {
|
||||
return request({
|
||||
url: '/business/IargeScreenShow/getZhongZiPvElecList',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
10
src/api/surveillance/mttp/index.js
Normal file
10
src/api/surveillance/mttp/index.js
Normal file
@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// mttp发电功率
|
||||
export function GetMtttpCurve(data) {
|
||||
return request({
|
||||
url: '/business/pcs/pvCurve',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -224,6 +224,8 @@ export default {
|
||||
year: 'year',
|
||||
powerGenerationCapacity: 'power generation capacity',
|
||||
powerGeneration: 'power generation',
|
||||
revenueTrend: 'Revenue Trend'
|
||||
earning: 'earning',
|
||||
revenueTrend: 'Revenue Trend',
|
||||
pvIncomeUnit: 'EUR'
|
||||
}
|
||||
}
|
||||
|
||||
@ -222,6 +222,8 @@ export default {
|
||||
year: '年',
|
||||
powerGenerationCapacity: '发电功率',
|
||||
powerGeneration: '发电量',
|
||||
revenueTrend: '收益趋势'
|
||||
earning: '收益',
|
||||
revenueTrend: '收益趋势',
|
||||
pvIncomeUnit: '元'
|
||||
}
|
||||
}
|
||||
|
||||
@ -188,7 +188,8 @@ export default {
|
||||
monthlyPVpowerGeneration: 'Monthly PV power generation',
|
||||
monthlyInverterPowerGeneration: 'Monthly inverter power generation',
|
||||
monthlyIncome: 'Monthly income',
|
||||
powerGeneration: 'Power Generation'
|
||||
powerGeneration: 'Power Generation',
|
||||
ratedPower: 'Rated Power'
|
||||
},
|
||||
region: {
|
||||
regionName: 'Region Name',
|
||||
|
||||
@ -186,7 +186,8 @@ export default {
|
||||
monthlyInverterPowerGeneration: '本月逆变器发电量',
|
||||
monthlyIncome: '本月收益',
|
||||
gridConnectedDuration: '并网时长',
|
||||
powerGeneration: '发电量'
|
||||
powerGeneration: '发电量',
|
||||
ratedPower: '额定功率'
|
||||
},
|
||||
region: {
|
||||
regionName: '区域名称',
|
||||
|
||||
@ -236,7 +236,7 @@ export default {
|
||||
},
|
||||
user: {
|
||||
keyWordTip: '请输入关键字进行过滤',
|
||||
loadOrg: '正在加载组织结构数',
|
||||
loadOrg: '正在加载组织结构树',
|
||||
userInfo: '人员信息',
|
||||
loginName: '登录名',
|
||||
name: '姓名',
|
||||
@ -293,7 +293,7 @@ export default {
|
||||
},
|
||||
org: {
|
||||
keyWordTip: '输入关键字进行过滤',
|
||||
loadingOrg: '正在加载组织结构数',
|
||||
loadingOrg: '正在加载组织结构树',
|
||||
org: '组织机构管理',
|
||||
addOrg: '新增组织',
|
||||
editOrg: '编辑组织',
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
|
||||
<script>
|
||||
// import * as echarts from 'echarts'
|
||||
import { GetPCSElecData } from '@/api/home-page/index'
|
||||
import { getPvData } from '@/api/home-page/index'
|
||||
|
||||
export default {
|
||||
name: 'Index',
|
||||
@ -62,29 +62,6 @@ export default {
|
||||
created() {},
|
||||
|
||||
mounted() {
|
||||
const timeData = []
|
||||
const totalPoints = (24 * 60) / 5
|
||||
const currentTime = Date.now()
|
||||
for (let i = 0; i < totalPoints; i++) {
|
||||
const pointTimestamp = currentTime - i * 5 * 60 * 1000
|
||||
const date = new Date(pointTimestamp)
|
||||
const formattedTime = `${date.getFullYear()}-${(date.getMonth() + 1)
|
||||
.toString()
|
||||
.padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')} ${date
|
||||
.getHours()
|
||||
.toString()
|
||||
.padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`
|
||||
timeData.push(formattedTime)
|
||||
}
|
||||
timeData.reverse()
|
||||
const currentData = []
|
||||
for (let i = 0; i < timeData.length; i++) {
|
||||
currentData.push({
|
||||
date: timeData[i],
|
||||
chargeElec: Number((Math.random() * 1500 + 1400).toFixed(2))
|
||||
})
|
||||
}
|
||||
this.initCharts(currentData, 1)
|
||||
},
|
||||
methods: {
|
||||
selectTime(type) {
|
||||
@ -102,9 +79,8 @@ export default {
|
||||
type: this.currentType
|
||||
}
|
||||
try {
|
||||
const res = await GetPCSElecData(params)
|
||||
console.log(res)
|
||||
// this.initCharts(res.data, 1)
|
||||
const pvres = await getPvData(params)
|
||||
this.initCharts(pvres.data, 1)
|
||||
} catch (error) {
|
||||
// console.log(error);
|
||||
} finally {
|
||||
@ -114,13 +90,10 @@ export default {
|
||||
initCharts(val, type) {
|
||||
const x_data = []
|
||||
const charge_data = []
|
||||
// const discharge_data = []
|
||||
// let benefit_data = [0, 0, 0, 0, 0, 0, 0]
|
||||
if (val && val.length > 0) {
|
||||
val.forEach((item) => {
|
||||
x_data.push(item.date)
|
||||
charge_data.push(item.chargeElec)
|
||||
// discharge_data.push(item.dischargeElec)
|
||||
charge_data.push(item.powerGenerate)
|
||||
})
|
||||
}
|
||||
this.powerOptions = {
|
||||
|
||||
@ -4,9 +4,7 @@
|
||||
:title="$t('dashboard.revenueTrend')"
|
||||
@handleSetting="handleSetting"
|
||||
>
|
||||
<!-- <ItemBox :title="$t('dashboard.revenueTrend')"
|
||||
:show-curve-setting="true"
|
||||
@handleSetting="handleSetting"> -->
|
||||
<!-- <ItemBox :title="$t('dashboard.revenueTrend')" :show-curve-setting="true" @handleSetting="handleSetting"> -->
|
||||
<div slot="header">
|
||||
<div class="header-right-box">
|
||||
<div
|
||||
@ -33,7 +31,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { GetDynamicRealtimeCurve } from '@/api/home-page/index'
|
||||
import { getPvData } from '@/api/home-page/index'
|
||||
import * as echarts from 'echarts'
|
||||
// import { chartYIndex } from '@/utils/index'
|
||||
export default {
|
||||
@ -84,14 +82,6 @@ export default {
|
||||
watch: {},
|
||||
created() {},
|
||||
mounted() {
|
||||
const currentData = []
|
||||
for (let i = 1; i < 32; i++) {
|
||||
currentData.push({
|
||||
date: i,
|
||||
chargeElec: Number((Math.random() * 9000 + 1000).toFixed(2))
|
||||
})
|
||||
}
|
||||
this.initCharts(currentData, 1)
|
||||
},
|
||||
methods: {
|
||||
selectTime(type) {
|
||||
@ -105,13 +95,12 @@ export default {
|
||||
this.loading = true
|
||||
const params = {
|
||||
stationId: this.stationId,
|
||||
pageLocation: 'runChart',
|
||||
permissionId: this.permissionId
|
||||
type: this.currentType
|
||||
}
|
||||
try {
|
||||
const res = await GetDynamicRealtimeCurve(params)
|
||||
const res = await getPvData(params)
|
||||
if (res.data) {
|
||||
// this.initCharts(res.data)
|
||||
this.initCharts(res.data, 1)
|
||||
}
|
||||
} catch (error) {
|
||||
// console.log(error)
|
||||
@ -124,13 +113,10 @@ export default {
|
||||
initCharts(val, type) {
|
||||
const x_data = []
|
||||
const charge_data = []
|
||||
// const discharge_data = []
|
||||
// let benefit_data = [0, 0, 0, 0, 0, 0, 0]
|
||||
if (val && val.length > 0) {
|
||||
val.forEach((item) => {
|
||||
x_data.push(item.date)
|
||||
charge_data.push(item.chargeElec)
|
||||
// discharge_data.push(item.dischargeElec)
|
||||
charge_data.push(item.profit)
|
||||
})
|
||||
}
|
||||
this.runOptions = {
|
||||
@ -196,7 +182,7 @@ export default {
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: this.$t('glance.wRMB'),
|
||||
name: this.$t('dashboard.pvIncomeUnit'),
|
||||
nameTextStyle: {
|
||||
color: ' rgba(255, 255, 255, 0.5)'
|
||||
},
|
||||
@ -226,7 +212,7 @@ export default {
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: `${this.$t('state.powerGeneration')}`,
|
||||
name: `${this.$t('dashboard.earning')}`,
|
||||
type: 'bar',
|
||||
data: charge_data,
|
||||
barWidth: 14, // 柱状图的宽度
|
||||
|
||||
@ -1,119 +1,137 @@
|
||||
<template>
|
||||
<div class="top-center-wrapper">
|
||||
<ItemBox :title="$t('dashboard.runCurve')">
|
||||
<ItemBox :title="$t('dashboard.runCurve')" :show-curve-setting="true" @handleSetting="handleSetting">
|
||||
<div v-loading="loading" class="charts-box">
|
||||
<Chart
|
||||
ref="chart"
|
||||
:key="key"
|
||||
:options="powerOptions"
|
||||
:class-name="'chart'"
|
||||
/>
|
||||
<Chart :options="runOptions" :class-name="'chart'" />
|
||||
</div>
|
||||
</ItemBox>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// import * as echarts from 'echarts'
|
||||
import { GetPCSElecData } from '@/api/home-page/index'
|
||||
|
||||
import { GetDynamicRealtimeCurve } from '@/api/home-page/index'
|
||||
import * as echarts from 'echarts'
|
||||
import { chartYIndex } from '@/utils/index'
|
||||
export default {
|
||||
name: 'Index',
|
||||
props: {
|
||||
stationId: {
|
||||
type: Number,
|
||||
default: undefined
|
||||
default: 0
|
||||
},
|
||||
permissionId: {
|
||||
type: Number,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
powerOptions: undefined,
|
||||
currentType: 'day',
|
||||
color: ['#00A0E9'],
|
||||
loading: false,
|
||||
key: 0
|
||||
runOptions: undefined,
|
||||
serviceList: [],
|
||||
nameArr: [],
|
||||
color: [],
|
||||
color2: [[{
|
||||
offset: 0.0,
|
||||
color: 'rgba(206, 235, 255, 0.1)'
|
||||
},
|
||||
{
|
||||
offset: 1,
|
||||
color: 'rgba(206, 235, 255, 0.2)'
|
||||
}], [
|
||||
{
|
||||
offset: 0.0,
|
||||
color: 'rgba(255, 184, 0, 0.1)'
|
||||
},
|
||||
{
|
||||
offset: 1,
|
||||
color: 'rgba(255, 184, 0, 0.2)'
|
||||
}
|
||||
]],
|
||||
loading: false
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() {},
|
||||
|
||||
mounted() {
|
||||
const timeData = []
|
||||
const totalPoints = (24 * 60) / 5
|
||||
const currentTime = Date.now()
|
||||
for (let i = 0; i < totalPoints; i++) {
|
||||
const pointTimestamp = currentTime - i * 5 * 60 * 1000
|
||||
const date = new Date(pointTimestamp)
|
||||
const formattedTime = `${date.getFullYear()}-${(date.getMonth() + 1)
|
||||
.toString()
|
||||
.padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')} ${date
|
||||
.getHours()
|
||||
.toString()
|
||||
.padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`
|
||||
timeData.push(formattedTime)
|
||||
}
|
||||
timeData.reverse()
|
||||
const currentData = []
|
||||
for (let i = 0; i < timeData.length; i++) {
|
||||
currentData.push({
|
||||
date: timeData[i],
|
||||
chargeElec: Number((Math.random() * 1500 + 1400).toFixed(2))
|
||||
})
|
||||
}
|
||||
this.initCharts(currentData, 1)
|
||||
// this.initCharts()
|
||||
},
|
||||
methods: {
|
||||
selectTime(type) {
|
||||
this.currentType = type
|
||||
this.getData()
|
||||
handleSetting() {
|
||||
this.$emit('handleSetting')
|
||||
},
|
||||
getData() {
|
||||
this.getElecData()
|
||||
// this.getIncomeData()
|
||||
},
|
||||
async getElecData() {
|
||||
async getData() {
|
||||
this.loading = true
|
||||
const params = {
|
||||
stationId: this.stationId,
|
||||
type: this.currentType
|
||||
pageLocation: 'pvrunChart',
|
||||
permissionId: this.permissionId
|
||||
}
|
||||
try {
|
||||
const res = await GetPCSElecData(params)
|
||||
console.log(res)
|
||||
// this.initCharts(res.data, 1)
|
||||
const res = await GetDynamicRealtimeCurve(params)
|
||||
if (res.data) {
|
||||
this.initCharts(res.data)
|
||||
}
|
||||
} catch (error) {
|
||||
// console.log(error);
|
||||
// console.log(error)
|
||||
} finally {
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
// 新增代码
|
||||
|
||||
initCharts(val, type) {
|
||||
const x_data = []
|
||||
const charge_data = []
|
||||
// const discharge_data = []
|
||||
// let benefit_data = [0, 0, 0, 0, 0, 0, 0]
|
||||
initCharts(val) {
|
||||
let x_data = []
|
||||
const valueArr = []
|
||||
this.nameArr = []
|
||||
if (val && val.length > 0) {
|
||||
val.forEach((item) => {
|
||||
x_data.push(item.date)
|
||||
charge_data.push(item.chargeElec)
|
||||
// discharge_data.push(item.dischargeElec)
|
||||
val.forEach((item, index) => {
|
||||
valueArr.push(item.list)
|
||||
this.nameArr.push(item.name)
|
||||
if (item.list.length) {
|
||||
x_data = []
|
||||
item.list.forEach((el) => {
|
||||
x_data.push(el.date)
|
||||
})
|
||||
}
|
||||
this.powerOptions = {
|
||||
})
|
||||
const valueArr2 = []
|
||||
valueArr.forEach((item, index) => {
|
||||
const arr = []
|
||||
item.forEach((item2, index2) => {
|
||||
arr.push(item2.digital)
|
||||
valueArr2[index] = arr
|
||||
})
|
||||
})
|
||||
this.serviceList = []
|
||||
valueArr2.forEach((item, index) => {
|
||||
this.serviceList.push({
|
||||
data: item,
|
||||
type: 'line',
|
||||
name: this.nameArr[index],
|
||||
showSymbol: false,
|
||||
yAxisIndex: chartYIndex(val[index]),
|
||||
color: this.color[index],
|
||||
lineStyle: {
|
||||
color: this.color[index]
|
||||
},
|
||||
areaStyle: {
|
||||
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, this.color2[index])
|
||||
}
|
||||
})
|
||||
})
|
||||
this.runOptions = {
|
||||
grid: {
|
||||
top: '25%',
|
||||
left: '5%',
|
||||
right: '5%',
|
||||
left: '6%',
|
||||
right: '3%',
|
||||
bottom: '5%',
|
||||
containLabel: true
|
||||
},
|
||||
legend: {},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
backgroundColor: 'rgba(0,0,0,0,)',
|
||||
borderColor: 'rgba(0,0,0,0,);',
|
||||
borderWidth: 0,
|
||||
appendToBody: true,
|
||||
textStyle: {
|
||||
width: 160,
|
||||
height: 250,
|
||||
@ -122,15 +140,15 @@ export default {
|
||||
fontSize: '14',
|
||||
fontFamily: 'SourceHanSansCN-Normal'
|
||||
},
|
||||
formatter: (params) => {
|
||||
formatter: params => {
|
||||
// 获取xAxis data中的数据
|
||||
let dataStr = `<div><p style="font-weight:bold;margin:0 8px 15px;">${params[0].name}</p></div>`
|
||||
params.forEach((item) => {
|
||||
let dataStr = `<div><p style="font-weight:bold;margin:0 8px 15px;z-index: 9999999;">${params[0].name}</p></div>`
|
||||
params.forEach(item => {
|
||||
dataStr += `<div>
|
||||
<div style="margin: 0 8px;">
|
||||
<span style="display:inline-block;margin-right:5px;width:10px;height:10px;background-color:${this.color[0]};"></span>
|
||||
<span style="display:inline-block;margin-right:5px;width:10px;height:10px;background-color:${item.color};"></span>
|
||||
<span>${item.seriesName}</span>
|
||||
<span style="float:right;color:#00C8FF;margin-left:20px;">${item.data}</span>
|
||||
<span style="float:right;color:#00C8FF;margin-left:20px;">${item.data === null ? '' : item.data}</span>
|
||||
</div>
|
||||
</div>`
|
||||
})
|
||||
@ -140,9 +158,38 @@ export default {
|
||||
return div
|
||||
}
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
|
||||
legend: {
|
||||
type: 'scroll',
|
||||
top: 20,
|
||||
bottom: 20,
|
||||
padding: [0, 180],
|
||||
icon: 'circle',
|
||||
align: 'left',
|
||||
itemWidth: 10,
|
||||
itemHeight: 8,
|
||||
itemGap: 15,
|
||||
textStyle: {
|
||||
color: '#fff',
|
||||
rich: {
|
||||
name: {
|
||||
fontSize: 12,
|
||||
color: '#ffffff',
|
||||
padding: [0, 10, 0, 0]
|
||||
},
|
||||
num: {
|
||||
fontSize: 16,
|
||||
color: '#ffffff'
|
||||
},
|
||||
unit: {
|
||||
fontSize: 16,
|
||||
color: '#ffffff'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
xAxis: {
|
||||
data: x_data,
|
||||
axisLine: {
|
||||
show: true,
|
||||
@ -158,12 +205,10 @@ export default {
|
||||
axisTick: {
|
||||
show: false
|
||||
}
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
},
|
||||
yAxis: [{
|
||||
name: this.$t('dashboard.power') + '(kW)',
|
||||
type: 'value',
|
||||
name: `kWh`,
|
||||
nameTextStyle: {
|
||||
color: ' rgba(255, 255, 255, 0.5)'
|
||||
},
|
||||
@ -177,31 +222,56 @@ export default {
|
||||
show: true,
|
||||
color: '#CEEBFF'
|
||||
},
|
||||
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
show: true, // 强制显示分割线(默认已开启,确保不被隐藏)
|
||||
lineStyle: {
|
||||
type: 'dashed', // 线型设为虚线
|
||||
color: 'rgba(255,255,255,0.2)', // 虚线颜色(可自定义,如 #999、rgba(0,0,0,0.1))
|
||||
width: 1, // 虚线宽度
|
||||
dashOffset: 5 // 虚线偏移量(可选,调整虚线起始位置)
|
||||
min: function(value) {
|
||||
return Math.floor((Math.abs(value.min) < value.max ? -value.max * 1.05 : value.min * 1.05).toFixed(2))
|
||||
},
|
||||
max: function(value) {
|
||||
return Math.ceil((Math.abs(value.min) < value.max ? value.max * 1.05 : -value.min * 1.05).toFixed(2))
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
series: [
|
||||
},
|
||||
{
|
||||
name: `${this.$t('dashboard.powerGenerationCapacity')}`,
|
||||
type: 'line',
|
||||
smooth: true,
|
||||
symbol: 'none',
|
||||
data: charge_data,
|
||||
barWidth: 14, // 柱状图的宽度
|
||||
color: '#00C8FF'
|
||||
name: 'SOC(%)',
|
||||
type: 'value',
|
||||
max: 100,
|
||||
min: -100,
|
||||
ming: 0,
|
||||
nameTextStyle: {
|
||||
color: ' rgba(255, 255, 255, 0.5)'
|
||||
},
|
||||
axisLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: '#90e9d8'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
color: '#CEEBFF'
|
||||
},
|
||||
|
||||
axisTick: {
|
||||
show: false
|
||||
}
|
||||
|
||||
}],
|
||||
series: this.serviceList
|
||||
}
|
||||
} else {
|
||||
this.runOptions = {
|
||||
title: {
|
||||
text: this.$t('dashboard.noData'),
|
||||
x: 'center',
|
||||
y: 'center',
|
||||
textStyle: {
|
||||
fontSize: 14,
|
||||
fontWeight: 'normal'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -241,4 +311,5 @@ export default {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@ -120,33 +120,38 @@ export default {
|
||||
}],
|
||||
overflowData: [{
|
||||
name: this.$t('dashboard.currentPower'),
|
||||
id: 'currentPower',
|
||||
id: 'pvCurrentPower',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kW'
|
||||
}, {
|
||||
name: this.$t('dashboard.todayElectricityGeneration'),
|
||||
id: 'todayElecGeneration',
|
||||
id: 'dailyReleaseElec',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kWh'
|
||||
}, {
|
||||
name: this.$t('dashboard.todayEarning'),
|
||||
id: 'todayIncone',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: this.$t('dashboard.pvIncomeUnit')
|
||||
}, {
|
||||
name: this.$t('dashboard.totalPowerGeneration'),
|
||||
id: 'totalPowerGeneration',
|
||||
id: 'totalReleaseElec',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kWh'
|
||||
},
|
||||
{
|
||||
name: this.$t('dashboard.totalRevenue'),
|
||||
id: 'totalRevenue',
|
||||
id: 'totalIncome',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kWh',
|
||||
click: true
|
||||
unit: this.$t('dashboard.pvIncomeUnit')
|
||||
}, {
|
||||
name: this.$t('dashboard.ratedPowerofInverter'),
|
||||
id: 'ratedPowerofInverter',
|
||||
id: 'pvPower',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kW'
|
||||
@ -221,55 +226,42 @@ export default {
|
||||
value: 0
|
||||
}]
|
||||
this.overflowData = [{
|
||||
name: this.$t('dashboard.safeDays'),
|
||||
id: 'operationDays',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: this.$t('dashboard.day')
|
||||
}, {
|
||||
name: this.$t('dashboard.totalCapacity'),
|
||||
id: 'totalCapacity',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kWh'
|
||||
}, {
|
||||
name: this.$t('dashboard.systemConversionEfficiency'),
|
||||
id: 'systemEfficiency',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: '%'
|
||||
}, {
|
||||
name: this.$t('dashboard.currentPower'),
|
||||
id: 'currentPower',
|
||||
id: 'pvCurrentPower',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kW'
|
||||
}, {
|
||||
name: this.$t('dashboard.totalCharge'),
|
||||
id: 'totalChargeElec',
|
||||
name: this.$t('dashboard.todayElectricityGeneration'),
|
||||
id: 'dailyReleaseElec',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kWh'
|
||||
}, {
|
||||
name: this.stationId === 753 ? this.$t('dashboard.capacityIncrease') : this.$t('dashboard.totalDischarge'),
|
||||
id: 'totalDischargeElec',
|
||||
name: this.$t('dashboard.todayEarning'),
|
||||
id: 'todayIncone',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: this.$t('dashboard.pvIncomeUnit')
|
||||
}, {
|
||||
name: this.$t('dashboard.totalPowerGeneration'),
|
||||
id: 'totalReleaseElec',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kWh'
|
||||
},
|
||||
{
|
||||
name: this.$t('dashboard.dailyCharge'),
|
||||
id: 'dailyChargeElec',
|
||||
name: this.$t('dashboard.totalRevenue'),
|
||||
id: 'totalIncome',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kWh',
|
||||
click: true
|
||||
unit: this.$t('dashboard.pvIncomeUnit')
|
||||
}, {
|
||||
name: this.stationId === 753 ? this.$t('dashboard.DailycapacityIncrease') : this.$t('dashboard.dailyDischarge'),
|
||||
id: 'dailyDischargeElec',
|
||||
name: this.$t('dashboard.ratedPowerofInverter'),
|
||||
id: 'pvPower',
|
||||
picture: disImg,
|
||||
value: 0,
|
||||
unit: 'kWh'
|
||||
unit: 'kW'
|
||||
}]
|
||||
},
|
||||
deep: true
|
||||
@ -331,33 +323,49 @@ export default {
|
||||
if (data[item.id]) {
|
||||
item.value = data[item.id]
|
||||
}
|
||||
if (item.id === 'systemEfficiency') {
|
||||
item.value = (item.value * 100).toFixed(2)
|
||||
}
|
||||
if (item.id === 'totalCapacity' && item.value >= 1E4) {
|
||||
item.unit = 'MWh'
|
||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
}
|
||||
if (item.id === 'totalChargeElec' && item.value >= 1E4) {
|
||||
item.unit = 'MWh'
|
||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
}
|
||||
if (item.id === 'totalDischargeElec' && item.value >= 1E4) {
|
||||
item.unit = 'MWh'
|
||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
}
|
||||
if (item.id === 'dailyDischargeElec' && item.value >= 1E4) {
|
||||
item.unit = 'MWh'
|
||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
}
|
||||
if (item.id === 'dailyChargeElec' && item.value >= 1E4) {
|
||||
item.unit = 'MWh'
|
||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
}
|
||||
if (item.id === 'currentPower' && item.value >= 1E4) {
|
||||
if (item.id === 'pvCurrentPower' && item.value >= 1E4) {
|
||||
item.unit = 'MW'
|
||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
}
|
||||
if (item.id === 'dailyReleaseElec' && item.value >= 1E4) {
|
||||
item.unit = 'MWh'
|
||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
}
|
||||
if (item.id === 'totalReleaseElec' && item.value >= 1E4) {
|
||||
item.unit = 'MWh'
|
||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
}
|
||||
if (item.id === 'pvPower' && item.value >= 1E4) {
|
||||
item.unit = 'MW'
|
||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
}
|
||||
// if (item.id === 'systemEfficiency') {
|
||||
// item.value = (item.value * 100).toFixed(2)
|
||||
// }
|
||||
// if (item.id === 'totalCapacity' && item.value >= 1E4) {
|
||||
// item.unit = 'MWh'
|
||||
// item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
// }
|
||||
// if (item.id === 'totalChargeElec' && item.value >= 1E4) {
|
||||
// item.unit = 'MWh'
|
||||
// item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
// }
|
||||
// if (item.id === 'totalDischargeElec' && item.value >= 1E4) {
|
||||
// item.unit = 'MWh'
|
||||
// item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
// }
|
||||
// if (item.id === 'dailyDischargeElec' && item.value >= 1E4) {
|
||||
// item.unit = 'MWh'
|
||||
// item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
// }
|
||||
// if (item.id === 'dailyChargeElec' && item.value >= 1E4) {
|
||||
// item.unit = 'MWh'
|
||||
// item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
// }
|
||||
// if (item.id === 'currentPower' && item.value >= 1E4) {
|
||||
// item.unit = 'MW'
|
||||
// item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
||||
// }
|
||||
})
|
||||
} catch (error) {
|
||||
// console.log(error);
|
||||
|
||||
@ -87,7 +87,6 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col v-if="workInfo.value === 1" :span="24">
|
||||
<el-form-item :label="$t('dashboard.remoteControlActive') + (kW)" prop="p">
|
||||
<el-input-number
|
||||
|
||||
@ -3,13 +3,13 @@
|
||||
<el-row class="top-box" :gutter="10">
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||
<div class="component-wrapper">
|
||||
<!-- @handleSetting="handlePointSetting('stationData')" -->
|
||||
<component
|
||||
:is="topLeftComponent"
|
||||
ref="topLeft"
|
||||
:permission-id="permissionId"
|
||||
:station-id="stationId"
|
||||
:daily-time="timeForm"
|
||||
@handleSetting="handlePointSetting('stationData')"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
@ -28,6 +28,7 @@
|
||||
:station-id="stationId"
|
||||
:station-type="stationType"
|
||||
@screenFull="screenFull"
|
||||
@handleSetting="handleSetting('pvrunChart')"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
@ -69,13 +70,13 @@
|
||||
<el-row class="bottom-box" :gutter="10">
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
||||
<div class="component-bottom">
|
||||
<!-- <div class="component-bottom" :style="{ height: bottomHeight }"> -->
|
||||
<!-- <div class="component-bottom" :style="{ height: bottomHeight }">
|
||||
下方component组件的 @handleSetting="handlePointSetting('barLeftBottom')" -->
|
||||
<component
|
||||
:is="bottomLeftComponent"
|
||||
ref="bottomLeft"
|
||||
:station-id="stationId"
|
||||
:daily-time="timeForm"
|
||||
@handleSetting="handlePointSetting('barLeftBottom')"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
@ -91,7 +92,6 @@
|
||||
ref="bottomRight"
|
||||
:permission-id="permissionId"
|
||||
:station-id="stationId"
|
||||
@handleSetting="handleSetting('runChart')"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
@ -203,7 +203,7 @@ export default {
|
||||
show_dispostion: false,
|
||||
show_point_dispostion: false,
|
||||
pageLocation: null,
|
||||
chartLocation: 'runChart',
|
||||
chartLocation: 'pvrunChart',
|
||||
permissionId: null
|
||||
}
|
||||
},
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
<ItemBox :title="$t('dashboard.runCurve')">
|
||||
<div v-loading="loading" class="charts-box">
|
||||
<Chart :options="runOptions" :class-name="'chart'" />
|
||||
|
||||
</div>
|
||||
</ItemBox>
|
||||
</div>
|
||||
|
||||
@ -9,9 +9,8 @@
|
||||
|
||||
<script>
|
||||
import item from './item-warp.vue'
|
||||
import { GetChargeDailyChart } from '@/api/screen/zzScreen'
|
||||
import { GetPvRelease } from '@/api/screen/zzPvScreen'
|
||||
import dayChargeIcon from '../../../assets/new-screen/dayCharge-icon.png'
|
||||
// import dayDischargeIcon from '../../../assets/new-screen/dayDischarge-icon.png'
|
||||
export default {
|
||||
components: { item },
|
||||
data() {
|
||||
@ -31,7 +30,7 @@ export default {
|
||||
async getData(deptId) {
|
||||
try {
|
||||
this.Loading = true
|
||||
const { data } = await GetChargeDailyChart({
|
||||
const { data } = await GetPvRelease({
|
||||
deptId: deptId
|
||||
})
|
||||
this.initChart(data)
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
<script>
|
||||
import item from './item-warp.vue'
|
||||
import screenItemBg from '@/assets/new-screen/screen-item-bg.png'
|
||||
import { GetEnergySaving } from '@/api/screen/zzScreen'
|
||||
import { GetPvEnergySaving } from '@/api/screen/zzPvScreen'
|
||||
export default {
|
||||
components: { item },
|
||||
data() {
|
||||
@ -61,7 +61,7 @@ export default {
|
||||
async getData(deptId) {
|
||||
try {
|
||||
this.loading = true
|
||||
const { data } = await GetEnergySaving({
|
||||
const { data } = await GetPvEnergySaving({
|
||||
deptId: deptId
|
||||
})
|
||||
this.info = data
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
|
||||
<script>
|
||||
import item from './item-warp.vue'
|
||||
import { GetRegionalDistribution } from '@/api/screen/zzScreen'
|
||||
import { GetPvRegionalDistribution } from '@/api/screen/zzPvScreen'
|
||||
|
||||
export default {
|
||||
components: { item },
|
||||
@ -27,7 +27,7 @@ export default {
|
||||
async getData(deptId) {
|
||||
try {
|
||||
this.loading = true
|
||||
const res = await GetRegionalDistribution({
|
||||
const res = await GetPvRegionalDistribution({
|
||||
deptId: deptId
|
||||
})
|
||||
this.initChart(res.data)
|
||||
|
||||
@ -25,56 +25,29 @@
|
||||
<el-tooltip class="item" effect="dark" :content="$t('screen.dailyPowerGeneration')" placement="top">
|
||||
<div class="title" style="min-width:170px;max-width:170px;">{{ $t('screen.dailyPowerGeneration') }}</div>
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" :content="info.dayCharge |kwhFormat" placement="top">
|
||||
<div class="value" style="min-width:170px;max-width:170px;">{{ info.dayCharge |kwhFormat }}</div>
|
||||
<el-tooltip class="item" effect="dark" :content="info.dailyReleaseElec |kwhFormat" placement="top">
|
||||
<div class="value" style="min-width:170px;max-width:170px;">{{ info.dailyReleaseElec |kwhFormat }}</div>
|
||||
</el-tooltip>
|
||||
<div class="unit">{{ info.dayCharge |kwhUnitFormat }}</div>
|
||||
<div class="unit">{{ info.dailyReleaseElec |kwhUnitFormat }}</div>
|
||||
</div>
|
||||
<div class="value-box" style="width:100%">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('screen.yearlyPowerGeneration')" placement="top">
|
||||
<div class="title" style="min-width:170px;max-width:170px;">{{ $t('screen.yearlyPowerGeneration') }}</div>
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" :content="info.dayDischarge |kwhFormat" placement="top">
|
||||
<div class="value" style="min-width:170px;max-width:170px;">{{ info.dayDischarge |kwhFormat }}</div>
|
||||
<el-tooltip class="item" effect="dark" :content="info.yearReleaseElec |kwhFormat" placement="top">
|
||||
<div class="value" style="min-width:170px;max-width:170px;">{{ info.yearReleaseElec |kwhFormat }}</div>
|
||||
</el-tooltip>
|
||||
<div class="unit">{{ info.dayDischarge |kwhUnitFormat }}</div>
|
||||
<div class="unit">{{ info.yearReleaseElec |kwhUnitFormat }}</div>
|
||||
</div>
|
||||
<div class="value-box" style="width:100%">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('screen.cumulativePowerGeneration')" placement="top">
|
||||
<div class="title" style="min-width:170px;max-width:170px;">{{ $t('screen.cumulativePowerGeneration') }}</div>
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" :content="info.yearCharge |kwhFormat" placement="top">
|
||||
<div class="value" style="min-width:170px;max-width:170px;">{{ info.yearCharge |kwhFormat }}</div>
|
||||
<el-tooltip class="item" effect="dark" :content="info.totalReleaseElec |kwhFormat" placement="top">
|
||||
<div class="value" style="min-width:170px;max-width:170px;">{{ info.totalReleaseElec |kwhFormat }}</div>
|
||||
</el-tooltip>
|
||||
<div class="unit">{{ info.yearCharge |kwhUnitFormat }}</div>
|
||||
<div class="unit">{{ info.totalReleaseElec |kwhUnitFormat }}</div>
|
||||
</div>
|
||||
<!-- <div class="value-box">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('screen.yearDisCharge')" placement="top">
|
||||
<div class="title">{{ $t('screen.yearDisCharge') }}</div>
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" :content="info.yearDischarge |kwhFormat" placement="top">
|
||||
<div class="value">{{ info.yearDischarge |kwhFormat }}</div>
|
||||
</el-tooltip>
|
||||
<div class="unit">{{ info.yearDischarge |kwhUnitFormat }}</div>
|
||||
</div>
|
||||
<div class="value-box">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('screen.totalCharge')" placement="top">
|
||||
<div class="title">{{ $t('screen.totalCharge') }}</div>
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" :content="info.totalCharge |kwhFormat" placement="top">
|
||||
<div class="value">{{ info.totalCharge |kwhFormat }}</div>
|
||||
</el-tooltip>
|
||||
<div class="unit">{{ info.totalCharge |kwhUnitFormat }}</div>
|
||||
</div>
|
||||
<div class="value-box">
|
||||
<el-tooltip class="item" effect="dark" :content="$t('screen.totalDisCharge')" placement="top">
|
||||
<div class="title">{{ $t('screen.totalDisCharge') }}</div>
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" :content="info.totalDischarge |kwhFormat" placement="top">
|
||||
<div class="value">{{ info.totalDischarge |kwhFormat }}</div>
|
||||
</el-tooltip>
|
||||
<div class="unit">{{ info.totalDischarge |kwhUnitFormat }}</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</item>
|
||||
</div>
|
||||
|
||||
@ -18,7 +18,9 @@
|
||||
import worldJson from 'echarts/map/json/world.json'
|
||||
// import { chinaMapOutline } from '@/assets/mapJson/chinaMapOut.js'
|
||||
import blue from '../../../assets/new-screen/map-blue.png'
|
||||
import { GetStationInfo, GetCapacity, GetRegionalDistribution } from '@/api/screen/zzScreen'
|
||||
import { GetStationInfo, GetCapacity } from '@/api/screen/zzScreen'
|
||||
|
||||
import { GetPvRegionalDistribution } from '@/api/screen/zzPvScreen'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@ -51,7 +53,7 @@ export default {
|
||||
}
|
||||
},
|
||||
async getStationNum(deptId) {
|
||||
const { data } = await GetRegionalDistribution({
|
||||
const { data } = await GetPvRegionalDistribution({
|
||||
deptId: deptId
|
||||
})
|
||||
this.mapData = data
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
|
||||
<script>
|
||||
import SwiperTable from './SwiperTable.vue'
|
||||
import { GetEfficiencyDate } from '@/api/screen/zzScreen'
|
||||
import { GetPvElecList } from '@/api/screen/zzPvScreen'
|
||||
import item from './item-warp.vue'
|
||||
export default {
|
||||
components: { item, SwiperTable },
|
||||
@ -44,7 +44,7 @@ export default {
|
||||
async getData(deptId) {
|
||||
try {
|
||||
this.tableLoading = true
|
||||
const res = await GetEfficiencyDate({
|
||||
const res = await GetPvElecList({
|
||||
deptId: deptId
|
||||
})
|
||||
this.tableData = res.data
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<script>
|
||||
import item from './item-warp.vue'
|
||||
import SwiperTableCenter from './SwiperTableCenter.vue'
|
||||
import { GetRegionalIncomeDate } from '@/api/screen/zzScreen'
|
||||
import { GetPvRegionalIncomeDate } from '@/api/screen/zzPvScreen'
|
||||
export default {
|
||||
components: { item, SwiperTableCenter },
|
||||
data() {
|
||||
@ -42,7 +42,7 @@ export default {
|
||||
async getData(deptId) {
|
||||
try {
|
||||
this.tableLoading = true
|
||||
const res = await GetRegionalIncomeDate({
|
||||
const res = await GetPvRegionalIncomeDate({
|
||||
deptId: deptId
|
||||
})
|
||||
this.tableData = res.data
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
<script>
|
||||
import item from './item-warp.vue'
|
||||
import { GetIncomeCurve } from '@/api/screen/zzScreen'
|
||||
import { GetPvIncomeCurve } from '@/api/screen/zzPvScreen'
|
||||
export default {
|
||||
components: { item },
|
||||
props: {},
|
||||
@ -51,7 +51,7 @@ export default {
|
||||
this.deptId = deptId
|
||||
try {
|
||||
this.loading = true
|
||||
const { data } = await GetIncomeCurve({ type: this.activeName, deptId: deptId })
|
||||
const { data } = await GetPvIncomeCurve({ type: this.activeName, deptId: deptId })
|
||||
this.initChart(data)
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
|
||||
@ -69,7 +69,8 @@ import RightCenter from './components/right-center.vue'
|
||||
import RightRight from './components/right-bottom.vue'
|
||||
import CenterBottom from './components/center-bottom.vue'
|
||||
import CenterTop from './components/center-top.vue'
|
||||
import { GetOverviewData, GetNewWeather, GetDeptIdByStationId } from '@/api/screen/zzScreen'
|
||||
import { GetNewWeather, GetDeptIdByStationId } from '@/api/screen/zzScreen'
|
||||
import { GetPvOverviewData } from '@/api/screen/zzPvScreen'
|
||||
export default {
|
||||
components: {
|
||||
// MapCenter, CenterTop,
|
||||
@ -150,35 +151,30 @@ export default {
|
||||
this.$refs.MapCenterRef.getLeftData(this.deptId)
|
||||
|
||||
this.$refs.CenterBottomRef.getData(this.deptId)
|
||||
const res = await GetOverviewData({
|
||||
const res = await GetPvOverviewData({
|
||||
deptId: this.deptId
|
||||
})
|
||||
console.log(res.data)
|
||||
this.leftTopInfo = {
|
||||
capacity: res.data.capacity,
|
||||
stationNumber: res.data.stationNumber,
|
||||
yearCharge: res.data.yearCharge,
|
||||
yearDischarge: res.data.yearDischarge,
|
||||
totalCharge: res.data.totalCharge,
|
||||
totalDischarge: res.data.totalDischarge,
|
||||
dayCharge: res.data.dayCharge,
|
||||
dayDischarge: res.data.dayDischarge
|
||||
dailyReleaseElec: res.data.dailyReleaseElec,
|
||||
yearReleaseElec: res.data.yearReleaseElec,
|
||||
totalReleaseElec: res.data.totalReleaseElec
|
||||
}
|
||||
|
||||
this.centerTopInfo = {
|
||||
totalProfit: (Number(res.data.totalProfit) / 1E4).toFixed(2),
|
||||
yearProfit: (Number(res.data.yearProfit) / 1E4).toFixed(2),
|
||||
yestProfit: (Number(res.data.yestProfit) / 1E4).toFixed(2)
|
||||
totalProfit: (Number(res.data.todayIncone) / 1E4).toFixed(2),
|
||||
yearProfit: (Number(res.data.yearIncone) / 1E4).toFixed(2),
|
||||
yestProfit: (Number(res.data.totalIncome) / 1E4).toFixed(2)
|
||||
}
|
||||
} catch (err) {
|
||||
this.leftTopInfo = {
|
||||
capacity: 0,
|
||||
stationNumber: 0,
|
||||
yearCharge: 0,
|
||||
yearDischarge: 0,
|
||||
totalCharge: 0,
|
||||
totalDischarge: 0,
|
||||
dayCharge: 0,
|
||||
dayDischarge: 0
|
||||
dailyReleaseElec: 0,
|
||||
yearReleaseElec: 0,
|
||||
totalReleaseElec: 0
|
||||
}
|
||||
this.centerTopInfo = {
|
||||
totalProfit: 0,
|
||||
|
||||
@ -14,7 +14,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col
|
||||
:xs="24"
|
||||
:sm="24"
|
||||
@ -23,7 +22,7 @@
|
||||
:xl="17"
|
||||
style="text-align: right"
|
||||
>
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
v-permission="['business:earningsCalculate:oneKeyComputation']"
|
||||
style="margin-left: auto"
|
||||
type="primary"
|
||||
@ -41,7 +40,7 @@
|
||||
class="reset-btn"
|
||||
:loading="downLoading"
|
||||
@click="handleExportTempData"
|
||||
>{{ $t("state.exportReport") }}</el-button>
|
||||
>{{ $t("state.exportReport") }}</el-button> -->
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
@ -55,25 +54,6 @@
|
||||
<div class="top">
|
||||
<ItemBox :title="$t('state.powerGenerationStatus')">
|
||||
<div class="box">
|
||||
<div class="value-box">
|
||||
<div class="top-box">
|
||||
<span class="d" />
|
||||
<el-tooltip
|
||||
:content="$t('state.totalStringCapacity')"
|
||||
placement="top"
|
||||
effect="dark"
|
||||
>
|
||||
<span class="title">{{ $t("state.totalStringCapacity") }}</span>
|
||||
</el-tooltip>
|
||||
|
||||
<span class="d" />
|
||||
</div>
|
||||
<div class="center-line" />
|
||||
<div class="bottom-value">
|
||||
{{ totalData.capacity }}
|
||||
<span class="unit">kWp</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="value-box">
|
||||
<div class="top-box">
|
||||
<span class="d" />
|
||||
@ -90,7 +70,7 @@
|
||||
</div>
|
||||
<div class="center-line" />
|
||||
<div class="bottom-value">
|
||||
203{{ totalData.totalChargeElec }}.55
|
||||
{{ totalData.monthReleaseElec }}
|
||||
<span class="unit">kWh</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -110,7 +90,7 @@
|
||||
</div>
|
||||
<div class="center-line" />
|
||||
<div class="bottom-value">
|
||||
237{{ totalData.totalCharge }}.12
|
||||
{{ totalData.totalReleaseElec }}
|
||||
<span class="unit">kWh</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -118,60 +98,22 @@
|
||||
<div class="top-box">
|
||||
<span class="d" />
|
||||
<el-tooltip
|
||||
:content="$t('state.equivalentPowerGenerationTime')"
|
||||
:content="$t('state.ratedPower')"
|
||||
placement="top"
|
||||
effect="dark"
|
||||
>
|
||||
<span class="title">{{
|
||||
$t("state.equivalentPowerGenerationTime")
|
||||
$t("state.ratedPower")
|
||||
}}</span>
|
||||
</el-tooltip>
|
||||
<span class="d" />
|
||||
</div>
|
||||
<div class="center-line" />
|
||||
<div class="bottom-value">
|
||||
9.{{ totalData.totalDischargeElec }}6
|
||||
<span class="unit">kWh/kWp</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="value-box">
|
||||
<div class="top-box">
|
||||
<span class="d" />
|
||||
<el-tooltip
|
||||
:content="$t('state.peakACpower')"
|
||||
placement="top"
|
||||
effect="dark"
|
||||
>
|
||||
<span class="title">{{ $t("state.peakACpower") }}</span>
|
||||
</el-tooltip>
|
||||
<span class="d" />
|
||||
</div>
|
||||
<div class="center-line" />
|
||||
<div class="bottom-value">
|
||||
6{{ totalData.totalDischarge }}.87
|
||||
{{ totalData.pvPower === null? 0:totalData.pvPower }}
|
||||
<span class="unit">kW</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="value-box">
|
||||
<div class="top-box">
|
||||
<span class="d" />
|
||||
<el-tooltip
|
||||
:content="$t('state.gridConnectedDuration')"
|
||||
placement="top"
|
||||
effect="dark"
|
||||
>
|
||||
<span class="title">{{
|
||||
$t("state.gridConnectedDuration")
|
||||
}}</span>
|
||||
</el-tooltip>
|
||||
<span class="d" />
|
||||
</div>
|
||||
<div class="center-line" />
|
||||
<div class="bottom-value">
|
||||
0
|
||||
<span class="unit">h</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ItemBox>
|
||||
</div>
|
||||
@ -187,86 +129,6 @@
|
||||
/>
|
||||
</div>
|
||||
</ItemBox>
|
||||
<!-- <el-row :gutter="10" style="width: 100%">
|
||||
<el-col
|
||||
:xs="24"
|
||||
:sm="12"
|
||||
:md="12"
|
||||
:lg="12"
|
||||
:xl="12"
|
||||
class="center-left"
|
||||
>
|
||||
<ItemBox :title="$t('state.charge')">
|
||||
<el-table
|
||||
v-loading="load_data"
|
||||
:header-cell-style="{
|
||||
color: '#CEEBFF',
|
||||
textAlign: 'center',
|
||||
}"
|
||||
:data="chargeArr"
|
||||
style="width: 100%"
|
||||
:row-style="{ height: '40px' }"
|
||||
height="175"
|
||||
>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="rateType"
|
||||
:label="$t('state.time')"
|
||||
/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="elec"
|
||||
:label="$t('state.ele')"
|
||||
/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="digital"
|
||||
:label="$t('state.expend')"
|
||||
/>
|
||||
</el-table>
|
||||
</ItemBox>
|
||||
</el-col>
|
||||
<el-col
|
||||
:xs="24"
|
||||
:sm="12"
|
||||
:md="12"
|
||||
:lg="12"
|
||||
:xl="12"
|
||||
class="center-right"
|
||||
>
|
||||
<ItemBox :title="$t('state.disCharge')">
|
||||
<div class="box">
|
||||
<el-table
|
||||
v-loading="load_data"
|
||||
:header-cell-style="{
|
||||
color: '#CEEBFF',
|
||||
textAlign: 'center',
|
||||
}"
|
||||
:data="dischargeArr"
|
||||
style="width: 100%"
|
||||
:row-style="{ height: '40px' }"
|
||||
height="175"
|
||||
>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="rateType"
|
||||
:label="$t('state.time')"
|
||||
/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="elec"
|
||||
:label="$t('state.ele')"
|
||||
/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="digital"
|
||||
:label="$t('state.earnings') + `(${$t('state.rmb')})`"
|
||||
/>
|
||||
</el-table>
|
||||
</div>
|
||||
</ItemBox>
|
||||
</el-col>
|
||||
</el-row> -->
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
@ -276,18 +138,7 @@
|
||||
<div class="title">{{ $t("state.monthlyPVpowerGeneration") }}</div>
|
||||
<div class="bottom-value">
|
||||
<div class="value">
|
||||
2031.{{ totalData.totalChargePrice }}7
|
||||
<span class="unit">kWh</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="value-box">
|
||||
<div class="title">
|
||||
{{ $t("state.monthlyInverterPowerGeneration") }}
|
||||
</div>
|
||||
<div class="bottom-value">
|
||||
<div class="value">
|
||||
237{{ totalData.totalDisChargePrice }}.53
|
||||
{{ totalData.monthIncone }}
|
||||
<span class="unit">kWh</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -296,7 +147,7 @@
|
||||
<div class="title">{{ $t("state.monthlyIncome") }}</div>
|
||||
<div class="bottom-value">
|
||||
<div class="value">
|
||||
45{{ totalData.income }}8.3
|
||||
{{ totalData.totalIncome }}
|
||||
<span class="unit">{{ $t("state.rmb") }}</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -368,6 +219,7 @@
|
||||
import * as echarts from 'echarts'
|
||||
import {
|
||||
GetTotal,
|
||||
getPvMonthData,
|
||||
OneKeyComputation,
|
||||
SureOneKeyComputation
|
||||
} from '@/api/revenue-management/earnings-statement'
|
||||
@ -382,8 +234,6 @@ export default {
|
||||
downLoading: false,
|
||||
totalData: {},
|
||||
load_data: false,
|
||||
chargeArr: [],
|
||||
dischargeArr: [],
|
||||
computedTime: [],
|
||||
computedShow: false,
|
||||
computedLoading: false,
|
||||
@ -546,6 +396,18 @@ export default {
|
||||
changeTime() {
|
||||
this.get_table_data()
|
||||
},
|
||||
async getPvMonthData(params) {
|
||||
try {
|
||||
const res = await getPvMonthData(params)
|
||||
this.initCharts(res.data)
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
} finally {
|
||||
// console.log(error);
|
||||
}
|
||||
const res = await GetTotal(params)
|
||||
this.initCharts(res.data)
|
||||
},
|
||||
async get_table_data() {
|
||||
this.load_data = true
|
||||
const params = {
|
||||
@ -554,28 +416,10 @@ export default {
|
||||
}
|
||||
try {
|
||||
const res = await GetTotal(params)
|
||||
await getPvMonthData(params)
|
||||
this.totalData = res.data
|
||||
this.chargeArr = []
|
||||
this.dischargeArr = []
|
||||
if (res.data.finish === 0) {
|
||||
this.$message.warning(
|
||||
`${this.$t('state.computeding')}${res.data.progress}${this.$t(
|
||||
'state.laterQuery'
|
||||
)}`
|
||||
)
|
||||
}
|
||||
if (res.data.list.length) {
|
||||
res.data.list.forEach((el) => {
|
||||
if (+el.type === 0) {
|
||||
this.chargeArr.push(el)
|
||||
}
|
||||
if (+el.type === 1) {
|
||||
this.dischargeArr.push(el)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.chargeArr = []
|
||||
this.dischargeArr = []
|
||||
this.$message.warning(`${this.$t('state.computeding')}${res.data.progress}${this.$t('state.laterQuery')}`)
|
||||
}
|
||||
} catch (error) {
|
||||
// console.log(error);
|
||||
@ -634,13 +478,10 @@ export default {
|
||||
initCharts(val, type) {
|
||||
const x_data = []
|
||||
const charge_data = []
|
||||
// const discharge_data = []
|
||||
// let benefit_data = [0, 0, 0, 0, 0, 0, 0]
|
||||
if (val && val.length > 0) {
|
||||
val.forEach((item) => {
|
||||
x_data.push(item.date)
|
||||
charge_data.push(item.chargeElec)
|
||||
// discharge_data.push(item.dischargeElec)
|
||||
charge_data.push(item.powerGenerate)
|
||||
})
|
||||
}
|
||||
this.powerOptions = {
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
|
||||
<script>
|
||||
|
||||
import { GetPcsCurve } from '@/api/surveillance/pcs'
|
||||
import { GetMtttpCurve } from '@/api/surveillance/mttp'
|
||||
import ItemBox from '../../item-kuang.vue'
|
||||
export default {
|
||||
name: 'Index',
|
||||
@ -102,7 +102,7 @@ export default {
|
||||
srcId: srcId
|
||||
}
|
||||
try {
|
||||
const res = await GetPcsCurve(params)
|
||||
const res = await GetMtttpCurve(params)
|
||||
this.getChatData(res.data)
|
||||
} catch (error) {
|
||||
// console.log(error);
|
||||
@ -115,7 +115,7 @@ export default {
|
||||
const xAxis = []
|
||||
val.forEach((v) => {
|
||||
xAxis.push(v.data)
|
||||
gonglv.push(Number((Math.random() * 50 + 100).toFixed(2)))
|
||||
gonglv.push(v.planCurve)
|
||||
})
|
||||
this.options = {
|
||||
color: ['#00C8FF', '#FBBB11'],
|
||||
|
||||
@ -411,7 +411,7 @@ export default {
|
||||
}
|
||||
try {
|
||||
const res = await GetNewValue(params)
|
||||
|
||||
console.log('dcdcmppt', res)
|
||||
this.pcsLeftTopData.forEach((el) => {
|
||||
if (Object.keys(res.data).length !== 0) {
|
||||
el.value = res.data[el.field].value
|
||||
|
||||
@ -1,361 +1,235 @@
|
||||
export const pcsRightData = [
|
||||
{
|
||||
label: '总报警状态',
|
||||
englabel: 'PCS Total Alarm Status',
|
||||
field: 'YX0012',
|
||||
label: 'EPO故障',
|
||||
englabel: '',
|
||||
field: 'YX0058',
|
||||
value: ''
|
||||
},
|
||||
|
||||
{
|
||||
label: '单元直压故障',
|
||||
englabel: 'Unit direct pressure failure',
|
||||
field: 'YX0007',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '开关电源欠压',
|
||||
englabel: 'Switching power supply is undervoltaged',
|
||||
field: 'YX0010',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '过温故障',
|
||||
englabel: 'Overtemperature failure',
|
||||
field: 'YX0015',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '系统相序错误',
|
||||
englabel: 'The system phase sequence is incorrect',
|
||||
field: 'YX0031',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流极性反接',
|
||||
englabel: 'DC polarity reversed',
|
||||
field: 'YX0032',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流母线软件过压',
|
||||
englabel: 'DC bus software overvoltage',
|
||||
field: 'YX0033',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流母线软件欠压',
|
||||
englabel: 'DC bus software undervoltage',
|
||||
field: 'YX0034',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '系统过频率',
|
||||
englabel: 'The frequency of the system is over-frequent',
|
||||
field: 'YX0035',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '系统欠频率',
|
||||
englabel: 'System underfrequency',
|
||||
field: 'YX0036',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流充电过流',
|
||||
englabel: 'DC charging overcurrent',
|
||||
field: 'YX0037',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流放电过流',
|
||||
englabel: 'DC discharge overcurrent',
|
||||
field: 'YX0038',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '孤岛保护',
|
||||
englabel: 'Island protection',
|
||||
field: 'YX0039',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流主接合闸故障',
|
||||
englabel: 'DC main connection and closing fault',
|
||||
field: 'YX0045',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流主接分闸故障',
|
||||
englabel: 'DC main connection opening fault',
|
||||
field: 'YX0046',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流软启合闸故障',
|
||||
englabel: 'DC soft start and close fault',
|
||||
field: 'YX0047',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流软启分闸故障',
|
||||
englabel: 'DC soft start opening fault',
|
||||
field: 'YX0048',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '直流软起失败',
|
||||
englabel: 'DC soft start failed',
|
||||
field: 'YX0050',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '起机条件不满足',
|
||||
englabel: 'The starting conditions are not met',
|
||||
field: 'YX0053',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '运行中开关故障',
|
||||
englabel: 'Faulty switch during operation',
|
||||
field: 'YX0054',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '逆变启动超时',
|
||||
englabel: 'The inverter startup timed out',
|
||||
field: 'YX0055',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '参数下发设置错误',
|
||||
englabel: 'The parameter delivery setting is incorrect',
|
||||
field: 'YX0056',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '通讯故障',
|
||||
englabel: 'Communication failures',
|
||||
field: 'YX0057',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '温度异常',
|
||||
englabel: 'Abnormal temperature',
|
||||
field: 'YX0058',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '跳机',
|
||||
englabel: 'Jump',
|
||||
label: 'IGBT OCP故障',
|
||||
englabel: '',
|
||||
field: 'YX0059',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: 'DCDC通讯故障',
|
||||
englabel: 'DCDC communication failure',
|
||||
label: '高压侧硬件过压故障',
|
||||
englabel: '',
|
||||
field: 'YX0060',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '高压侧硬件过流故障',
|
||||
englabel: '',
|
||||
field: 'YX0061',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: 'EMS通讯故障',
|
||||
englabel: 'EMS communication failure',
|
||||
label: 'IGBT硬件过流故障',
|
||||
englabel: '',
|
||||
field: 'YX0062',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '急停故障',
|
||||
englabel: 'Emergency stop or melt core failure',
|
||||
label: '24V辅助电源故障',
|
||||
englabel: '',
|
||||
field: 'YX0063',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '母线不平衡异常',
|
||||
englabel: 'The bus bar is unbalanced and abnormal',
|
||||
label: '风扇故障',
|
||||
englabel: '',
|
||||
field: 'YX0064',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '连接故障',
|
||||
englabel: '',
|
||||
field: 'YX0065',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '功率模块过温',
|
||||
englabel: '',
|
||||
field: 'YX0066',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '±15V辅源故障',
|
||||
englabel: '',
|
||||
field: 'YX0067',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '预充电超时故障',
|
||||
englabel: '',
|
||||
field: 'YX0068',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '母线半直压过压',
|
||||
englabel: 'The bus bar is semi-directly pressed and overpressed',
|
||||
label: '低压侧A相软件过流故障',
|
||||
englabel: '',
|
||||
field: 'YX0069',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '启动超时',
|
||||
englabel: 'Startup timed out',
|
||||
label: '低压侧B相软件过流故障',
|
||||
englabel: '',
|
||||
field: 'YX0070',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '低压侧C相软件过流故障',
|
||||
englabel: '',
|
||||
field: 'YX0071',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '低压侧负端软件过流故障',
|
||||
englabel: '',
|
||||
field: 'YX0072',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '模块内部短路故障',
|
||||
englabel: '',
|
||||
field: 'YX0073',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '高压侧预充过压故障',
|
||||
englabel: '',
|
||||
field: 'YX0074',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '高压侧极性反接故障',
|
||||
englabel: '',
|
||||
field: 'YX0075',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '高压侧短路故障',
|
||||
englabel: '',
|
||||
field: 'YX0076',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '高压侧运行过压故障',
|
||||
englabel: '',
|
||||
field: 'YX0077',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '高压侧运行欠压故障',
|
||||
englabel: '',
|
||||
field: 'YX0078',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '高压侧正负母线不平衡故障',
|
||||
englabel: '',
|
||||
field: 'YX0079',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '与主机模式设置不匹配',
|
||||
englabel: '',
|
||||
field: 'YX0080',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '控制板EEROM故障',
|
||||
englabel: '',
|
||||
field: 'YX0081',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '从机CAN通信故障',
|
||||
englabel: '',
|
||||
field: 'YX0082',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '与EMS通信故障',
|
||||
englabel: '',
|
||||
field: 'YX0083',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '绝缘电阻过低故障',
|
||||
englabel: '',
|
||||
field: 'YX0084',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '低压侧欠压故障',
|
||||
englabel: '',
|
||||
field: 'YX0085',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '软件瞬态过流故障',
|
||||
englabel: '',
|
||||
field: 'YX0087',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '低压侧过压故障',
|
||||
englabel: '',
|
||||
field: 'YX0088',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '低压侧过流故障',
|
||||
englabel: '',
|
||||
field: 'YX0089',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '低压侧极性反接故障',
|
||||
englabel: '',
|
||||
field: 'YX0090',
|
||||
value: ''
|
||||
}
|
||||
|
||||
]
|
||||
|
||||
export const pcsLeftTopData = [
|
||||
{
|
||||
label: 'BAT电压',
|
||||
label: '低压侧电压',
|
||||
englabel: 'BAT voltage',
|
||||
field: 'outputPower',
|
||||
field: 'lowV',
|
||||
value: '0',
|
||||
unit: 'V'
|
||||
},
|
||||
{
|
||||
label: 'BAT电流',
|
||||
field: 'reactivePowerPCS',
|
||||
label: '高压侧电压',
|
||||
field: 'highV',
|
||||
englabel: 'BAT current',
|
||||
value: '0',
|
||||
unit: 'A'
|
||||
},
|
||||
{
|
||||
label: 'BUS电压',
|
||||
label: '低压侧电流',
|
||||
englabel: 'BUS voltage',
|
||||
field: 'grid',
|
||||
field: 'lowI',
|
||||
value: '0',
|
||||
unit: 'V'
|
||||
},
|
||||
|
||||
{
|
||||
label: 'BUS电流',
|
||||
englabel: 'BUS current',
|
||||
field: 'volA',
|
||||
value: '0',
|
||||
unit: 'A'
|
||||
}
|
||||
|
||||
]
|
||||
// export const pcsLeftTopData = [
|
||||
// {
|
||||
// label: 'Pac',
|
||||
// field: 'outputPower',
|
||||
// value: '0',
|
||||
// unit: 'kW'
|
||||
// },
|
||||
// {
|
||||
// label: 'Qac',
|
||||
// field: 'reactivePowerPCS',
|
||||
// value: '0',
|
||||
// unit: 'kVar'
|
||||
// },
|
||||
// {
|
||||
// label: 'Freq',
|
||||
// field: 'grid',
|
||||
// value: '0',
|
||||
// unit: 'Hz'
|
||||
// },
|
||||
|
||||
// {
|
||||
// label: 'Uab',
|
||||
// field: 'volA',
|
||||
// value: '0',
|
||||
// unit: 'V'
|
||||
// },
|
||||
// {
|
||||
// label: 'Ubc',
|
||||
// field: 'volB',
|
||||
// value: '0',
|
||||
// unit: 'V'
|
||||
// },
|
||||
// {
|
||||
// label: 'Uca',
|
||||
// field: 'volC',
|
||||
// value: '0',
|
||||
// unit: 'V'
|
||||
// },
|
||||
// {
|
||||
// label: 'Ia',
|
||||
// field: 'currentA',
|
||||
// value: '0',
|
||||
// unit: 'A'
|
||||
// },
|
||||
// {
|
||||
// label: 'Ib',
|
||||
// field: 'currentB',
|
||||
// value: '0',
|
||||
// unit: 'A'
|
||||
// },
|
||||
// {
|
||||
// label: 'Ic',
|
||||
// field: 'currentC',
|
||||
// value: '0',
|
||||
// unit: 'A'
|
||||
// }
|
||||
|
||||
// ]
|
||||
|
||||
// export const pcsLeftBottomData = [
|
||||
// {
|
||||
// label: 'Udc',
|
||||
// field: 'dcPower',
|
||||
// value: '0',
|
||||
// unit: 'kW'
|
||||
// },
|
||||
// {
|
||||
// label: 'Idc',
|
||||
// field: 'dcCurrent',
|
||||
// value: '0',
|
||||
// unit: 'A'
|
||||
// },
|
||||
// {
|
||||
// label: 'Pdc',
|
||||
// field: 'dcInputVol',
|
||||
// value: '0',
|
||||
// unit: 'V'
|
||||
// }
|
||||
|
||||
// ]
|
||||
export const pcsLeftBottomData1 = [
|
||||
{
|
||||
label: '运行功率',
|
||||
label: '有功功率',
|
||||
englabel: 'operating power',
|
||||
field: 'dcPower',
|
||||
field: 'pvActivePower',
|
||||
value: '0',
|
||||
unit: 'kW'
|
||||
},
|
||||
{
|
||||
label: '直流电压',
|
||||
englabel: 'DC voltage',
|
||||
field: 'dcInputVol',
|
||||
value: '0',
|
||||
unit: 'V'
|
||||
},
|
||||
{
|
||||
label: '直流电流',
|
||||
englabel: 'DC current',
|
||||
field: 'dcCurrent',
|
||||
value: '0',
|
||||
unit: 'A'
|
||||
}
|
||||
|
||||
]
|
||||
|
||||
export const pcsLeftBottomData2 = [
|
||||
{
|
||||
label: '直流功率',
|
||||
englabel: 'DC power',
|
||||
field: 'dcPower',
|
||||
value: '0',
|
||||
unit: 'kW'
|
||||
},
|
||||
{
|
||||
label: '直流电压',
|
||||
englabel: 'DC voltage',
|
||||
field: 'dcInputVol',
|
||||
value: '0',
|
||||
unit: 'V'
|
||||
},
|
||||
{
|
||||
label: '直流电流',
|
||||
englabel: 'DC current',
|
||||
field: 'dcCurrent',
|
||||
value: '0',
|
||||
unit: 'A'
|
||||
},
|
||||
{
|
||||
label: 'pcs模块温度',
|
||||
englabel: 'PCS module temperature',
|
||||
field: 'radiatorTemperature',
|
||||
value: '0',
|
||||
unit: '℃'
|
||||
}
|
||||
|
||||
]
|
||||
|
||||
export const pcsCenterDataStatus = [
|
||||
|
||||
@ -78,6 +78,7 @@
|
||||
<el-table-column prop="name" label="电站名称" />
|
||||
<el-table-column prop="ratePower" label="额定功率(kW)" show-overflow-tooltip />
|
||||
<el-table-column prop="capacity" label="额定容量(kWh)" show-overflow-tooltip />
|
||||
<el-table-column prop="pvPower" label="光伏功率(kW)" show-overflow-tooltip />
|
||||
<el-table-column prop="address" label="地址" />
|
||||
<el-table-column prop="cabinNum" label="舱体数量" />
|
||||
<el-table-column prop="gridTime" label="并网时间" show-overflow-tooltip />
|
||||
@ -337,7 +338,6 @@
|
||||
<div v-for="(item, index) in snList" :key="index" class="sn-box">
|
||||
<el-input v-model="item.desc" maxlength="50" placeholder="请输入SN编码" />
|
||||
<i v-if="index === 0" class="el-icon-circle-plus-outline operate-i" @click="addSn" />
|
||||
|
||||
<i v-if="index > 0" class="el-icon-remove-outline operate-i" @click="delSn(item, index)" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
@ -395,7 +395,7 @@
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否接入光伏">
|
||||
<el-select v-model="formModel.inverterFlag" style="width: 100%" placeholder="请选择">
|
||||
<el-select v-model="formModel.inverterFlag" style="width: 100%" placeholder="请选择" @change="selectInverterFlag">
|
||||
<el-option
|
||||
v-for="item in inverterFlagList"
|
||||
:key="item.value"
|
||||
@ -405,6 +405,17 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-show="formModel.inverterFlag === 1" :span="12">
|
||||
<el-form-item label="光伏功率(kWh)" prop="pvPower">
|
||||
<el-input-number
|
||||
v-model="formModel.pvPower"
|
||||
:controls="false"
|
||||
:min="null"
|
||||
style="width: 100%"
|
||||
placeholder="请输入光伏功率"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="用电客户" prop="customerType">
|
||||
<el-select
|
||||
@ -451,7 +462,6 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="卡号" prop="iccId">
|
||||
<el-select
|
||||
@ -659,6 +669,7 @@ export default {
|
||||
cupboardType: null,
|
||||
planVersion: null,
|
||||
inverterFlag: 0,
|
||||
pvPower: '',
|
||||
electricityType: null,
|
||||
customerType: null,
|
||||
voltageLevel: null,
|
||||
@ -905,6 +916,7 @@ export default {
|
||||
isDailyCount: 0,
|
||||
topologyType: 1,
|
||||
inverterFlag: 0,
|
||||
pvPower: '',
|
||||
electricityType: null,
|
||||
customerType: null,
|
||||
voltageLevel: null,
|
||||
@ -982,6 +994,11 @@ export default {
|
||||
if (this.formModel.flowMonitorId) {
|
||||
this.isCanSelectPackage = false
|
||||
}
|
||||
if (this.formRules.inverterFlag === 1) {
|
||||
this.formRules['pvPower'] = [{ required: true, message: '请输入光伏额定功率', trigger: 'blur' }]
|
||||
} else {
|
||||
delete this.formRules.pvPower
|
||||
}
|
||||
this.getEditAddressResolution()
|
||||
this.formLoading = false
|
||||
},
|
||||
@ -1001,6 +1018,13 @@ export default {
|
||||
)
|
||||
this.formModel.typeName = this.stationTypeList[index].label
|
||||
},
|
||||
selectInverterFlag(e) {
|
||||
if (e === 0) {
|
||||
delete this.formRules.pvPower
|
||||
} else {
|
||||
this.formRules['pvPower'] = [{ required: true, message: '请输入光伏额定功率', trigger: 'blur' }]
|
||||
}
|
||||
},
|
||||
// 保存
|
||||
handleTosubmit: function() {
|
||||
const fileList = []
|
||||
@ -1013,6 +1037,7 @@ export default {
|
||||
})
|
||||
this.formModel.pictureIds = fileList
|
||||
this.formModel.logoPictureId = fileListLogo[0]
|
||||
this.formModel.pvPower = this.formModel.inverterFlag === 0 ? '' : this.formModel.pvPower
|
||||
const snDetail = []
|
||||
let flag = 0
|
||||
this.snList.forEach((sn, index) => {
|
||||
|
||||
@ -14,9 +14,9 @@
|
||||
v-loading="load_data_org"
|
||||
class="filter-tree"
|
||||
node-key="id"
|
||||
element-loading-text="正在加载组织结构数"
|
||||
element-loading-text="正在加载组织结构树"
|
||||
:data="data2"
|
||||
highlight-current
|
||||
highlight-currentzhge
|
||||
:default-expanded-keys="expandedKeys"
|
||||
:props="defaultProps"
|
||||
:expand-on-click-node="true"
|
||||
|
||||
Reference in New Issue
Block a user