光伏功能逻辑
This commit is contained in:
@ -300,3 +300,12 @@ export function SetDataConfig(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取电站光伏能量/收益趋势
|
||||||
|
export function getPvData(data) {
|
||||||
|
return request({
|
||||||
|
url: 'business/openStation/getPvData',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@ -8,6 +8,13 @@ export function GetTotal(data) {
|
|||||||
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',
|
year: 'year',
|
||||||
powerGenerationCapacity: 'power generation capacity',
|
powerGenerationCapacity: 'power generation capacity',
|
||||||
powerGeneration: 'power generation',
|
powerGeneration: 'power generation',
|
||||||
revenueTrend: 'Revenue Trend'
|
earning: 'earning',
|
||||||
|
revenueTrend: 'Revenue Trend',
|
||||||
|
pvIncomeUnit: 'EUR'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -222,6 +222,8 @@ export default {
|
|||||||
year: '年',
|
year: '年',
|
||||||
powerGenerationCapacity: '发电功率',
|
powerGenerationCapacity: '发电功率',
|
||||||
powerGeneration: '发电量',
|
powerGeneration: '发电量',
|
||||||
revenueTrend: '收益趋势'
|
earning: '收益',
|
||||||
|
revenueTrend: '收益趋势',
|
||||||
|
pvIncomeUnit: '元'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -188,7 +188,8 @@ export default {
|
|||||||
monthlyPVpowerGeneration: 'Monthly PV power generation',
|
monthlyPVpowerGeneration: 'Monthly PV power generation',
|
||||||
monthlyInverterPowerGeneration: 'Monthly inverter power generation',
|
monthlyInverterPowerGeneration: 'Monthly inverter power generation',
|
||||||
monthlyIncome: 'Monthly income',
|
monthlyIncome: 'Monthly income',
|
||||||
powerGeneration: 'Power Generation'
|
powerGeneration: 'Power Generation',
|
||||||
|
ratedPower: 'Rated Power'
|
||||||
},
|
},
|
||||||
region: {
|
region: {
|
||||||
regionName: 'Region Name',
|
regionName: 'Region Name',
|
||||||
|
|||||||
@ -186,7 +186,8 @@ export default {
|
|||||||
monthlyInverterPowerGeneration: '本月逆变器发电量',
|
monthlyInverterPowerGeneration: '本月逆变器发电量',
|
||||||
monthlyIncome: '本月收益',
|
monthlyIncome: '本月收益',
|
||||||
gridConnectedDuration: '并网时长',
|
gridConnectedDuration: '并网时长',
|
||||||
powerGeneration: '发电量'
|
powerGeneration: '发电量',
|
||||||
|
ratedPower: '额定功率'
|
||||||
},
|
},
|
||||||
region: {
|
region: {
|
||||||
regionName: '区域名称',
|
regionName: '区域名称',
|
||||||
|
|||||||
@ -236,7 +236,7 @@ export default {
|
|||||||
},
|
},
|
||||||
user: {
|
user: {
|
||||||
keyWordTip: '请输入关键字进行过滤',
|
keyWordTip: '请输入关键字进行过滤',
|
||||||
loadOrg: '正在加载组织结构数',
|
loadOrg: '正在加载组织结构树',
|
||||||
userInfo: '人员信息',
|
userInfo: '人员信息',
|
||||||
loginName: '登录名',
|
loginName: '登录名',
|
||||||
name: '姓名',
|
name: '姓名',
|
||||||
@ -293,7 +293,7 @@ export default {
|
|||||||
},
|
},
|
||||||
org: {
|
org: {
|
||||||
keyWordTip: '输入关键字进行过滤',
|
keyWordTip: '输入关键字进行过滤',
|
||||||
loadingOrg: '正在加载组织结构数',
|
loadingOrg: '正在加载组织结构树',
|
||||||
org: '组织机构管理',
|
org: '组织机构管理',
|
||||||
addOrg: '新增组织',
|
addOrg: '新增组织',
|
||||||
editOrg: '编辑组织',
|
editOrg: '编辑组织',
|
||||||
|
|||||||
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
// import * as echarts from 'echarts'
|
// import * as echarts from 'echarts'
|
||||||
import { GetPCSElecData } from '@/api/home-page/index'
|
import { getPvData } from '@/api/home-page/index'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Index',
|
name: 'Index',
|
||||||
@ -62,29 +62,6 @@ export default {
|
|||||||
created() {},
|
created() {},
|
||||||
|
|
||||||
mounted() {
|
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: {
|
methods: {
|
||||||
selectTime(type) {
|
selectTime(type) {
|
||||||
@ -102,9 +79,8 @@ export default {
|
|||||||
type: this.currentType
|
type: this.currentType
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await GetPCSElecData(params)
|
const pvres = await getPvData(params)
|
||||||
console.log(res)
|
this.initCharts(pvres.data, 1)
|
||||||
// this.initCharts(res.data, 1)
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// console.log(error);
|
// console.log(error);
|
||||||
} finally {
|
} finally {
|
||||||
@ -114,13 +90,10 @@ export default {
|
|||||||
initCharts(val, type) {
|
initCharts(val, type) {
|
||||||
const x_data = []
|
const x_data = []
|
||||||
const charge_data = []
|
const charge_data = []
|
||||||
// const discharge_data = []
|
|
||||||
// let benefit_data = [0, 0, 0, 0, 0, 0, 0]
|
|
||||||
if (val && val.length > 0) {
|
if (val && val.length > 0) {
|
||||||
val.forEach((item) => {
|
val.forEach((item) => {
|
||||||
x_data.push(item.date)
|
x_data.push(item.date)
|
||||||
charge_data.push(item.chargeElec)
|
charge_data.push(item.powerGenerate)
|
||||||
// discharge_data.push(item.dischargeElec)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
this.powerOptions = {
|
this.powerOptions = {
|
||||||
|
|||||||
@ -4,9 +4,7 @@
|
|||||||
:title="$t('dashboard.revenueTrend')"
|
:title="$t('dashboard.revenueTrend')"
|
||||||
@handleSetting="handleSetting"
|
@handleSetting="handleSetting"
|
||||||
>
|
>
|
||||||
<!-- <ItemBox :title="$t('dashboard.revenueTrend')"
|
<!-- <ItemBox :title="$t('dashboard.revenueTrend')" :show-curve-setting="true" @handleSetting="handleSetting"> -->
|
||||||
:show-curve-setting="true"
|
|
||||||
@handleSetting="handleSetting"> -->
|
|
||||||
<div slot="header">
|
<div slot="header">
|
||||||
<div class="header-right-box">
|
<div class="header-right-box">
|
||||||
<div
|
<div
|
||||||
@ -33,7 +31,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { GetDynamicRealtimeCurve } from '@/api/home-page/index'
|
import { getPvData } from '@/api/home-page/index'
|
||||||
import * as echarts from 'echarts'
|
import * as echarts from 'echarts'
|
||||||
// import { chartYIndex } from '@/utils/index'
|
// import { chartYIndex } from '@/utils/index'
|
||||||
export default {
|
export default {
|
||||||
@ -84,14 +82,6 @@ export default {
|
|||||||
watch: {},
|
watch: {},
|
||||||
created() {},
|
created() {},
|
||||||
mounted() {
|
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: {
|
methods: {
|
||||||
selectTime(type) {
|
selectTime(type) {
|
||||||
@ -105,13 +95,12 @@ export default {
|
|||||||
this.loading = true
|
this.loading = true
|
||||||
const params = {
|
const params = {
|
||||||
stationId: this.stationId,
|
stationId: this.stationId,
|
||||||
pageLocation: 'runChart',
|
type: this.currentType
|
||||||
permissionId: this.permissionId
|
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await GetDynamicRealtimeCurve(params)
|
const res = await getPvData(params)
|
||||||
if (res.data) {
|
if (res.data) {
|
||||||
// this.initCharts(res.data)
|
this.initCharts(res.data, 1)
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// console.log(error)
|
// console.log(error)
|
||||||
@ -124,13 +113,10 @@ export default {
|
|||||||
initCharts(val, type) {
|
initCharts(val, type) {
|
||||||
const x_data = []
|
const x_data = []
|
||||||
const charge_data = []
|
const charge_data = []
|
||||||
// const discharge_data = []
|
|
||||||
// let benefit_data = [0, 0, 0, 0, 0, 0, 0]
|
|
||||||
if (val && val.length > 0) {
|
if (val && val.length > 0) {
|
||||||
val.forEach((item) => {
|
val.forEach((item) => {
|
||||||
x_data.push(item.date)
|
x_data.push(item.date)
|
||||||
charge_data.push(item.chargeElec)
|
charge_data.push(item.profit)
|
||||||
// discharge_data.push(item.dischargeElec)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
this.runOptions = {
|
this.runOptions = {
|
||||||
@ -196,7 +182,7 @@ export default {
|
|||||||
yAxis: [
|
yAxis: [
|
||||||
{
|
{
|
||||||
type: 'value',
|
type: 'value',
|
||||||
name: this.$t('glance.wRMB'),
|
name: this.$t('dashboard.pvIncomeUnit'),
|
||||||
nameTextStyle: {
|
nameTextStyle: {
|
||||||
color: ' rgba(255, 255, 255, 0.5)'
|
color: ' rgba(255, 255, 255, 0.5)'
|
||||||
},
|
},
|
||||||
@ -226,7 +212,7 @@ export default {
|
|||||||
],
|
],
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
name: `${this.$t('state.powerGeneration')}`,
|
name: `${this.$t('dashboard.earning')}`,
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
data: charge_data,
|
data: charge_data,
|
||||||
barWidth: 14, // 柱状图的宽度
|
barWidth: 14, // 柱状图的宽度
|
||||||
|
|||||||
@ -1,148 +1,195 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="top-center-wrapper">
|
<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">
|
<div v-loading="loading" class="charts-box">
|
||||||
<Chart
|
<Chart :options="runOptions" :class-name="'chart'" />
|
||||||
ref="chart"
|
|
||||||
:key="key"
|
|
||||||
:options="powerOptions"
|
|
||||||
:class-name="'chart'"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</ItemBox>
|
</ItemBox>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// import * as echarts from 'echarts'
|
import { GetDynamicRealtimeCurve } from '@/api/home-page/index'
|
||||||
import { GetPCSElecData } from '@/api/home-page/index'
|
import * as echarts from 'echarts'
|
||||||
|
import { chartYIndex } from '@/utils/index'
|
||||||
export default {
|
export default {
|
||||||
name: 'Index',
|
name: 'Index',
|
||||||
props: {
|
props: {
|
||||||
stationId: {
|
stationId: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: undefined
|
default: 0
|
||||||
|
},
|
||||||
|
permissionId: {
|
||||||
|
type: Number,
|
||||||
|
default: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
powerOptions: undefined,
|
runOptions: undefined,
|
||||||
currentType: 'day',
|
serviceList: [],
|
||||||
color: ['#00A0E9'],
|
nameArr: [],
|
||||||
loading: false,
|
color: [],
|
||||||
key: 0
|
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() {},
|
created() {},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
const timeData = []
|
// this.initCharts()
|
||||||
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: {
|
methods: {
|
||||||
selectTime(type) {
|
handleSetting() {
|
||||||
this.currentType = type
|
this.$emit('handleSetting')
|
||||||
this.getData()
|
|
||||||
},
|
},
|
||||||
getData() {
|
async getData() {
|
||||||
this.getElecData()
|
|
||||||
// this.getIncomeData()
|
|
||||||
},
|
|
||||||
async getElecData() {
|
|
||||||
this.loading = true
|
this.loading = true
|
||||||
const params = {
|
const params = {
|
||||||
stationId: this.stationId,
|
stationId: this.stationId,
|
||||||
type: this.currentType
|
pageLocation: 'pvrunChart',
|
||||||
|
permissionId: this.permissionId
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await GetPCSElecData(params)
|
const res = await GetDynamicRealtimeCurve(params)
|
||||||
console.log(res)
|
if (res.data) {
|
||||||
// this.initCharts(res.data, 1)
|
this.initCharts(res.data)
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// console.log(error);
|
// console.log(error)
|
||||||
} finally {
|
} finally {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 新增代码
|
initCharts(val) {
|
||||||
|
let x_data = []
|
||||||
initCharts(val, type) {
|
const valueArr = []
|
||||||
const x_data = []
|
this.nameArr = []
|
||||||
const charge_data = []
|
|
||||||
// const discharge_data = []
|
|
||||||
// let benefit_data = [0, 0, 0, 0, 0, 0, 0]
|
|
||||||
if (val && val.length > 0) {
|
if (val && val.length > 0) {
|
||||||
val.forEach((item) => {
|
val.forEach((item, index) => {
|
||||||
x_data.push(item.date)
|
valueArr.push(item.list)
|
||||||
charge_data.push(item.chargeElec)
|
this.nameArr.push(item.name)
|
||||||
// discharge_data.push(item.dischargeElec)
|
if (item.list.length) {
|
||||||
|
x_data = []
|
||||||
|
item.list.forEach((el) => {
|
||||||
|
x_data.push(el.date)
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
const valueArr2 = []
|
||||||
this.powerOptions = {
|
valueArr.forEach((item, index) => {
|
||||||
grid: {
|
const arr = []
|
||||||
top: '25%',
|
item.forEach((item2, index2) => {
|
||||||
left: '5%',
|
arr.push(item2.digital)
|
||||||
right: '5%',
|
valueArr2[index] = arr
|
||||||
bottom: '5%',
|
})
|
||||||
containLabel: true
|
})
|
||||||
},
|
this.serviceList = []
|
||||||
legend: {},
|
valueArr2.forEach((item, index) => {
|
||||||
tooltip: {
|
this.serviceList.push({
|
||||||
trigger: 'axis',
|
data: item,
|
||||||
backgroundColor: 'rgba(0,0,0,0,)',
|
type: 'line',
|
||||||
borderColor: 'rgba(0,0,0,0,);',
|
name: this.nameArr[index],
|
||||||
borderWidth: 0,
|
showSymbol: false,
|
||||||
textStyle: {
|
yAxisIndex: chartYIndex(val[index]),
|
||||||
width: 160,
|
color: this.color[index],
|
||||||
height: 250,
|
lineStyle: {
|
||||||
lineHeight: 24,
|
color: this.color[index]
|
||||||
color: '#ffffff',
|
},
|
||||||
fontSize: '14',
|
areaStyle: {
|
||||||
fontFamily: 'SourceHanSansCN-Normal'
|
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, this.color2[index])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
this.runOptions = {
|
||||||
|
grid: {
|
||||||
|
top: '25%',
|
||||||
|
left: '6%',
|
||||||
|
right: '3%',
|
||||||
|
bottom: '5%',
|
||||||
|
containLabel: true
|
||||||
},
|
},
|
||||||
formatter: (params) => {
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
backgroundColor: 'rgba(0,0,0,0,)',
|
||||||
|
borderColor: 'rgba(0,0,0,0,);',
|
||||||
|
borderWidth: 0,
|
||||||
|
appendToBody: true,
|
||||||
|
textStyle: {
|
||||||
|
width: 160,
|
||||||
|
height: 250,
|
||||||
|
lineHeight: 24,
|
||||||
|
color: '#ffffff',
|
||||||
|
fontSize: '14',
|
||||||
|
fontFamily: 'SourceHanSansCN-Normal'
|
||||||
|
},
|
||||||
|
formatter: params => {
|
||||||
// 获取xAxis data中的数据
|
// 获取xAxis data中的数据
|
||||||
let dataStr = `<div><p style="font-weight:bold;margin:0 8px 15px;">${params[0].name}</p></div>`
|
let dataStr = `<div><p style="font-weight:bold;margin:0 8px 15px;z-index: 9999999;">${params[0].name}</p></div>`
|
||||||
params.forEach((item) => {
|
params.forEach(item => {
|
||||||
dataStr += `<div>
|
dataStr += `<div>
|
||||||
<div style="margin: 0 8px;">
|
<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>${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>
|
||||||
</div>`
|
</div>`
|
||||||
})
|
})
|
||||||
const div = `<div style='border: 1px solid ;
|
const div = `<div style='border: 1px solid ;
|
||||||
border-image: linear-gradient(130deg, #FFFFFF 0%, rgba(201,255,243,0.00) 22%, rgba(201,255,243,0.00) 75%, rgba(201,255,243,0.00) 80%, #FFFFFF 99%, #FFFFFF 99%) 1;
|
border-image: linear-gradient(130deg, #FFFFFF 0%, rgba(201,255,243,0.00) 22%, rgba(201,255,243,0.00) 75%, rgba(201,255,243,0.00) 80%, #FFFFFF 99%, #FFFFFF 99%) 1;
|
||||||
box-shadow: inset 0px 2px 16px 0px rgba(0, 148, 255, 0.4);' >${dataStr}</div>`
|
box-shadow: inset 0px 2px 16px 0px rgba(0, 148, 255, 0.4);' >${dataStr}</div>`
|
||||||
return div
|
return div
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
xAxis: [
|
|
||||||
{
|
legend: {
|
||||||
type: 'category',
|
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,
|
data: x_data,
|
||||||
axisLine: {
|
axisLine: {
|
||||||
show: true,
|
show: true,
|
||||||
@ -158,12 +205,10 @@ export default {
|
|||||||
axisTick: {
|
axisTick: {
|
||||||
show: false
|
show: false
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
],
|
yAxis: [{
|
||||||
yAxis: [
|
name: this.$t('dashboard.power') + '(kW)',
|
||||||
{
|
|
||||||
type: 'value',
|
type: 'value',
|
||||||
name: `kWh`,
|
|
||||||
nameTextStyle: {
|
nameTextStyle: {
|
||||||
color: ' rgba(255, 255, 255, 0.5)'
|
color: ' rgba(255, 255, 255, 0.5)'
|
||||||
},
|
},
|
||||||
@ -177,31 +222,56 @@ export default {
|
|||||||
show: true,
|
show: true,
|
||||||
color: '#CEEBFF'
|
color: '#CEEBFF'
|
||||||
},
|
},
|
||||||
|
|
||||||
axisTick: {
|
axisTick: {
|
||||||
show: false
|
show: false
|
||||||
},
|
},
|
||||||
splitLine: {
|
min: function(value) {
|
||||||
show: true, // 强制显示分割线(默认已开启,确保不被隐藏)
|
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))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'SOC(%)',
|
||||||
|
type: 'value',
|
||||||
|
max: 100,
|
||||||
|
min: -100,
|
||||||
|
ming: 0,
|
||||||
|
nameTextStyle: {
|
||||||
|
color: ' rgba(255, 255, 255, 0.5)'
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
show: false,
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
type: 'dashed', // 线型设为虚线
|
color: '#90e9d8'
|
||||||
color: 'rgba(255,255,255,0.2)', // 虚线颜色(可自定义,如 #999、rgba(0,0,0,0.1))
|
|
||||||
width: 1, // 虚线宽度
|
|
||||||
dashOffset: 5 // 虚线偏移量(可选,调整虚线起始位置)
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
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'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
}
|
||||||
series: [
|
|
||||||
{
|
|
||||||
name: `${this.$t('dashboard.powerGenerationCapacity')}`,
|
|
||||||
type: 'line',
|
|
||||||
smooth: true,
|
|
||||||
symbol: 'none',
|
|
||||||
data: charge_data,
|
|
||||||
barWidth: 14, // 柱状图的宽度
|
|
||||||
color: '#00C8FF'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -241,4 +311,5 @@ export default {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -120,33 +120,38 @@ export default {
|
|||||||
}],
|
}],
|
||||||
overflowData: [{
|
overflowData: [{
|
||||||
name: this.$t('dashboard.currentPower'),
|
name: this.$t('dashboard.currentPower'),
|
||||||
id: 'currentPower',
|
id: 'pvCurrentPower',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kW'
|
unit: 'kW'
|
||||||
}, {
|
}, {
|
||||||
name: this.$t('dashboard.todayElectricityGeneration'),
|
name: this.$t('dashboard.todayElectricityGeneration'),
|
||||||
id: 'todayElecGeneration',
|
id: 'dailyReleaseElec',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kWh'
|
unit: 'kWh'
|
||||||
|
}, {
|
||||||
|
name: this.$t('dashboard.todayEarning'),
|
||||||
|
id: 'todayIncone',
|
||||||
|
picture: disImg,
|
||||||
|
value: 0,
|
||||||
|
unit: this.$t('dashboard.pvIncomeUnit')
|
||||||
}, {
|
}, {
|
||||||
name: this.$t('dashboard.totalPowerGeneration'),
|
name: this.$t('dashboard.totalPowerGeneration'),
|
||||||
id: 'totalPowerGeneration',
|
id: 'totalReleaseElec',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kWh'
|
unit: 'kWh'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: this.$t('dashboard.totalRevenue'),
|
name: this.$t('dashboard.totalRevenue'),
|
||||||
id: 'totalRevenue',
|
id: 'totalIncome',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kWh',
|
unit: this.$t('dashboard.pvIncomeUnit')
|
||||||
click: true
|
|
||||||
}, {
|
}, {
|
||||||
name: this.$t('dashboard.ratedPowerofInverter'),
|
name: this.$t('dashboard.ratedPowerofInverter'),
|
||||||
id: 'ratedPowerofInverter',
|
id: 'pvPower',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kW'
|
unit: 'kW'
|
||||||
@ -221,55 +226,42 @@ export default {
|
|||||||
value: 0
|
value: 0
|
||||||
}]
|
}]
|
||||||
this.overflowData = [{
|
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'),
|
name: this.$t('dashboard.currentPower'),
|
||||||
id: 'currentPower',
|
id: 'pvCurrentPower',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kW'
|
unit: 'kW'
|
||||||
}, {
|
}, {
|
||||||
name: this.$t('dashboard.totalCharge'),
|
name: this.$t('dashboard.todayElectricityGeneration'),
|
||||||
id: 'totalChargeElec',
|
id: 'dailyReleaseElec',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kWh'
|
unit: 'kWh'
|
||||||
}, {
|
}, {
|
||||||
name: this.stationId === 753 ? this.$t('dashboard.capacityIncrease') : this.$t('dashboard.totalDischarge'),
|
name: this.$t('dashboard.todayEarning'),
|
||||||
id: 'totalDischargeElec',
|
id: 'todayIncone',
|
||||||
|
picture: disImg,
|
||||||
|
value: 0,
|
||||||
|
unit: this.$t('dashboard.pvIncomeUnit')
|
||||||
|
}, {
|
||||||
|
name: this.$t('dashboard.totalPowerGeneration'),
|
||||||
|
id: 'totalReleaseElec',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kWh'
|
unit: 'kWh'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: this.$t('dashboard.dailyCharge'),
|
name: this.$t('dashboard.totalRevenue'),
|
||||||
id: 'dailyChargeElec',
|
id: 'totalIncome',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kWh',
|
unit: this.$t('dashboard.pvIncomeUnit')
|
||||||
click: true
|
|
||||||
}, {
|
}, {
|
||||||
name: this.stationId === 753 ? this.$t('dashboard.DailycapacityIncrease') : this.$t('dashboard.dailyDischarge'),
|
name: this.$t('dashboard.ratedPowerofInverter'),
|
||||||
id: 'dailyDischargeElec',
|
id: 'pvPower',
|
||||||
picture: disImg,
|
picture: disImg,
|
||||||
value: 0,
|
value: 0,
|
||||||
unit: 'kWh'
|
unit: 'kW'
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
deep: true
|
deep: true
|
||||||
@ -331,33 +323,49 @@ export default {
|
|||||||
if (data[item.id]) {
|
if (data[item.id]) {
|
||||||
item.value = data[item.id]
|
item.value = data[item.id]
|
||||||
}
|
}
|
||||||
if (item.id === 'systemEfficiency') {
|
if (item.id === 'pvCurrentPower' && item.value >= 1E4) {
|
||||||
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.unit = 'MW'
|
||||||
item.value = (Number(item.value) / 1E3).toFixed(2) + ''
|
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) {
|
} catch (error) {
|
||||||
// console.log(error);
|
// console.log(error);
|
||||||
|
|||||||
@ -87,7 +87,6 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col v-if="workInfo.value === 1" :span="24">
|
<el-col v-if="workInfo.value === 1" :span="24">
|
||||||
<el-form-item :label="$t('dashboard.remoteControlActive') + (kW)" prop="p">
|
<el-form-item :label="$t('dashboard.remoteControlActive') + (kW)" prop="p">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
|||||||
@ -3,13 +3,13 @@
|
|||||||
<el-row class="top-box" :gutter="10">
|
<el-row class="top-box" :gutter="10">
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||||
<div class="component-wrapper">
|
<div class="component-wrapper">
|
||||||
|
<!-- @handleSetting="handlePointSetting('stationData')" -->
|
||||||
<component
|
<component
|
||||||
:is="topLeftComponent"
|
:is="topLeftComponent"
|
||||||
ref="topLeft"
|
ref="topLeft"
|
||||||
:permission-id="permissionId"
|
:permission-id="permissionId"
|
||||||
:station-id="stationId"
|
:station-id="stationId"
|
||||||
:daily-time="timeForm"
|
:daily-time="timeForm"
|
||||||
@handleSetting="handlePointSetting('stationData')"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -28,6 +28,7 @@
|
|||||||
:station-id="stationId"
|
:station-id="stationId"
|
||||||
:station-type="stationType"
|
:station-type="stationType"
|
||||||
@screenFull="screenFull"
|
@screenFull="screenFull"
|
||||||
|
@handleSetting="handleSetting('pvrunChart')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -69,13 +70,13 @@
|
|||||||
<el-row class="bottom-box" :gutter="10">
|
<el-row class="bottom-box" :gutter="10">
|
||||||
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
||||||
<div class="component-bottom">
|
<div class="component-bottom">
|
||||||
<!-- <div class="component-bottom" :style="{ height: bottomHeight }"> -->
|
<!-- <div class="component-bottom" :style="{ height: bottomHeight }">
|
||||||
|
下方component组件的 @handleSetting="handlePointSetting('barLeftBottom')" -->
|
||||||
<component
|
<component
|
||||||
:is="bottomLeftComponent"
|
:is="bottomLeftComponent"
|
||||||
ref="bottomLeft"
|
ref="bottomLeft"
|
||||||
:station-id="stationId"
|
:station-id="stationId"
|
||||||
:daily-time="timeForm"
|
:daily-time="timeForm"
|
||||||
@handleSetting="handlePointSetting('barLeftBottom')"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -91,7 +92,6 @@
|
|||||||
ref="bottomRight"
|
ref="bottomRight"
|
||||||
:permission-id="permissionId"
|
:permission-id="permissionId"
|
||||||
:station-id="stationId"
|
:station-id="stationId"
|
||||||
@handleSetting="handleSetting('runChart')"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -203,7 +203,7 @@ export default {
|
|||||||
show_dispostion: false,
|
show_dispostion: false,
|
||||||
show_point_dispostion: false,
|
show_point_dispostion: false,
|
||||||
pageLocation: null,
|
pageLocation: null,
|
||||||
chartLocation: 'runChart',
|
chartLocation: 'pvrunChart',
|
||||||
permissionId: null
|
permissionId: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -3,7 +3,6 @@
|
|||||||
<ItemBox :title="$t('dashboard.runCurve')">
|
<ItemBox :title="$t('dashboard.runCurve')">
|
||||||
<div v-loading="loading" class="charts-box">
|
<div v-loading="loading" class="charts-box">
|
||||||
<Chart :options="runOptions" :class-name="'chart'" />
|
<Chart :options="runOptions" :class-name="'chart'" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</ItemBox>
|
</ItemBox>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -9,9 +9,8 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import item from './item-warp.vue'
|
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 dayChargeIcon from '../../../assets/new-screen/dayCharge-icon.png'
|
||||||
// import dayDischargeIcon from '../../../assets/new-screen/dayDischarge-icon.png'
|
|
||||||
export default {
|
export default {
|
||||||
components: { item },
|
components: { item },
|
||||||
data() {
|
data() {
|
||||||
@ -31,7 +30,7 @@ export default {
|
|||||||
async getData(deptId) {
|
async getData(deptId) {
|
||||||
try {
|
try {
|
||||||
this.Loading = true
|
this.Loading = true
|
||||||
const { data } = await GetChargeDailyChart({
|
const { data } = await GetPvRelease({
|
||||||
deptId: deptId
|
deptId: deptId
|
||||||
})
|
})
|
||||||
this.initChart(data)
|
this.initChart(data)
|
||||||
|
|||||||
@ -37,7 +37,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import item from './item-warp.vue'
|
import item from './item-warp.vue'
|
||||||
import screenItemBg from '@/assets/new-screen/screen-item-bg.png'
|
import screenItemBg from '@/assets/new-screen/screen-item-bg.png'
|
||||||
import { GetEnergySaving } from '@/api/screen/zzScreen'
|
import { GetPvEnergySaving } from '@/api/screen/zzPvScreen'
|
||||||
export default {
|
export default {
|
||||||
components: { item },
|
components: { item },
|
||||||
data() {
|
data() {
|
||||||
@ -61,7 +61,7 @@ export default {
|
|||||||
async getData(deptId) {
|
async getData(deptId) {
|
||||||
try {
|
try {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
const { data } = await GetEnergySaving({
|
const { data } = await GetPvEnergySaving({
|
||||||
deptId: deptId
|
deptId: deptId
|
||||||
})
|
})
|
||||||
this.info = data
|
this.info = data
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import item from './item-warp.vue'
|
import item from './item-warp.vue'
|
||||||
import { GetRegionalDistribution } from '@/api/screen/zzScreen'
|
import { GetPvRegionalDistribution } from '@/api/screen/zzPvScreen'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { item },
|
components: { item },
|
||||||
@ -27,7 +27,7 @@ export default {
|
|||||||
async getData(deptId) {
|
async getData(deptId) {
|
||||||
try {
|
try {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
const res = await GetRegionalDistribution({
|
const res = await GetPvRegionalDistribution({
|
||||||
deptId: deptId
|
deptId: deptId
|
||||||
})
|
})
|
||||||
this.initChart(res.data)
|
this.initChart(res.data)
|
||||||
|
|||||||
@ -25,56 +25,29 @@
|
|||||||
<el-tooltip class="item" effect="dark" :content="$t('screen.dailyPowerGeneration')" placement="top">
|
<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>
|
<div class="title" style="min-width:170px;max-width:170px;">{{ $t('screen.dailyPowerGeneration') }}</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-tooltip class="item" effect="dark" :content="info.dayCharge |kwhFormat" placement="top">
|
<el-tooltip class="item" effect="dark" :content="info.dailyReleaseElec |kwhFormat" placement="top">
|
||||||
<div class="value" style="min-width:170px;max-width:170px;">{{ info.dayCharge |kwhFormat }}</div>
|
<div class="value" style="min-width:170px;max-width:170px;">{{ info.dailyReleaseElec |kwhFormat }}</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<div class="unit">{{ info.dayCharge |kwhUnitFormat }}</div>
|
<div class="unit">{{ info.dailyReleaseElec |kwhUnitFormat }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="value-box" style="width:100%">
|
<div class="value-box" style="width:100%">
|
||||||
<el-tooltip class="item" effect="dark" :content="$t('screen.yearlyPowerGeneration')" placement="top">
|
<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>
|
<div class="title" style="min-width:170px;max-width:170px;">{{ $t('screen.yearlyPowerGeneration') }}</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-tooltip class="item" effect="dark" :content="info.dayDischarge |kwhFormat" placement="top">
|
<el-tooltip class="item" effect="dark" :content="info.yearReleaseElec |kwhFormat" placement="top">
|
||||||
<div class="value" style="min-width:170px;max-width:170px;">{{ info.dayDischarge |kwhFormat }}</div>
|
<div class="value" style="min-width:170px;max-width:170px;">{{ info.yearReleaseElec |kwhFormat }}</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<div class="unit">{{ info.dayDischarge |kwhUnitFormat }}</div>
|
<div class="unit">{{ info.yearReleaseElec |kwhUnitFormat }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="value-box" style="width:100%">
|
<div class="value-box" style="width:100%">
|
||||||
<el-tooltip class="item" effect="dark" :content="$t('screen.cumulativePowerGeneration')" placement="top">
|
<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>
|
<div class="title" style="min-width:170px;max-width:170px;">{{ $t('screen.cumulativePowerGeneration') }}</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-tooltip class="item" effect="dark" :content="info.yearCharge |kwhFormat" placement="top">
|
<el-tooltip class="item" effect="dark" :content="info.totalReleaseElec |kwhFormat" placement="top">
|
||||||
<div class="value" style="min-width:170px;max-width:170px;">{{ info.yearCharge |kwhFormat }}</div>
|
<div class="value" style="min-width:170px;max-width:170px;">{{ info.totalReleaseElec |kwhFormat }}</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<div class="unit">{{ info.yearCharge |kwhUnitFormat }}</div>
|
<div class="unit">{{ info.totalReleaseElec |kwhUnitFormat }}</div>
|
||||||
</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>
|
</div>
|
||||||
</item>
|
</item>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -18,7 +18,9 @@
|
|||||||
import worldJson from 'echarts/map/json/world.json'
|
import worldJson from 'echarts/map/json/world.json'
|
||||||
// import { chinaMapOutline } from '@/assets/mapJson/chinaMapOut.js'
|
// import { chinaMapOutline } from '@/assets/mapJson/chinaMapOut.js'
|
||||||
import blue from '../../../assets/new-screen/map-blue.png'
|
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 {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -51,7 +53,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async getStationNum(deptId) {
|
async getStationNum(deptId) {
|
||||||
const { data } = await GetRegionalDistribution({
|
const { data } = await GetPvRegionalDistribution({
|
||||||
deptId: deptId
|
deptId: deptId
|
||||||
})
|
})
|
||||||
this.mapData = data
|
this.mapData = data
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SwiperTable from './SwiperTable.vue'
|
import SwiperTable from './SwiperTable.vue'
|
||||||
import { GetEfficiencyDate } from '@/api/screen/zzScreen'
|
import { GetPvElecList } from '@/api/screen/zzPvScreen'
|
||||||
import item from './item-warp.vue'
|
import item from './item-warp.vue'
|
||||||
export default {
|
export default {
|
||||||
components: { item, SwiperTable },
|
components: { item, SwiperTable },
|
||||||
@ -44,7 +44,7 @@ export default {
|
|||||||
async getData(deptId) {
|
async getData(deptId) {
|
||||||
try {
|
try {
|
||||||
this.tableLoading = true
|
this.tableLoading = true
|
||||||
const res = await GetEfficiencyDate({
|
const res = await GetPvElecList({
|
||||||
deptId: deptId
|
deptId: deptId
|
||||||
})
|
})
|
||||||
this.tableData = res.data
|
this.tableData = res.data
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import item from './item-warp.vue'
|
import item from './item-warp.vue'
|
||||||
import SwiperTableCenter from './SwiperTableCenter.vue'
|
import SwiperTableCenter from './SwiperTableCenter.vue'
|
||||||
import { GetRegionalIncomeDate } from '@/api/screen/zzScreen'
|
import { GetPvRegionalIncomeDate } from '@/api/screen/zzPvScreen'
|
||||||
export default {
|
export default {
|
||||||
components: { item, SwiperTableCenter },
|
components: { item, SwiperTableCenter },
|
||||||
data() {
|
data() {
|
||||||
@ -42,7 +42,7 @@ export default {
|
|||||||
async getData(deptId) {
|
async getData(deptId) {
|
||||||
try {
|
try {
|
||||||
this.tableLoading = true
|
this.tableLoading = true
|
||||||
const res = await GetRegionalIncomeDate({
|
const res = await GetPvRegionalIncomeDate({
|
||||||
deptId: deptId
|
deptId: deptId
|
||||||
})
|
})
|
||||||
this.tableData = res.data
|
this.tableData = res.data
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import item from './item-warp.vue'
|
import item from './item-warp.vue'
|
||||||
import { GetIncomeCurve } from '@/api/screen/zzScreen'
|
import { GetPvIncomeCurve } from '@/api/screen/zzPvScreen'
|
||||||
export default {
|
export default {
|
||||||
components: { item },
|
components: { item },
|
||||||
props: {},
|
props: {},
|
||||||
@ -51,7 +51,7 @@ export default {
|
|||||||
this.deptId = deptId
|
this.deptId = deptId
|
||||||
try {
|
try {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
const { data } = await GetIncomeCurve({ type: this.activeName, deptId: deptId })
|
const { data } = await GetPvIncomeCurve({ type: this.activeName, deptId: deptId })
|
||||||
this.initChart(data)
|
this.initChart(data)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
|
|||||||
@ -69,7 +69,8 @@ import RightCenter from './components/right-center.vue'
|
|||||||
import RightRight from './components/right-bottom.vue'
|
import RightRight from './components/right-bottom.vue'
|
||||||
import CenterBottom from './components/center-bottom.vue'
|
import CenterBottom from './components/center-bottom.vue'
|
||||||
import CenterTop from './components/center-top.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 {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
// MapCenter, CenterTop,
|
// MapCenter, CenterTop,
|
||||||
@ -150,35 +151,30 @@ export default {
|
|||||||
this.$refs.MapCenterRef.getLeftData(this.deptId)
|
this.$refs.MapCenterRef.getLeftData(this.deptId)
|
||||||
|
|
||||||
this.$refs.CenterBottomRef.getData(this.deptId)
|
this.$refs.CenterBottomRef.getData(this.deptId)
|
||||||
const res = await GetOverviewData({
|
const res = await GetPvOverviewData({
|
||||||
deptId: this.deptId
|
deptId: this.deptId
|
||||||
})
|
})
|
||||||
|
console.log(res.data)
|
||||||
this.leftTopInfo = {
|
this.leftTopInfo = {
|
||||||
capacity: res.data.capacity,
|
capacity: res.data.capacity,
|
||||||
stationNumber: res.data.stationNumber,
|
stationNumber: res.data.stationNumber,
|
||||||
yearCharge: res.data.yearCharge,
|
dailyReleaseElec: res.data.dailyReleaseElec,
|
||||||
yearDischarge: res.data.yearDischarge,
|
yearReleaseElec: res.data.yearReleaseElec,
|
||||||
totalCharge: res.data.totalCharge,
|
totalReleaseElec: res.data.totalReleaseElec
|
||||||
totalDischarge: res.data.totalDischarge,
|
|
||||||
dayCharge: res.data.dayCharge,
|
|
||||||
dayDischarge: res.data.dayDischarge
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.centerTopInfo = {
|
this.centerTopInfo = {
|
||||||
totalProfit: (Number(res.data.totalProfit) / 1E4).toFixed(2),
|
totalProfit: (Number(res.data.todayIncone) / 1E4).toFixed(2),
|
||||||
yearProfit: (Number(res.data.yearProfit) / 1E4).toFixed(2),
|
yearProfit: (Number(res.data.yearIncone) / 1E4).toFixed(2),
|
||||||
yestProfit: (Number(res.data.yestProfit) / 1E4).toFixed(2)
|
yestProfit: (Number(res.data.totalIncome) / 1E4).toFixed(2)
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.leftTopInfo = {
|
this.leftTopInfo = {
|
||||||
capacity: 0,
|
capacity: 0,
|
||||||
stationNumber: 0,
|
stationNumber: 0,
|
||||||
yearCharge: 0,
|
dailyReleaseElec: 0,
|
||||||
yearDischarge: 0,
|
yearReleaseElec: 0,
|
||||||
totalCharge: 0,
|
totalReleaseElec: 0
|
||||||
totalDischarge: 0,
|
|
||||||
dayCharge: 0,
|
|
||||||
dayDischarge: 0
|
|
||||||
}
|
}
|
||||||
this.centerTopInfo = {
|
this.centerTopInfo = {
|
||||||
totalProfit: 0,
|
totalProfit: 0,
|
||||||
|
|||||||
@ -14,7 +14,6 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col
|
<el-col
|
||||||
:xs="24"
|
:xs="24"
|
||||||
:sm="24"
|
:sm="24"
|
||||||
@ -23,7 +22,7 @@
|
|||||||
:xl="17"
|
:xl="17"
|
||||||
style="text-align: right"
|
style="text-align: right"
|
||||||
>
|
>
|
||||||
<el-button
|
<!-- <el-button
|
||||||
v-permission="['business:earningsCalculate:oneKeyComputation']"
|
v-permission="['business:earningsCalculate:oneKeyComputation']"
|
||||||
style="margin-left: auto"
|
style="margin-left: auto"
|
||||||
type="primary"
|
type="primary"
|
||||||
@ -41,7 +40,7 @@
|
|||||||
class="reset-btn"
|
class="reset-btn"
|
||||||
:loading="downLoading"
|
:loading="downLoading"
|
||||||
@click="handleExportTempData"
|
@click="handleExportTempData"
|
||||||
>{{ $t("state.exportReport") }}</el-button>
|
>{{ $t("state.exportReport") }}</el-button> -->
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -55,25 +54,6 @@
|
|||||||
<div class="top">
|
<div class="top">
|
||||||
<ItemBox :title="$t('state.powerGenerationStatus')">
|
<ItemBox :title="$t('state.powerGenerationStatus')">
|
||||||
<div class="box">
|
<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="value-box">
|
||||||
<div class="top-box">
|
<div class="top-box">
|
||||||
<span class="d" />
|
<span class="d" />
|
||||||
@ -90,7 +70,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="center-line" />
|
<div class="center-line" />
|
||||||
<div class="bottom-value">
|
<div class="bottom-value">
|
||||||
203{{ totalData.totalChargeElec }}.55
|
{{ totalData.monthReleaseElec }}
|
||||||
<span class="unit">kWh</span>
|
<span class="unit">kWh</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -110,7 +90,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="center-line" />
|
<div class="center-line" />
|
||||||
<div class="bottom-value">
|
<div class="bottom-value">
|
||||||
237{{ totalData.totalCharge }}.12
|
{{ totalData.totalReleaseElec }}
|
||||||
<span class="unit">kWh</span>
|
<span class="unit">kWh</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -118,60 +98,22 @@
|
|||||||
<div class="top-box">
|
<div class="top-box">
|
||||||
<span class="d" />
|
<span class="d" />
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
:content="$t('state.equivalentPowerGenerationTime')"
|
:content="$t('state.ratedPower')"
|
||||||
placement="top"
|
placement="top"
|
||||||
effect="dark"
|
effect="dark"
|
||||||
>
|
>
|
||||||
<span class="title">{{
|
<span class="title">{{
|
||||||
$t("state.equivalentPowerGenerationTime")
|
$t("state.ratedPower")
|
||||||
}}</span>
|
}}</span>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<span class="d" />
|
<span class="d" />
|
||||||
</div>
|
</div>
|
||||||
<div class="center-line" />
|
<div class="center-line" />
|
||||||
<div class="bottom-value">
|
<div class="bottom-value">
|
||||||
9.{{ totalData.totalDischargeElec }}6
|
{{ totalData.pvPower === null? 0:totalData.pvPower }}
|
||||||
<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
|
|
||||||
<span class="unit">kW</span>
|
<span class="unit">kW</span>
|
||||||
</div>
|
</div>
|
||||||
</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>
|
</div>
|
||||||
</ItemBox>
|
</ItemBox>
|
||||||
</div>
|
</div>
|
||||||
@ -187,86 +129,6 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</ItemBox>
|
</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>
|
||||||
|
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
@ -276,18 +138,7 @@
|
|||||||
<div class="title">{{ $t("state.monthlyPVpowerGeneration") }}</div>
|
<div class="title">{{ $t("state.monthlyPVpowerGeneration") }}</div>
|
||||||
<div class="bottom-value">
|
<div class="bottom-value">
|
||||||
<div class="value">
|
<div class="value">
|
||||||
2031.{{ totalData.totalChargePrice }}7
|
{{ totalData.monthIncone }}
|
||||||
<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
|
|
||||||
<span class="unit">kWh</span>
|
<span class="unit">kWh</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -296,7 +147,7 @@
|
|||||||
<div class="title">{{ $t("state.monthlyIncome") }}</div>
|
<div class="title">{{ $t("state.monthlyIncome") }}</div>
|
||||||
<div class="bottom-value">
|
<div class="bottom-value">
|
||||||
<div class="value">
|
<div class="value">
|
||||||
45{{ totalData.income }}8.3
|
{{ totalData.totalIncome }}
|
||||||
<span class="unit">{{ $t("state.rmb") }}</span>
|
<span class="unit">{{ $t("state.rmb") }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -368,6 +219,7 @@
|
|||||||
import * as echarts from 'echarts'
|
import * as echarts from 'echarts'
|
||||||
import {
|
import {
|
||||||
GetTotal,
|
GetTotal,
|
||||||
|
getPvMonthData,
|
||||||
OneKeyComputation,
|
OneKeyComputation,
|
||||||
SureOneKeyComputation
|
SureOneKeyComputation
|
||||||
} from '@/api/revenue-management/earnings-statement'
|
} from '@/api/revenue-management/earnings-statement'
|
||||||
@ -382,8 +234,6 @@ export default {
|
|||||||
downLoading: false,
|
downLoading: false,
|
||||||
totalData: {},
|
totalData: {},
|
||||||
load_data: false,
|
load_data: false,
|
||||||
chargeArr: [],
|
|
||||||
dischargeArr: [],
|
|
||||||
computedTime: [],
|
computedTime: [],
|
||||||
computedShow: false,
|
computedShow: false,
|
||||||
computedLoading: false,
|
computedLoading: false,
|
||||||
@ -546,6 +396,18 @@ export default {
|
|||||||
changeTime() {
|
changeTime() {
|
||||||
this.get_table_data()
|
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() {
|
async get_table_data() {
|
||||||
this.load_data = true
|
this.load_data = true
|
||||||
const params = {
|
const params = {
|
||||||
@ -554,28 +416,10 @@ export default {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await GetTotal(params)
|
const res = await GetTotal(params)
|
||||||
|
await getPvMonthData(params)
|
||||||
this.totalData = res.data
|
this.totalData = res.data
|
||||||
this.chargeArr = []
|
|
||||||
this.dischargeArr = []
|
|
||||||
if (res.data.finish === 0) {
|
if (res.data.finish === 0) {
|
||||||
this.$message.warning(
|
this.$message.warning(`${this.$t('state.computeding')}${res.data.progress}${this.$t('state.laterQuery')}`)
|
||||||
`${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 = []
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// console.log(error);
|
// console.log(error);
|
||||||
@ -634,13 +478,10 @@ export default {
|
|||||||
initCharts(val, type) {
|
initCharts(val, type) {
|
||||||
const x_data = []
|
const x_data = []
|
||||||
const charge_data = []
|
const charge_data = []
|
||||||
// const discharge_data = []
|
|
||||||
// let benefit_data = [0, 0, 0, 0, 0, 0, 0]
|
|
||||||
if (val && val.length > 0) {
|
if (val && val.length > 0) {
|
||||||
val.forEach((item) => {
|
val.forEach((item) => {
|
||||||
x_data.push(item.date)
|
x_data.push(item.date)
|
||||||
charge_data.push(item.chargeElec)
|
charge_data.push(item.powerGenerate)
|
||||||
// discharge_data.push(item.dischargeElec)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
this.powerOptions = {
|
this.powerOptions = {
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import { GetPcsCurve } from '@/api/surveillance/pcs'
|
import { GetMtttpCurve } from '@/api/surveillance/mttp'
|
||||||
import ItemBox from '../../item-kuang.vue'
|
import ItemBox from '../../item-kuang.vue'
|
||||||
export default {
|
export default {
|
||||||
name: 'Index',
|
name: 'Index',
|
||||||
@ -102,7 +102,7 @@ export default {
|
|||||||
srcId: srcId
|
srcId: srcId
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await GetPcsCurve(params)
|
const res = await GetMtttpCurve(params)
|
||||||
this.getChatData(res.data)
|
this.getChatData(res.data)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// console.log(error);
|
// console.log(error);
|
||||||
@ -115,7 +115,7 @@ export default {
|
|||||||
const xAxis = []
|
const xAxis = []
|
||||||
val.forEach((v) => {
|
val.forEach((v) => {
|
||||||
xAxis.push(v.data)
|
xAxis.push(v.data)
|
||||||
gonglv.push(Number((Math.random() * 50 + 100).toFixed(2)))
|
gonglv.push(v.planCurve)
|
||||||
})
|
})
|
||||||
this.options = {
|
this.options = {
|
||||||
color: ['#00C8FF', '#FBBB11'],
|
color: ['#00C8FF', '#FBBB11'],
|
||||||
|
|||||||
@ -411,7 +411,7 @@ export default {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await GetNewValue(params)
|
const res = await GetNewValue(params)
|
||||||
|
console.log('dcdcmppt', res)
|
||||||
this.pcsLeftTopData.forEach((el) => {
|
this.pcsLeftTopData.forEach((el) => {
|
||||||
if (Object.keys(res.data).length !== 0) {
|
if (Object.keys(res.data).length !== 0) {
|
||||||
el.value = res.data[el.field].value
|
el.value = res.data[el.field].value
|
||||||
|
|||||||
@ -1,361 +1,235 @@
|
|||||||
export const pcsRightData = [
|
export const pcsRightData = [
|
||||||
{
|
{
|
||||||
label: '总报警状态',
|
label: 'EPO故障',
|
||||||
englabel: 'PCS Total Alarm Status',
|
englabel: '',
|
||||||
field: 'YX0012',
|
field: 'YX0058',
|
||||||
value: ''
|
value: ''
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
label: '单元直压故障',
|
label: 'IGBT OCP故障',
|
||||||
englabel: 'Unit direct pressure failure',
|
englabel: '',
|
||||||
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',
|
|
||||||
field: 'YX0059',
|
field: 'YX0059',
|
||||||
value: ''
|
value: ''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'DCDC通讯故障',
|
label: '高压侧硬件过压故障',
|
||||||
englabel: 'DCDC communication failure',
|
englabel: '',
|
||||||
|
field: 'YX0060',
|
||||||
|
value: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '高压侧硬件过流故障',
|
||||||
|
englabel: '',
|
||||||
field: 'YX0061',
|
field: 'YX0061',
|
||||||
value: ''
|
value: ''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'EMS通讯故障',
|
label: 'IGBT硬件过流故障',
|
||||||
englabel: 'EMS communication failure',
|
englabel: '',
|
||||||
field: 'YX0062',
|
field: 'YX0062',
|
||||||
value: ''
|
value: ''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '急停故障',
|
label: '24V辅助电源故障',
|
||||||
englabel: 'Emergency stop or melt core failure',
|
englabel: '',
|
||||||
field: 'YX0063',
|
field: 'YX0063',
|
||||||
value: ''
|
value: ''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '母线不平衡异常',
|
label: '风扇故障',
|
||||||
englabel: 'The bus bar is unbalanced and abnormal',
|
englabel: '',
|
||||||
|
field: 'YX0064',
|
||||||
|
value: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '连接故障',
|
||||||
|
englabel: '',
|
||||||
|
field: 'YX0065',
|
||||||
|
value: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '功率模块过温',
|
||||||
|
englabel: '',
|
||||||
|
field: 'YX0066',
|
||||||
|
value: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '±15V辅源故障',
|
||||||
|
englabel: '',
|
||||||
|
field: 'YX0067',
|
||||||
|
value: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '预充电超时故障',
|
||||||
|
englabel: '',
|
||||||
field: 'YX0068',
|
field: 'YX0068',
|
||||||
value: ''
|
value: ''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '母线半直压过压',
|
label: '低压侧A相软件过流故障',
|
||||||
englabel: 'The bus bar is semi-directly pressed and overpressed',
|
englabel: '',
|
||||||
field: 'YX0069',
|
field: 'YX0069',
|
||||||
value: ''
|
value: ''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '启动超时',
|
label: '低压侧B相软件过流故障',
|
||||||
englabel: 'Startup timed out',
|
englabel: '',
|
||||||
field: 'YX0070',
|
field: 'YX0070',
|
||||||
value: ''
|
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 = [
|
export const pcsLeftTopData = [
|
||||||
{
|
{
|
||||||
label: 'BAT电压',
|
label: '低压侧电压',
|
||||||
englabel: 'BAT voltage',
|
englabel: 'BAT voltage',
|
||||||
field: 'outputPower',
|
field: 'lowV',
|
||||||
value: '0',
|
value: '0',
|
||||||
unit: 'V'
|
unit: 'V'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'BAT电流',
|
label: '高压侧电压',
|
||||||
field: 'reactivePowerPCS',
|
field: 'highV',
|
||||||
englabel: 'BAT current',
|
englabel: 'BAT current',
|
||||||
value: '0',
|
value: '0',
|
||||||
unit: 'A'
|
unit: 'A'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'BUS电压',
|
label: '低压侧电流',
|
||||||
englabel: 'BUS voltage',
|
englabel: 'BUS voltage',
|
||||||
field: 'grid',
|
field: 'lowI',
|
||||||
value: '0',
|
value: '0',
|
||||||
unit: 'V'
|
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 = [
|
export const pcsLeftBottomData1 = [
|
||||||
{
|
{
|
||||||
label: '运行功率',
|
label: '有功功率',
|
||||||
englabel: 'operating power',
|
englabel: 'operating power',
|
||||||
field: 'dcPower',
|
field: 'pvActivePower',
|
||||||
value: '0',
|
value: '0',
|
||||||
unit: 'kW'
|
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 = [
|
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 = [
|
export const pcsCenterDataStatus = [
|
||||||
|
|||||||
@ -78,6 +78,7 @@
|
|||||||
<el-table-column prop="name" label="电站名称" />
|
<el-table-column prop="name" label="电站名称" />
|
||||||
<el-table-column prop="ratePower" label="额定功率(kW)" show-overflow-tooltip />
|
<el-table-column prop="ratePower" label="额定功率(kW)" show-overflow-tooltip />
|
||||||
<el-table-column prop="capacity" label="额定容量(kWh)" 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="address" label="地址" />
|
||||||
<el-table-column prop="cabinNum" label="舱体数量" />
|
<el-table-column prop="cabinNum" label="舱体数量" />
|
||||||
<el-table-column prop="gridTime" label="并网时间" show-overflow-tooltip />
|
<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">
|
<div v-for="(item, index) in snList" :key="index" class="sn-box">
|
||||||
<el-input v-model="item.desc" maxlength="50" placeholder="请输入SN编码" />
|
<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-circle-plus-outline operate-i" @click="addSn" />
|
||||||
|
|
||||||
<i v-if="index > 0" class="el-icon-remove-outline operate-i" @click="delSn(item, index)" />
|
<i v-if="index > 0" class="el-icon-remove-outline operate-i" @click="delSn(item, index)" />
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -395,7 +395,7 @@
|
|||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="是否接入光伏">
|
<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
|
<el-option
|
||||||
v-for="item in inverterFlagList"
|
v-for="item in inverterFlagList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -405,6 +405,17 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</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-col :span="12">
|
||||||
<el-form-item label="用电客户" prop="customerType">
|
<el-form-item label="用电客户" prop="customerType">
|
||||||
<el-select
|
<el-select
|
||||||
@ -451,7 +462,6 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="卡号" prop="iccId">
|
<el-form-item label="卡号" prop="iccId">
|
||||||
<el-select
|
<el-select
|
||||||
@ -659,6 +669,7 @@ export default {
|
|||||||
cupboardType: null,
|
cupboardType: null,
|
||||||
planVersion: null,
|
planVersion: null,
|
||||||
inverterFlag: 0,
|
inverterFlag: 0,
|
||||||
|
pvPower: '',
|
||||||
electricityType: null,
|
electricityType: null,
|
||||||
customerType: null,
|
customerType: null,
|
||||||
voltageLevel: null,
|
voltageLevel: null,
|
||||||
@ -905,6 +916,7 @@ export default {
|
|||||||
isDailyCount: 0,
|
isDailyCount: 0,
|
||||||
topologyType: 1,
|
topologyType: 1,
|
||||||
inverterFlag: 0,
|
inverterFlag: 0,
|
||||||
|
pvPower: '',
|
||||||
electricityType: null,
|
electricityType: null,
|
||||||
customerType: null,
|
customerType: null,
|
||||||
voltageLevel: null,
|
voltageLevel: null,
|
||||||
@ -982,6 +994,11 @@ export default {
|
|||||||
if (this.formModel.flowMonitorId) {
|
if (this.formModel.flowMonitorId) {
|
||||||
this.isCanSelectPackage = false
|
this.isCanSelectPackage = false
|
||||||
}
|
}
|
||||||
|
if (this.formRules.inverterFlag === 1) {
|
||||||
|
this.formRules['pvPower'] = [{ required: true, message: '请输入光伏额定功率', trigger: 'blur' }]
|
||||||
|
} else {
|
||||||
|
delete this.formRules.pvPower
|
||||||
|
}
|
||||||
this.getEditAddressResolution()
|
this.getEditAddressResolution()
|
||||||
this.formLoading = false
|
this.formLoading = false
|
||||||
},
|
},
|
||||||
@ -1001,6 +1018,13 @@ export default {
|
|||||||
)
|
)
|
||||||
this.formModel.typeName = this.stationTypeList[index].label
|
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() {
|
handleTosubmit: function() {
|
||||||
const fileList = []
|
const fileList = []
|
||||||
@ -1013,6 +1037,7 @@ export default {
|
|||||||
})
|
})
|
||||||
this.formModel.pictureIds = fileList
|
this.formModel.pictureIds = fileList
|
||||||
this.formModel.logoPictureId = fileListLogo[0]
|
this.formModel.logoPictureId = fileListLogo[0]
|
||||||
|
this.formModel.pvPower = this.formModel.inverterFlag === 0 ? '' : this.formModel.pvPower
|
||||||
const snDetail = []
|
const snDetail = []
|
||||||
let flag = 0
|
let flag = 0
|
||||||
this.snList.forEach((sn, index) => {
|
this.snList.forEach((sn, index) => {
|
||||||
|
|||||||
@ -14,9 +14,9 @@
|
|||||||
v-loading="load_data_org"
|
v-loading="load_data_org"
|
||||||
class="filter-tree"
|
class="filter-tree"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
element-loading-text="正在加载组织结构数"
|
element-loading-text="正在加载组织结构树"
|
||||||
:data="data2"
|
:data="data2"
|
||||||
highlight-current
|
highlight-currentzhge
|
||||||
:default-expanded-keys="expandedKeys"
|
:default-expanded-keys="expandedKeys"
|
||||||
:props="defaultProps"
|
:props="defaultProps"
|
||||||
:expand-on-click-node="true"
|
:expand-on-click-node="true"
|
||||||
|
|||||||
Reference in New Issue
Block a user