|
@@ -65,7 +65,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <p>风能利用率(%)</p>
|
|
|
+ <p>光能利用率(%)</p>
|
|
|
</div>
|
|
|
<ul class="chart-list">
|
|
|
<li class="statistics-li">
|
|
@@ -220,7 +220,7 @@
|
|
|
:class="themeType === 'maintenance' && 'active-theme'"
|
|
|
>
|
|
|
<i class="icon-operate"></i>
|
|
|
- <span>风能利用率</span>
|
|
|
+ <span>光能利用率</span>
|
|
|
</div>
|
|
|
<div
|
|
|
class="theme-change"
|
|
@@ -230,10 +230,173 @@
|
|
|
<i class="icon-maintenance"></i>
|
|
|
<span>损失明细</span>
|
|
|
</div>
|
|
|
+ <div class="label">对标方式:</div>
|
|
|
+ <el-select
|
|
|
+ style="width: 145px"
|
|
|
+ v-model="benchmarkingVal"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ size="mini"
|
|
|
+ @change="changeNum"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ @mousedown.native="clickBench(item.value)"
|
|
|
+ v-for="(item, indexe) in benchmarking"
|
|
|
+ :key="indexe"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-badge
|
|
|
+ v-if="benchNum !== 0 && benchmarkingVal !== ''"
|
|
|
+ @click="hidenBenchList"
|
|
|
+ :value="benchNum"
|
|
|
+ style="margin-left: 20px; cursor: pointer"
|
|
|
+ >
|
|
|
+ <img src="@/assets/img/images/benhNum.png" />
|
|
|
+ </el-badge>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ style="z-index: 999; width: 45%; background: #0c0f15"
|
|
|
+ class="window"
|
|
|
+ v-if="displaycheck === true"
|
|
|
+ >
|
|
|
+ <div class="stitBorder"></div>
|
|
|
+ <p class="ststTit header">
|
|
|
+ <span v-if="benchmarkingVal === 'bench2'"> 场际对标 </span>
|
|
|
+ <span v-if="benchmarkingVal === 'bench3'"> 项目对标 </span>
|
|
|
+ <span v-if="benchmarkingVal === 'bench4'"> 线路对标 </span>
|
|
|
+ <span v-if="benchmarkingVal === 'bench5'"> 阵区对标 </span>
|
|
|
+ <span v-if="benchmarkingVal === 'bench1'"> 场内对标 </span>
|
|
|
+ (<span style="color: #d8d8d9">{{ benchNum }}</span
|
|
|
+ >)
|
|
|
+ </p>
|
|
|
+ <div class="lines"></div>
|
|
|
+ <div
|
|
|
+ class="overHidd"
|
|
|
+ style="padding-top: 10px"
|
|
|
+ v-if="benchmarkingVal === 'bench1'"
|
|
|
+ >
|
|
|
+ <ul
|
|
|
+ v-for="(item, index) in cardBench"
|
|
|
+ :key="index"
|
|
|
+ class="stations"
|
|
|
+ >
|
|
|
+ <li>
|
|
|
+ {{ stationData?.name }}
|
|
|
+ </li>
|
|
|
+ <li
|
|
|
+ style="
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ {{ item }}
|
|
|
+ </li>
|
|
|
+ <li @click="removeTable(index)" style="cursor: pointer">
|
|
|
+ <i class="el-icon-close"></i>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ <div class="overHidd" v-if="benchmarkingVal === 'bench2'">
|
|
|
+ <ul
|
|
|
+ v-for="(item, index) in cardBench"
|
|
|
+ :key="index"
|
|
|
+ class="stations"
|
|
|
+ >
|
|
|
+ <li
|
|
|
+ style="
|
|
|
+ width: 60%;
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ {{ item }}
|
|
|
+ </li>
|
|
|
+
|
|
|
+ <li @click="removeTable(index)" style="cursor: pointer">
|
|
|
+ <i class="el-icon-close"></i>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="overHidd"
|
|
|
+ v-if="
|
|
|
+ benchmarkingVal !== 'bench2' && benchmarkingVal !== 'bench1'
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <ul
|
|
|
+ v-for="(item, index) in cardLists"
|
|
|
+ :key="index"
|
|
|
+ class="stations"
|
|
|
+ >
|
|
|
+ <li style="text-overflow: ellipsis">
|
|
|
+ {{ item }}
|
|
|
+ </li>
|
|
|
+
|
|
|
+ <li @click="removeTable(index)" style="cursor: pointer">
|
|
|
+ <i class="el-icon-close"></i>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ <el-row
|
|
|
+ class="footerButton"
|
|
|
+ v-if="benchmarkingVal === 'bench1'"
|
|
|
+ style="position: absolute; bottom: 19px; left: 15px"
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ :disabled="cardBench.length < 2"
|
|
|
+ round
|
|
|
+ @click="openCurvDatasedDate"
|
|
|
+ >开始对标</el-button
|
|
|
+ >
|
|
|
+ <div class="footTitle" @click="clearTable">
|
|
|
+ <p>清空</p>
|
|
|
+ <Delete
|
|
|
+ style="
|
|
|
+ width: 17px;
|
|
|
+ height: 17px;
|
|
|
+ margin-top: 6px;
|
|
|
+ margin-left: 5px;
|
|
|
+ color: rgba(255, 102, 0, 1);
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </el-row>
|
|
|
+ <el-row
|
|
|
+ class="footerButton"
|
|
|
+ v-else
|
|
|
+ style="position: absolute; bottom: 19px; left: 15px"
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ :disabled="cardLists.length < 2"
|
|
|
+ round
|
|
|
+ @click="openCurvDatased"
|
|
|
+ >开始对标</el-button
|
|
|
+ >
|
|
|
+ <div class="footTitle" @click="clearTable">
|
|
|
+ <p>清空</p>
|
|
|
+ <Delete
|
|
|
+ style="
|
|
|
+ width: 17px;
|
|
|
+ height: 17px;
|
|
|
+ margin-top: 6px;
|
|
|
+ margin-left: 5px;
|
|
|
+ color: rgba(255, 102, 0, 1);
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </el-row>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- <div class="photovoltaic-toggle">
|
|
|
+
|
|
|
+ <!-- 右侧列表卡片切换按钮 <div class="photovoltaic-toggle">
|
|
|
<div
|
|
|
class="type-card"
|
|
|
:class="isActive === 'card' && 'actived-toggle'"
|
|
@@ -259,7 +422,15 @@
|
|
|
</div>-->
|
|
|
</div>
|
|
|
<div class="photovoltaic-data">
|
|
|
- <Card :dataSource="cardData" :typeStr="typeNode" :theme="themeType" :isStation="true"/>
|
|
|
+ <Card
|
|
|
+ ref="childCard"
|
|
|
+ :dataSource="cardData"
|
|
|
+ :benchmarkingVal="benchmarkingVal"
|
|
|
+ :electTarget="electTarget"
|
|
|
+ :typeStr="typeNode"
|
|
|
+ :theme="themeType"
|
|
|
+ :isStation="true"
|
|
|
+ />
|
|
|
<!-- <Card
|
|
|
v-if="isActive === 'card'"
|
|
|
:dataSource="cardData"
|
|
@@ -273,6 +444,39 @@
|
|
|
:theme="themeType"
|
|
|
/> -->
|
|
|
</div>
|
|
|
+ <el-dialog
|
|
|
+ class="dialogs"
|
|
|
+ width="100%"
|
|
|
+ fullscreen
|
|
|
+ v-model="displaybench"
|
|
|
+ :show-close="true"
|
|
|
+ :destroy-on-close="true"
|
|
|
+ >
|
|
|
+ <template #title>
|
|
|
+ <div class="dialog-title">
|
|
|
+ <img
|
|
|
+ class="dialog-title-img"
|
|
|
+ src="@assets/img/images/dialog-title.png"
|
|
|
+ />
|
|
|
+ <div v-if="benchmarkingVal === 'bench2'" class="title">场际对标</div>
|
|
|
+ <div v-if="benchmarkingVal === 'bench3'" class="title">项目对标</div>
|
|
|
+ <div v-if="benchmarkingVal === 'bench4'" class="title">线路对标</div>
|
|
|
+ <div v-if="benchmarkingVal === 'bench5'" class="title">阵区对标</div>
|
|
|
+ <div v-if="benchmarkingVal === 'bench1'" class="title">场内对标</div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div class="dialog-body">
|
|
|
+ <img class="dialog-img" src="@assets/img/images/dialog.png" />
|
|
|
+ <siteBench v-if="benchmarkingVal === 'bench1'" ref="siteBench" />
|
|
|
+ <intervalBench
|
|
|
+ v-if="benchmarkingVal === 'bench2'"
|
|
|
+ ref="intervalBench"
|
|
|
+ />
|
|
|
+ <projectBench v-if="benchmarkingVal === 'bench3'" ref="projectBench" />
|
|
|
+ <wiringBench v-if="benchmarkingVal === 'bench4'" ref="wiringBench" />
|
|
|
+ <quarterBench v-if="benchmarkingVal === 'bench5'" ref="quarterBench" />
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -280,18 +484,25 @@
|
|
|
import Card from "../homePage/components/card.vue";
|
|
|
import List from "../homePage/components/list.vue";
|
|
|
import PieChart from "@/components/chart/pie/dual-pie-chart-econey.vue";
|
|
|
-// import PieChart from "@/components/chart/pie/pie-chart.vue";
|
|
|
-// import PieStationTop5 from "@/components/chart/pie/pie-station-top5.vue";
|
|
|
+import siteBench from "@/views//layout/economicsOperation/benchmarkingManagement/siteBenchmarking/index";
|
|
|
+import intervalBench from "@/views//layout/economicsOperation/benchmarkingManagement/intervalBenchmarking/index";
|
|
|
+import projectBench from "@/views//layout/economicsOperation/benchmarkingManagement/projectBenchmarking/index";
|
|
|
+import wiringBench from "@/views//layout/economicsOperation/benchmarkingManagement/wiringBenchmarking/index";
|
|
|
+import quarterBench from "@/views//layout/economicsOperation/benchmarkingManagement/quarterBenchmarking/index";
|
|
|
import { homePage } from "@/api/economy-homepage.js";
|
|
|
import { GetOrganization, GetStationByCompany } from "@/api/econ-headerNav.js";
|
|
|
-
|
|
|
+import { GetRegionInfo } from "@/api/home.js";
|
|
|
export default {
|
|
|
- name: "photovoltaicLevelTwoStation", // 公司首页
|
|
|
+ name: "companyHomepage", // 公司分析
|
|
|
components: {
|
|
|
Card,
|
|
|
List,
|
|
|
PieChart,
|
|
|
- // PieStationTop5,
|
|
|
+ siteBench,
|
|
|
+ intervalBench,
|
|
|
+ projectBench,
|
|
|
+ wiringBench,
|
|
|
+ quarterBench,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -300,6 +511,10 @@ export default {
|
|
|
{ type: -1, flag: true, id: "F", name: "风电" },
|
|
|
{ type: -2, flag: true, id: "G", name: "光伏" },
|
|
|
],
|
|
|
+ province: {
|
|
|
+ name: "",
|
|
|
+ code: "",
|
|
|
+ },
|
|
|
typeNode: "-1",
|
|
|
windSpeedRota: null, // 发电统计仪表盘转动角度
|
|
|
OrganizationLists: [], // 公司列表
|
|
@@ -307,7 +522,7 @@ export default {
|
|
|
stationLists: [], // 场站列表
|
|
|
timer: null, // 3秒调一次
|
|
|
checkNode: "", // 选中区域
|
|
|
- themeType: "maintenance", // 主题模式 风能利用率类:maintenance, 损失明细类:operate
|
|
|
+ themeType: "maintenance", // 主题模式 光能利用率类:maintenance, 损失明细类:operate
|
|
|
stationName: [], //选中场站
|
|
|
isActive: "card", // 切换卡片或列表
|
|
|
dayWindPieData: {}, //五项损失图表数据
|
|
@@ -322,30 +537,354 @@ export default {
|
|
|
{ label: "限电损失", value: "xdssdl" },
|
|
|
{ label: "性能损失", value: "xnssdl" },
|
|
|
{ label: "受累损失", value: "slssdl" },
|
|
|
- { label: "风能利用率", value: "gnlyl" }, //排序条件列表
|
|
|
+ { label: "光能利用率", value: "gnlyl" }, //排序条件列表
|
|
|
],
|
|
|
sortCode: "", //排序条件
|
|
|
sortType: true, //升序降序
|
|
|
datetype: "r",
|
|
|
wxssTotal: 0,
|
|
|
stationTopTotal: 0,
|
|
|
+ benchmarking: [
|
|
|
+ { label: "场内对标", value: "bench1" },
|
|
|
+ { label: "场际对标", value: "bench2" },
|
|
|
+ { label: "项目对标", value: "bench3" },
|
|
|
+ { label: "线路对标", value: "bench4" },
|
|
|
+ { label: "阵区对标", value: "bench5" },
|
|
|
+ ],
|
|
|
+ benchmarkingVal: "",
|
|
|
+ benchNum: 0,
|
|
|
+ displaycheck: false,
|
|
|
+ displaybench: false,
|
|
|
+ benchIndex: "",
|
|
|
+ selectTime: "",
|
|
|
+ benchChang: "",
|
|
|
+ cardBench: [],
|
|
|
+ ListBench: [],
|
|
|
+ ListBenchs: [],
|
|
|
+ didBench: "",
|
|
|
+ benchCode: "",
|
|
|
+ stationData: {},
|
|
|
+ dateTimes: null,
|
|
|
+ timerCurvData: null,
|
|
|
+ eventx: "",
|
|
|
+ eventY: "",
|
|
|
+ stationEg: null,
|
|
|
+ cardVal: [],
|
|
|
+ cardVals: [],
|
|
|
+ cardLists: [],
|
|
|
+ cardListed: [],
|
|
|
+ cardNmeCode: [],
|
|
|
+ cardSta: [],
|
|
|
+ cardPro: [],
|
|
|
+ cardLin: [],
|
|
|
};
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
init() {
|
|
|
- this.checkNode = this.$route.query.companyCode || "JS_RGN";
|
|
|
+ let province = JSON.parse(localStorage.getItem("GlobalConfig"));
|
|
|
+ if (!province) {
|
|
|
+ this.getProvinceCode();
|
|
|
+ } else {
|
|
|
+ this.province = {
|
|
|
+ name: province.name,
|
|
|
+ code: province.code,
|
|
|
+ };
|
|
|
+ }
|
|
|
+ this.checkNode = this.$route.query.companyCode || this.province.code;
|
|
|
this.typeNode = this.levels1Data[0].type;
|
|
|
this.getDataDetial();
|
|
|
this.getOrganizationList();
|
|
|
this.getStationList();
|
|
|
},
|
|
|
+ async getProvinceCode() {
|
|
|
+ const data = await GetRegionInfo();
|
|
|
+ this.province = {
|
|
|
+ name: data.name,
|
|
|
+ code: data.code,
|
|
|
+ };
|
|
|
+ localStorage.setItem("GlobalConfig", JSON.stringify(data));
|
|
|
+ },
|
|
|
+ // 打开对标框
|
|
|
+ async hidenBenchList(event) {
|
|
|
+ this.displaycheck = !this.displaycheck;
|
|
|
+ },
|
|
|
+ // 切换对标方式
|
|
|
+ changeNum(val) {
|
|
|
+ // clearInterval(this.timerDetial);
|
|
|
+
|
|
|
+ if (val === "") {
|
|
|
+ this.$confirm("是否清空对标方式?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(async () => {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "已清空!",
|
|
|
+ offset: 200,
|
|
|
+ center: true,
|
|
|
+ customClass: "s",
|
|
|
+ });
|
|
|
+ this.selectTime = "";
|
|
|
+ this.displaycheck = false;
|
|
|
+ this.$refs.childCard.changenums();
|
|
|
+ })
|
|
|
+ .catch((_) => {
|
|
|
+ this.benchChang = this.didBench;
|
|
|
+ this.benchmarkingVal = this.didBench;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ this.benchChang = val;
|
|
|
+ },
|
|
|
+ // 点击对标方式
|
|
|
+ clickBench(val) {
|
|
|
+ this.didBench = val;
|
|
|
+ let s = this.benchmarkingVal;
|
|
|
+
|
|
|
+ if (
|
|
|
+ this.benchChang !== "" &&
|
|
|
+ val !== "" &&
|
|
|
+ this.benchmarkingVal !== val &&
|
|
|
+ this.benchNum !== 0
|
|
|
+ ) {
|
|
|
+ this.$confirm("是否切换对标方式?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(async () => {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "切换成功!",
|
|
|
+ offset: 200,
|
|
|
+ center: true,
|
|
|
+ customClass: "s",
|
|
|
+ });
|
|
|
+ this.selectTime = "";
|
|
|
+ this.benchmarkingVal = val;
|
|
|
+ this.$refs.childCard.changenums();
|
|
|
+ this.displaycheck = false;
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.benchmarkingVal = s;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 删除购物车内容
|
|
|
+ removeTable(index) {
|
|
|
+ if (this.benchmarkingVal === "bench2") {
|
|
|
+ this.cardBench.splice(index, 1);
|
|
|
+ this.benchNum = this.cardBench.length;
|
|
|
+ if (this.cardBench.length === 0) {
|
|
|
+ this.displaycheck = false;
|
|
|
+ }
|
|
|
+ this.$refs.childCard.changenBench(this.cardBench);
|
|
|
+ } else if (this.benchmarkingVal === "bench1") {
|
|
|
+ let stationAname;
|
|
|
+ this.cardBench.splice(index, 1);
|
|
|
+ this.benchNum = this.cardBench.length;
|
|
|
+ if (this.cardBench.length === 0) {
|
|
|
+ this.displaycheck = false;
|
|
|
+ stationAname = "";
|
|
|
+ } else {
|
|
|
+ stationAname = this.stationData;
|
|
|
+ }
|
|
|
+ this.$refs.childCard.changenBenchs(this.cardBench, stationAname);
|
|
|
+ } else if (
|
|
|
+ this.benchmarkingVal === "bench4" ||
|
|
|
+ this.benchmarkingVal === "bench5" ||
|
|
|
+ this.benchmarkingVal === "bench3"
|
|
|
+ ) {
|
|
|
+ this.cardLists.splice(index, 1);
|
|
|
+ this.cardNmeCode.splice(index, 1);
|
|
|
+ let arr = [];
|
|
|
+ this.cardVal.forEach((s) => {
|
|
|
+ this.cardNmeCode.forEach((z) => {
|
|
|
+ if (z === s.nemCode) {
|
|
|
+ arr.push(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ this.cardVals = [...new Set(arr)];
|
|
|
+ this.cardBench = this.cardNmeCode;
|
|
|
+ if (this.cardNmeCode.length === 0) {
|
|
|
+ this.displaycheck = false;
|
|
|
+ }
|
|
|
+ this.$refs.childCard.changenBench(this.cardBench, this.cardVals);
|
|
|
+ this.benchNum = this.cardNmeCode.length;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 清空购物车
|
|
|
+ clearTable() {
|
|
|
+ this.cardBench = [];
|
|
|
+ this.benchNum = this.cardBench.length;
|
|
|
+
|
|
|
+ this.displaycheck = false;
|
|
|
+ if (this.benchmarkingVal === "bench1") {
|
|
|
+ this.$refs.childCard.changenBenchs(this.cardBench, "");
|
|
|
+ } else {
|
|
|
+ this.$refs.childCard.changenBench(this.cardBench);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ disBenTable() {
|
|
|
+ this.displaycheck = false;
|
|
|
+ },
|
|
|
+ // 点击确认后添加数据
|
|
|
+ setdata(data) {
|
|
|
+ this.cardBench = data;
|
|
|
+ this.benchNum = data.length;
|
|
|
+ if (data.length === 0) {
|
|
|
+ this.displaycheck = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 点击确认后添加数据
|
|
|
+ setdataed(data, val) {
|
|
|
+ this.cardBench = data;
|
|
|
+ this.benchNum = data.length;
|
|
|
+ this.stationData = val;
|
|
|
+ if (data.length === 0) {
|
|
|
+ this.displaycheck = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setdatas(data, val, sta, pro, lin) {
|
|
|
+ this.cardSta = sta;
|
|
|
+ this.cardPro = pro;
|
|
|
+ this.cardLin = lin;
|
|
|
+ this.cardBench = data;
|
|
|
+ this.cardVal = val;
|
|
|
+ this.benchNum = data.length;
|
|
|
+ if (data.length === 0) {
|
|
|
+ this.displaycheck = false;
|
|
|
+ }
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ getList() {
|
|
|
+ let arr = [];
|
|
|
+ let data = [];
|
|
|
+ if (this.benchmarkingVal === "bench3") {
|
|
|
+ let n = [];
|
|
|
+ this.cardVal.forEach((s) => {
|
|
|
+ this.cardBench.forEach((z) => {
|
|
|
+ if (s.nemCode === z) {
|
|
|
+ arr.push(s.aname);
|
|
|
+ data.push(s.id);
|
|
|
+ n.push(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ this.cardVals = [...new Set(n)];
|
|
|
+ } else if (
|
|
|
+ this.benchmarkingVal === "bench4" ||
|
|
|
+ this.benchmarkingVal === "bench5"
|
|
|
+ ) {
|
|
|
+ let n = [];
|
|
|
+ this.cardVal.forEach((s) => {
|
|
|
+ this.cardBench.forEach((z, index) => {
|
|
|
+ if (s.nemCode === z) {
|
|
|
+ arr.push(s.names);
|
|
|
+ data.push(s.nemCode);
|
|
|
+ n.push(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ this.cardVals = [...new Set(n)];
|
|
|
+ }
|
|
|
+ this.cardNmeCode = [...new Set(data)];
|
|
|
+ this.cardLists = [...new Set(arr)];
|
|
|
+ },
|
|
|
+ // 场内开始对标
|
|
|
+ openCurvDatasedDate() {
|
|
|
+ let arr = [];
|
|
|
+ this.cardBench.forEach((s) => {
|
|
|
+ arr.push(s);
|
|
|
+ });
|
|
|
+ if (arr.length == 2) {
|
|
|
+ this.displaycheck = false;
|
|
|
+ this.displaybench = true;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (this.$refs.siteBench) {
|
|
|
+ this.$refs.siteBench.starTime = arr[0];
|
|
|
+ this.$refs.siteBench.endTime = arr[1];
|
|
|
+ }
|
|
|
+ this.$refs.siteBench &&
|
|
|
+ this.$refs.siteBench.init(
|
|
|
+ this.stationData,
|
|
|
+ this.typeNode,
|
|
|
+ this.checkNode
|
|
|
+ );
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 开始对标(除场内对标)
|
|
|
+ openCurvDatased() {
|
|
|
+ this.displaycheck = false;
|
|
|
+ this.displaybench = true;
|
|
|
+ this.curvData();
|
|
|
+ },
|
|
|
+ curvData() {
|
|
|
+ if (this.benchmarkingVal === "bench2") {
|
|
|
+ let arr = [];
|
|
|
+ this.cardData.forEach((s) => {
|
|
|
+ this.cardBench.forEach((d) => {
|
|
|
+ if (s.name === d) {
|
|
|
+ arr.push(s.id);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.intervalBench &&
|
|
|
+ this.$refs.intervalBench.init(arr, this.typeNode, this.checkNode);
|
|
|
+ });
|
|
|
+ } else if (this.benchmarkingVal === "bench3") {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.projectBench &&
|
|
|
+ this.$refs.projectBench.init(
|
|
|
+ this.cardSta,
|
|
|
+ this.cardBench,
|
|
|
+ this.checkNode,
|
|
|
+ this.typeNode
|
|
|
+ );
|
|
|
+ });
|
|
|
+ } else if (this.benchmarkingVal === "bench4") {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.wiringBench &&
|
|
|
+ this.$refs.wiringBench.init(
|
|
|
+ this.typeNode,
|
|
|
+ this.checkNode,
|
|
|
+ this.cardSta,
|
|
|
+ this.cardPro,
|
|
|
+ this.cardBench
|
|
|
+ );
|
|
|
+ });
|
|
|
+ } else if (this.benchmarkingVal === "bench5") {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.quarterBench &&
|
|
|
+ this.$refs.quarterBench.init(
|
|
|
+ this.typeNode,
|
|
|
+ this.checkNode,
|
|
|
+ this.cardSta,
|
|
|
+ this.cardPro,
|
|
|
+ this.cardLin,
|
|
|
+ this.cardBench
|
|
|
+ );
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 关闭购物车
|
|
|
+ cancel() {
|
|
|
+ this.displaycheck = false;
|
|
|
+ },
|
|
|
//切换类型
|
|
|
levels1DataChang() {
|
|
|
this.checkNode = "";
|
|
|
this.resetAllFiller();
|
|
|
this.$router.push({ path: "/economicsOperation/comphomepageGf" });
|
|
|
},
|
|
|
+ // 获取数据
|
|
|
async getDataDetial() {
|
|
|
let { data: res } = await homePage({
|
|
|
companyId: this.checkNode,
|
|
@@ -515,6 +1054,144 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
+.window {
|
|
|
+ position: absolute;
|
|
|
+ top: 22px;
|
|
|
+ right: -45%;
|
|
|
+ height: 350px;
|
|
|
+ border: 1px solid #094493;
|
|
|
+ border-image: linear-gradient(
|
|
|
+ 0deg,
|
|
|
+ rgba(28, 156, 255, 0),
|
|
|
+ rgba(28, 156, 255, 0.6),
|
|
|
+ rgba(28, 156, 255, 0.8)
|
|
|
+ )
|
|
|
+ 1 1;
|
|
|
+ background: rgba(29, 34, 43, 0.9) !important;
|
|
|
+ border-radius: 3px;
|
|
|
+ box-shadow: 0 0 22px rgba(0, 70, 199, 0.2) inset !important;
|
|
|
+
|
|
|
+ .stitBorder {
|
|
|
+ position: absolute;
|
|
|
+ width: 70%;
|
|
|
+ height: 2px;
|
|
|
+ top: 0;
|
|
|
+ background-image: linear-gradient(to right, #1c99ff, rgba(0, 70, 199, 0));
|
|
|
+ }
|
|
|
+
|
|
|
+ //box-shadow: 0 0 22px rgb(0 70 199 / 20%) inset !important;
|
|
|
+}
|
|
|
+
|
|
|
+.ststTit {
|
|
|
+ width: 100%;
|
|
|
+ text-align: center;
|
|
|
+ height: 44px;
|
|
|
+ color: #1c99ff;
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 44px;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ //cursor: move;
|
|
|
+}
|
|
|
+
|
|
|
+.lines {
|
|
|
+ width: 99%;
|
|
|
+ height: 1px;
|
|
|
+ margin-left: 1px;
|
|
|
+ position: relative;
|
|
|
+ background: #3a3f43;
|
|
|
+
|
|
|
+ &:after {
|
|
|
+ content: "";
|
|
|
+ display: block;
|
|
|
+ width: 9px;
|
|
|
+ height: 1px;
|
|
|
+ background-color: #fff;
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:before {
|
|
|
+ content: "";
|
|
|
+ display: block;
|
|
|
+ width: 8px;
|
|
|
+ height: 1px;
|
|
|
+ background-color: #fff;
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.overHidd {
|
|
|
+ overflow: scroll;
|
|
|
+ height: 70%;
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+.footerButton {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 90%;
|
|
|
+
|
|
|
+ .footTitle {
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ display: flex;
|
|
|
+
|
|
|
+ p {
|
|
|
+ font-size: 14px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: 300;
|
|
|
+ color: #d3d3d3;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-button:last-of-type {
|
|
|
+ width: 88px;
|
|
|
+ color: rgba(28, 108, 255, 1);
|
|
|
+ border-radius: 3px;
|
|
|
+ background: rgba(28, 108, 255, 0);
|
|
|
+ border: 1px solid !important;
|
|
|
+ border-image: linear-gradient(0deg, rgba(28, 156, 255, 0), #1d74eb, #1d74eb)
|
|
|
+ 1 1 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/ .el-button.is-round {
|
|
|
+ padding: 0 10px !important;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.stations {
|
|
|
+ height: 39px;
|
|
|
+ line-height: 39px;
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ border-bottom: 1px solid rgba(76, 85, 90, 1);
|
|
|
+ justify-content: space-between;
|
|
|
+ font-size: 13px;
|
|
|
+ padding-right: 20px;
|
|
|
+ padding-left: 20px;
|
|
|
+ color: rgba(211, 211, 211, 1);
|
|
|
+ white-space: nowrap;
|
|
|
+}
|
|
|
+
|
|
|
+.photovoltaic-filter {
|
|
|
+ /deep/ .el-badge__content--danger {
|
|
|
+ background: #ff6600;
|
|
|
+ border: 1px solid #a5a5a5;
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/ .el-badge__content.is-fixed {
|
|
|
+ top: 5px;
|
|
|
+ right: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.searchColors {
|
|
|
+ background: rgba(0, 70, 199, 0.5) !important;
|
|
|
+ color: #ffffff !important;
|
|
|
+}
|
|
|
+
|
|
|
:deep(.el-input) {
|
|
|
.el-input__inner {
|
|
|
height: 25px !important;
|
|
@@ -530,6 +1207,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.photovoltaic-filter .status {
|
|
|
:deep(.el-input) {
|
|
|
.el-input__inner {
|
|
@@ -537,6 +1215,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.photovoltaic-filter .station {
|
|
|
:deep(.el-input) {
|
|
|
.el-input__inner {
|
|
@@ -545,6 +1224,10 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+.dialog-body {
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+
|
|
|
.photovoltaicStation {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
@@ -1066,7 +1749,7 @@ export default {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
margin-left: 10px;
|
|
|
-
|
|
|
+ position: relative;
|
|
|
.form-box {
|
|
|
display: flex;
|
|
|
height: 50px;
|