|
@@ -1,8 +1,8 @@
|
|
|
<template>
|
|
|
<div class="photovoltaicCard" id="photovoltaicCard">
|
|
|
<el-row :gutter="20">
|
|
|
- <div v-if="dataSourceList.length > 0" class="data-cards">
|
|
|
- <el-col :span="6" v-for="item in dataSourceList" :key="item.code">
|
|
|
+ <div v-if="dataSourceList?.length > 0" class="data-cards">
|
|
|
+ <el-col :span="6" v-for="item in dataSourceList" :key="item?.id">
|
|
|
<div class="card-list">
|
|
|
<div class="border-corner">
|
|
|
<div class="border-top"></div>
|
|
@@ -10,24 +10,23 @@
|
|
|
<div class="border-bottom"></div>
|
|
|
<div class="border-left"></div>
|
|
|
</div>
|
|
|
- <div class="card-status" v-if="isStation" @click="showCurve(item)">
|
|
|
+ <!-- <div class="card-status" v-if="isStation" @click="showCurve(item)">
|
|
|
<img
|
|
|
:src="
|
|
|
- item.CZZT?.value == 0
|
|
|
+ item?.CZZT?.value == 0
|
|
|
? require('@assets/img/images/state_normal.png')
|
|
|
- : item.CZZT?.value == 1
|
|
|
+ : item?.CZZT?.value == 1
|
|
|
? require('@assets/img/images/state_fault.png')
|
|
|
: require('@assets/img/images/state_broken-chain.png')
|
|
|
"
|
|
|
/>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
<!-- <img :src="item.image ? item.image : !isStation ? require('@assets/img/images/level-one_company.png') : require('@assets/img/images/level-two_power-plant.png')" class="card-img" @click="jumpLevelTwo(item)">-->
|
|
|
<img
|
|
|
- v-show="theme === 'operate'"
|
|
|
:src="
|
|
|
- item.image
|
|
|
- ? item.image
|
|
|
- : item.orgType != 'STA'
|
|
|
+ item?.image
|
|
|
+ ? item?.image
|
|
|
+ : item?.orgType != 'STA'
|
|
|
? require('@assets/img/images/level-one_company.png')
|
|
|
: require('@assets/img/images/level-two_power-plant.png')
|
|
|
"
|
|
@@ -35,44 +34,11 @@
|
|
|
@click="jumpLevelTwo(item)"
|
|
|
/>
|
|
|
|
|
|
- <div v-show="theme === 'maintenance'" class="leftData">
|
|
|
- <div>
|
|
|
- <div class="data-num">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.RFDL.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span>{{ item.RFDL.value }}</span> kWh
|
|
|
- </div>
|
|
|
- </el-tooltip>
|
|
|
- </div>
|
|
|
- <div class="data-prop">日发电量</div>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <div class="data-num">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.RLYXS.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span>{{ item.RLYXS.value }}</span> h
|
|
|
- </div>
|
|
|
- </el-tooltip>
|
|
|
- </div>
|
|
|
- <div class="data-prop">日等效小时</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
<div class="card-data">
|
|
|
<div class="card-company">
|
|
|
<div
|
|
|
class="company-name card-hover"
|
|
|
- :title="item.anames"
|
|
|
+ :title="item?.name"
|
|
|
@click="jumpLevelTwo(item)"
|
|
|
>
|
|
|
<i
|
|
@@ -80,210 +46,104 @@
|
|
|
isStation ? 'icon-Photovoltaic-pv' : 'icon-enterprise'
|
|
|
"
|
|
|
></i>
|
|
|
- {{ item.anames }}
|
|
|
- </div>
|
|
|
- <div class="company-address" :title="item.address">
|
|
|
- <i class="icon-positioning"></i>
|
|
|
- {{ item.address }}
|
|
|
+ {{ item?.name }}
|
|
|
</div>
|
|
|
</div>
|
|
|
<ul class="data-list" v-show="theme === 'operate'">
|
|
|
- <li>
|
|
|
- <div class="data-prop">接入容量</div>
|
|
|
+ <!-- <li>
|
|
|
+ <div class="data-prop">发电量</div>
|
|
|
<div class="data-num">
|
|
|
- <span>{{ item.jrrl || 0 }}</span> kWp
|
|
|
+ <span>{{ item?.fdl?.toFixed(2) || 0 }}</span> 万kWh
|
|
|
</div>
|
|
|
- </li>
|
|
|
+ </li> -->
|
|
|
<li>
|
|
|
- <div class="data-prop">实际功率</div>
|
|
|
+ <div class="data-prop">故障损失</div>
|
|
|
<div class="data-num">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.SSZGL.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span>{{ item.SSZGL.value }}</span> kW
|
|
|
- </div>
|
|
|
- </el-tooltip>
|
|
|
+ <div>
|
|
|
+ <span>{{ item?.gzssdl?.toFixed(2) || 0 }}</span> 万kWh
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <div class="data-prop">日发电量</div>
|
|
|
+ <div class="data-prop">维护损失</div>
|
|
|
<div class="data-num">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.RFDL.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span>{{ item.RFDL.value }}</span> kWh
|
|
|
- </div>
|
|
|
- </el-tooltip>
|
|
|
+ <div>
|
|
|
+ <span>{{ item?.whssdl?.toFixed(2) || 0 }}</span> 万kWh
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <div class="data-prop">月发电量</div>
|
|
|
+ <div class="data-prop">限电损失</div>
|
|
|
<div class="data-num">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.YFDL.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span>{{ item.YFDL.value }}</span> 万kWh
|
|
|
- </div>
|
|
|
- </el-tooltip>
|
|
|
+ <div>
|
|
|
+ <span>{{ item?.xdssdl?.toFixed(2) || 0 }}</span> 万kWh
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <div class="data-prop">日等效小时</div>
|
|
|
+ <div class="data-prop">性能损失</div>
|
|
|
<div class="data-num">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.RLYXS.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span>{{ item.RLYXS.value }}</span> h
|
|
|
- </div>
|
|
|
- </el-tooltip>
|
|
|
+ <div>
|
|
|
+ <span>{{ item?.xnssdl?.toFixed(2) || 0 }}</span> 万kWh
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <div class="data-prop">
|
|
|
- {{ !isStation ? "总发电量" : "总辐射量" }}
|
|
|
- </div>
|
|
|
+ <div class="data-prop">受累损失</div>
|
|
|
<div class="data-num">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="
|
|
|
- getchangeTime(
|
|
|
- !isStation ? item.ZFDL.dateTime : item.ZFSL.dateTime
|
|
|
- )
|
|
|
- "
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span>{{
|
|
|
- !isStation ? item.ZFDL.value : item.ZFSL.value
|
|
|
- }}</span>
|
|
|
- {{ !isStation ? "万kWh" : "MJ/㎡" }}
|
|
|
- </div>
|
|
|
- </el-tooltip>
|
|
|
+ <div>
|
|
|
+ <span>{{ item?.slssdl?.toFixed(2) || 0 }}</span>
|
|
|
+ 万kWh
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
<ul class="data-maintenance" v-show="theme === 'maintenance'">
|
|
|
- <li class="child-interrupt">
|
|
|
- <div class="service-label">通讯中断</div>
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.TXZDTS?.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span class="service-data">{{
|
|
|
- dataFix(item.TXZDTS?.value)
|
|
|
+ <li>
|
|
|
+ <div class="maintenance-item">
|
|
|
+ <div class="text-wrapper">
|
|
|
+ <span class="name">{{
|
|
|
+ typeStr == -1 ? "风能利用率" : "光能利用率"
|
|
|
}}</span>
|
|
|
- {{
|
|
|
- calcPercentage(
|
|
|
- [
|
|
|
- item.TXZDTS?.value,
|
|
|
- item.SBTJTS?.value,
|
|
|
- item.DZYXTS?.value,
|
|
|
- item.ZCYXTS?.value,
|
|
|
- ],
|
|
|
- 0
|
|
|
- )
|
|
|
- }}
|
|
|
+ <span class="count" :class="typeStr == -1 ? 'fd' : 'gf'"
|
|
|
+ >{{ item?.gnlyl }}%
|
|
|
+ <i class="text">(100%)</i>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- </el-tooltip>
|
|
|
- </li>
|
|
|
- <li class="child-halt">
|
|
|
- <div class="service-label">设备停机</div>
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.SBTJTS?.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span class="service-data">{{
|
|
|
- dataFix(item.SBTJTS?.value)
|
|
|
- }}</span>
|
|
|
- {{
|
|
|
- calcPercentage(
|
|
|
- [
|
|
|
- item.TXZDTS?.value,
|
|
|
- item.SBTJTS?.value,
|
|
|
- item.DZYXTS?.value,
|
|
|
- item.ZCYXTS?.value,
|
|
|
- ],
|
|
|
- 1
|
|
|
- )
|
|
|
- }}
|
|
|
+ <div class="process-wrapper">
|
|
|
+ <div
|
|
|
+ class="process-bar"
|
|
|
+ :style="{ width: item?.gnlyl + '%' }"
|
|
|
+ :class="typeStr == -1 ? 'fd' : 'gf'"
|
|
|
+ >
|
|
|
+ <span class="img"></span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </el-tooltip>
|
|
|
+ </div>
|
|
|
</li>
|
|
|
- <li class="child-fault">
|
|
|
- <div class="service-label">带障运行</div>
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.DZYXTS?.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span class="service-data">{{
|
|
|
- dataFix(item.DZYXTS?.value)
|
|
|
- }}</span>
|
|
|
- {{
|
|
|
- calcPercentage(
|
|
|
- [
|
|
|
- item.TXZDTS?.value,
|
|
|
- item.SBTJTS?.value,
|
|
|
- item.DZYXTS?.value,
|
|
|
- item.ZCYXTS?.value,
|
|
|
- ],
|
|
|
- 2
|
|
|
- )
|
|
|
- }}
|
|
|
+ <li>
|
|
|
+ <div class="maintenance-data">
|
|
|
+ <div class="data-prop">发电量</div>
|
|
|
+ <div class="data-num">
|
|
|
+ <span>{{ item?.fdl?.toFixed(2) || 0 }}</span> 万kWh
|
|
|
</div>
|
|
|
- </el-tooltip>
|
|
|
- </li>
|
|
|
- <li class="child-normal">
|
|
|
- <div class="service-label">正常运行</div>
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="getchangeTime(item.ZCYXTS?.dateTime)"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <div>
|
|
|
- <span class="service-data">{{
|
|
|
- dataFix(item.ZCYXTS?.value)
|
|
|
- }}</span>
|
|
|
- {{
|
|
|
- calcPercentage(
|
|
|
- [
|
|
|
- item.TXZDTS?.value,
|
|
|
- item.SBTJTS?.value,
|
|
|
- item.DZYXTS?.value,
|
|
|
- item.ZCYXTS?.value,
|
|
|
- ],
|
|
|
- 3
|
|
|
- )
|
|
|
- }}
|
|
|
+ </div>
|
|
|
+ <div class="maintenance-data">
|
|
|
+ <div class="data-prop">理论发电量</div>
|
|
|
+ <div class="data-num">
|
|
|
+ <div>
|
|
|
+ <span>{{ item?.llfdl?.toFixed(2) || 0 }}</span> 万kWh
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </el-tooltip>
|
|
|
+ </div>
|
|
|
</li>
|
|
|
+
|
|
|
+ <!-- <li>
|
|
|
+ <div class="maintenance-item">
|
|
|
+ <div class="name">健康状态</div>
|
|
|
+ <div class="process-bar"></div>
|
|
|
+ </div>
|
|
|
+ </li> -->
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -391,20 +251,35 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
jumpLevelTwo(param) {
|
|
|
- if (param.orgType == "STA") {
|
|
|
- debugger
|
|
|
- console.log({ companyCode: param.code, stationCode: param.code,type:this.typeStr})
|
|
|
+ if (param.id.includes("STA")) {
|
|
|
+ // debugger;
|
|
|
+ // console.log({
|
|
|
+ // companyCode: param.code,
|
|
|
+ // stationCode: param.code,
|
|
|
+ // type: this.typeStr,
|
|
|
+ // });
|
|
|
// 场站跳转详情
|
|
|
- this.$router.push({
|
|
|
- name: "lighthome",
|
|
|
- query: { companyCode: param.code, stationCode: param.code,type:this.typeStr},
|
|
|
- });
|
|
|
+ // this.$router.push({
|
|
|
+ // name: "lighthome",
|
|
|
+ // query: {
|
|
|
+ // companyCode: param.code,
|
|
|
+ // stationCode: param.code,
|
|
|
+ // type: this.typeStr,
|
|
|
+ // },
|
|
|
+ // });
|
|
|
} else {
|
|
|
// 公司跳转场站
|
|
|
- this.$router.push({
|
|
|
- path: "/stateMonitor/photovoltaicLevelTwoStation",
|
|
|
- query: { companyCode: param.code},
|
|
|
- });
|
|
|
+ if (this.typeStr == -1) {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/economicsOperation/comphomepage",
|
|
|
+ query: { companyCode: param.id },
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/economicsOperation/comphomepageGf",
|
|
|
+ query: { companyCode: param.id },
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
dataFix(num) {
|
|
@@ -569,7 +444,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.data-prop {
|
|
|
- font-font: 14px;
|
|
|
+ font-size: 14px;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -622,26 +497,88 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.data-maintenance {
|
|
|
- margin-top: 15px;
|
|
|
+ margin-top: 25px;
|
|
|
li {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
- margin-bottom: 10px;
|
|
|
+ margin-bottom: 18px;
|
|
|
font-size: 14px;
|
|
|
- .service-label {
|
|
|
+ width: 100%;
|
|
|
+ .maintenance-item {
|
|
|
display: flex;
|
|
|
- align-items: center;
|
|
|
- }
|
|
|
- .service-label::before {
|
|
|
- content: "";
|
|
|
- display: inline-block;
|
|
|
- width: 5px;
|
|
|
- height: 5px;
|
|
|
- background: #a7a7a7;
|
|
|
- margin-right: 5px;
|
|
|
+ width: 100%;
|
|
|
+ flex-direction: column;
|
|
|
+ .process-wrapper {
|
|
|
+ height: 4.5px;
|
|
|
+ max-width: 100%;
|
|
|
+ background-color: rgba(142, 176, 255, 0.2);
|
|
|
+ }
|
|
|
+ .process-bar {
|
|
|
+ position: relative;
|
|
|
+ height: 4.5px;
|
|
|
+ max-width: 100%;
|
|
|
+
|
|
|
+ background: linear-gradient(90deg, #561f00, #853000, #f78712);
|
|
|
+ .img {
|
|
|
+ background: url("../../../../../assets/img/home/generatingCapacityDay.png")
|
|
|
+ no-repeat;
|
|
|
+ position: absolute;
|
|
|
+ display: inline-block;
|
|
|
+ width: 39px;
|
|
|
+ height: 39px;
|
|
|
+ top: -17px;
|
|
|
+ right: -22px;
|
|
|
+ transform: scale(0.8);
|
|
|
+ }
|
|
|
+ &.fd {
|
|
|
+ background: linear-gradient(90deg, #001442, #1c99ff);
|
|
|
+ .img {
|
|
|
+ background: url("../../../../../assets/img/home/generatingCapacityMonth.png")
|
|
|
+ no-repeat;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &.gf {
|
|
|
+ background: linear-gradient(90deg, #561f00, #853000, #f78712);
|
|
|
+ .img {
|
|
|
+ background: url("../../../../../assets/img/home/generatingCapacityDay.png")
|
|
|
+ no-repeat;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .text-wrapper {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ .count {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #ff8300;
|
|
|
+ font-family: "Arial";
|
|
|
+ font-weight: bolder;
|
|
|
+ .text {
|
|
|
+ font-size: 11px;
|
|
|
+ }
|
|
|
+ &.fd {
|
|
|
+ color: #1c99ff;
|
|
|
+ }
|
|
|
+ &.gf {
|
|
|
+ color: #ff8300;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- .service-data {
|
|
|
- margin-right: 10px;
|
|
|
+ .maintenance-data {
|
|
|
+ .data-prop {
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .data-num {
|
|
|
+
|
|
|
+ span {
|
|
|
+ display: inline-block;
|
|
|
+ min-width: 50px;
|
|
|
+ color: rgb(27, 147, 244);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
.child-interrupt {
|