|
@@ -1,26 +1,35 @@
|
|
<template>
|
|
<template>
|
|
<div class="home-body" style="height: 93vh">
|
|
<div class="home-body" style="height: 93vh">
|
|
- <div class="title">
|
|
|
|
|
|
+ <HeardSearch
|
|
|
|
+ :type="-2"
|
|
|
|
+ :hiddenWtList="true"
|
|
|
|
+ @firstRender="firstRender"
|
|
|
|
+ :buttons="[
|
|
|
|
+ { label: '明细', callback: mxClick },
|
|
|
|
+ { label: '搜索', callback: getPerformance },
|
|
|
|
+ ]"
|
|
|
|
+ />
|
|
|
|
+ <div class="title" v-if="false">
|
|
<el-select
|
|
<el-select
|
|
- size="mini"
|
|
|
|
- v-model="company"
|
|
|
|
- placeholder="请选择"
|
|
|
|
- @change="handleCompanyChange(company)"
|
|
|
|
|
|
+ size="mini"
|
|
|
|
+ v-model="company"
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ @change="handleCompanyChange(company)"
|
|
>
|
|
>
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in companyOptions"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="item.aname"
|
|
|
|
- :value="item.id"
|
|
|
|
|
|
+ v-for="item in companyOptions"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="item.aname"
|
|
|
|
+ :value="item.id"
|
|
>
|
|
>
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
<div class="tabCut">
|
|
<div class="tabCut">
|
|
<div
|
|
<div
|
|
- @click="tabClick(val.id)"
|
|
|
|
- :class="tabIndex === val.id ? 'active' : ''"
|
|
|
|
- v-for="val in tabOptions"
|
|
|
|
- :key="val.id"
|
|
|
|
|
|
+ @click="tabClick(val.id)"
|
|
|
|
+ :class="tabIndex === val.id ? 'active' : ''"
|
|
|
|
+ v-for="val in tabOptions"
|
|
|
|
+ :key="val.id"
|
|
>
|
|
>
|
|
<span>{{ val.name }}</span>
|
|
<span>{{ val.name }}</span>
|
|
</div>
|
|
</div>
|
|
@@ -29,17 +38,17 @@
|
|
<div class="station">
|
|
<div class="station">
|
|
场站:
|
|
场站:
|
|
<el-select
|
|
<el-select
|
|
- size="mini"
|
|
|
|
- v-model="stationObj"
|
|
|
|
- placeholder="请选择"
|
|
|
|
- @change="handleStationChange(stationObj)"
|
|
|
|
- clearable
|
|
|
|
|
|
+ size="mini"
|
|
|
|
+ v-model="stationObj"
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ @change="handleStationChange(stationObj)"
|
|
|
|
+ clearable
|
|
>
|
|
>
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in stationList"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="item.aname"
|
|
|
|
- :value="item.id"
|
|
|
|
|
|
+ v-for="item in stationList"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="item.aname"
|
|
|
|
+ :value="item.id"
|
|
>
|
|
>
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
@@ -47,17 +56,17 @@
|
|
<div class="station">
|
|
<div class="station">
|
|
项目:
|
|
项目:
|
|
<el-select
|
|
<el-select
|
|
- size="mini"
|
|
|
|
- v-model="projectObj"
|
|
|
|
- placeholder="请选择"
|
|
|
|
- @change="handleProjectChange(projectObj)"
|
|
|
|
- clearable
|
|
|
|
|
|
+ size="mini"
|
|
|
|
+ v-model="projectObj"
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ @change="handleProjectChange(projectObj)"
|
|
|
|
+ clearable
|
|
>
|
|
>
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in projectList"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="item.aname"
|
|
|
|
- :value="item.id"
|
|
|
|
|
|
+ v-for="item in projectList"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="item.aname"
|
|
|
|
+ :value="item.id"
|
|
>
|
|
>
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
@@ -66,10 +75,10 @@
|
|
线路:
|
|
线路:
|
|
<el-select size="mini" v-model="lineObj" placeholder="请选择" clearable>
|
|
<el-select size="mini" v-model="lineObj" placeholder="请选择" clearable>
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in lineList"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="item.aname"
|
|
|
|
- :value="item.id"
|
|
|
|
|
|
+ v-for="item in lineList"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="item.aname"
|
|
|
|
+ :value="item.id"
|
|
>
|
|
>
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
@@ -79,11 +88,11 @@
|
|
开始日期
|
|
开始日期
|
|
<div class="search-input">
|
|
<div class="search-input">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
- v-model="starTime"
|
|
|
|
- type="date"
|
|
|
|
- value-format="YYYY-MM-DD"
|
|
|
|
- placeholder="选择日期"
|
|
|
|
- popper-class="date-select"
|
|
|
|
|
|
+ v-model="starTime"
|
|
|
|
+ type="date"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
|
+ placeholder="选择日期"
|
|
|
|
+ popper-class="date-select"
|
|
>
|
|
>
|
|
</el-date-picker>
|
|
</el-date-picker>
|
|
</div>
|
|
</div>
|
|
@@ -92,36 +101,36 @@
|
|
结束日期
|
|
结束日期
|
|
<div class="search-input">
|
|
<div class="search-input">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
- v-model="endTime"
|
|
|
|
- type="date"
|
|
|
|
- value-format="YYYY-MM-DD"
|
|
|
|
- placeholder="选择日期"
|
|
|
|
- popper-class="date-select"
|
|
|
|
|
|
+ v-model="endTime"
|
|
|
|
+ type="date"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
|
+ placeholder="选择日期"
|
|
|
|
+ popper-class="date-select"
|
|
>
|
|
>
|
|
</el-date-picker>
|
|
</el-date-picker>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="but">
|
|
<div class="but">
|
|
<el-button round size="mini" class="buttons" @click="mxClick"
|
|
<el-button round size="mini" class="buttons" @click="mxClick"
|
|
- >搜索</el-button
|
|
|
|
|
|
+ >搜索</el-button
|
|
>
|
|
>
|
|
<el-button
|
|
<el-button
|
|
- round
|
|
|
|
- size="mini"
|
|
|
|
- class="buttons active"
|
|
|
|
- @click="getPerformance"
|
|
|
|
- >明细</el-button
|
|
|
|
|
|
+ round
|
|
|
|
+ size="mini"
|
|
|
|
+ class="buttons active"
|
|
|
|
+ @click="getPerformance"
|
|
|
|
+ >明细</el-button
|
|
>
|
|
>
|
|
<!-- <el-button round size="mini" class="buttons">导出</el-button> -->
|
|
<!-- <el-button round size="mini" class="buttons">导出</el-button> -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="tabCut1">
|
|
<div class="tabCut1">
|
|
<div
|
|
<div
|
|
- class="tabCut-item"
|
|
|
|
- @click="typeClick(val.id)"
|
|
|
|
- :class="typeIndex === val.id ? 'active' : ''"
|
|
|
|
- v-for="val in typeOptions"
|
|
|
|
- :key="val.id"
|
|
|
|
|
|
+ class="tabCut-item"
|
|
|
|
+ @click="typeClick(val.id)"
|
|
|
|
+ :class="typeIndex === val.id ? 'active' : ''"
|
|
|
|
+ v-for="val in typeOptions"
|
|
|
|
+ :key="val.id"
|
|
>
|
|
>
|
|
<span>{{ val.name }}</span>
|
|
<span>{{ val.name }}</span>
|
|
</div>
|
|
</div>
|
|
@@ -129,42 +138,42 @@
|
|
<div class="performance" style="height: 90vh">
|
|
<div class="performance" style="height: 90vh">
|
|
<div class="economicTable" style="height: 86vh">
|
|
<div class="economicTable" style="height: 86vh">
|
|
<el-table
|
|
<el-table
|
|
- :data="tableData"
|
|
|
|
- size="mini"
|
|
|
|
- :cell-style="{ padding: '6px' }"
|
|
|
|
- :row-style="{ height: '0px' }"
|
|
|
|
- stripe
|
|
|
|
- @header-click="onHeaderClick"
|
|
|
|
|
|
+ :data="tableData"
|
|
|
|
+ size="mini"
|
|
|
|
+ :cell-style="{ padding: '6px' }"
|
|
|
|
+ :row-style="{ height: '0px' }"
|
|
|
|
+ stripe
|
|
|
|
+ @header-click="onHeaderClick"
|
|
>
|
|
>
|
|
<el-table-column align="center" prop="" label="" width="1000">
|
|
<el-table-column align="center" prop="" label="" width="1000">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="name" label="名称" width="180">
|
|
<el-table-column align="center" prop="name" label="名称" width="180">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- align="center"
|
|
|
|
- prop="llfdl"
|
|
|
|
- label="理论发电量"
|
|
|
|
- width="100"
|
|
|
|
|
|
+ align="center"
|
|
|
|
+ prop="llfdl"
|
|
|
|
+ label="理论发电量"
|
|
|
|
+ width="100"
|
|
>
|
|
>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- align="center"
|
|
|
|
- prop="sjfdl"
|
|
|
|
- label="实际发电量"
|
|
|
|
- width="100"
|
|
|
|
|
|
+ align="center"
|
|
|
|
+ prop="sjfdl"
|
|
|
|
+ label="实际发电量"
|
|
|
|
+ width="100"
|
|
>
|
|
>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- align="center"
|
|
|
|
- prop="fnlly"
|
|
|
|
- :label="tabIndex === -1 ? '风能利用率%' : '光能利用率%'"
|
|
|
|
- width="100"
|
|
|
|
|
|
+ align="center"
|
|
|
|
+ prop="fnlly"
|
|
|
|
+ :label="tabIndex === -1 ? '风能利用率%' : '光能利用率%'"
|
|
|
|
+ width="100"
|
|
>
|
|
>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- align="center"
|
|
|
|
- prop="speed"
|
|
|
|
- :label="tabIndex === -1 ? '风速' : '光照'"
|
|
|
|
|
|
+ align="center"
|
|
|
|
+ prop="speed"
|
|
|
|
+ :label="tabIndex === -1 ? '风速' : '光照'"
|
|
>
|
|
>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="fjhjx1" label="故障损失">
|
|
<el-table-column align="center" prop="fjhjx1" label="故障损失">
|
|
@@ -183,7 +192,11 @@
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="xd2" label="限电停机">
|
|
<el-table-column align="center" prop="xd2" label="限电停机">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column align="center" prop="xn1" :label="tabIndex === -1 ? '待风损失' : '待机损失'">
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
+ align="center"
|
|
|
|
+ prop="xn1"
|
|
|
|
+ :label="tabIndex === -1 ? '待风损失' : '待机损失'"
|
|
|
|
+ >
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="xn2" label="手动停机">
|
|
<el-table-column align="center" prop="xn2" label="手动停机">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -195,13 +208,13 @@
|
|
</div>
|
|
</div>
|
|
<div class="left">
|
|
<div class="left">
|
|
<bar-line-chart
|
|
<bar-line-chart
|
|
- :height="height"
|
|
|
|
- v-if="showDisplay"
|
|
|
|
- :color="colors"
|
|
|
|
- :bardata="bardata"
|
|
|
|
- :lineData="lineData"
|
|
|
|
- lineName="理论发电量"
|
|
|
|
- :mxFlag="true"
|
|
|
|
|
|
+ :height="height"
|
|
|
|
+ v-if="showDisplay"
|
|
|
|
+ :color="colors"
|
|
|
|
+ :bardata="bardata"
|
|
|
|
+ :lineData="lineData"
|
|
|
|
+ lineName="理论发电量"
|
|
|
|
+ :mxFlag="true"
|
|
/>
|
|
/>
|
|
<div class="lyl" :style="{ height: tableData.length * 38 + 'px' }">
|
|
<div class="lyl" :style="{ height: tableData.length * 38 + 'px' }">
|
|
<div class="lyl-item" v-for="(item, index) in tableData" :key="index">
|
|
<div class="lyl-item" v-for="(item, index) in tableData" :key="index">
|
|
@@ -216,6 +229,7 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+import HeardSearch from "@com/heardSearch/index.vue";
|
|
import BarLineChart from "../compontent/bar-line-chart.vue";
|
|
import BarLineChart from "../compontent/bar-line-chart.vue";
|
|
import { companys } from "@/api/curveAnalyse";
|
|
import { companys } from "@/api/curveAnalyse";
|
|
import dayjs from "dayjs";
|
|
import dayjs from "dayjs";
|
|
@@ -228,10 +242,12 @@ import {
|
|
export default {
|
|
export default {
|
|
name: "performanceRankingList", //风机绩效榜
|
|
name: "performanceRankingList", //风机绩效榜
|
|
components: {
|
|
components: {
|
|
|
|
+ HeardSearch,
|
|
BarLineChart,
|
|
BarLineChart,
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ isFirstLoad: true,
|
|
company: "",
|
|
company: "",
|
|
companyOptions: [],
|
|
companyOptions: [],
|
|
stationObj: "",
|
|
stationObj: "",
|
|
@@ -384,12 +400,12 @@ export default {
|
|
this.getStation(res.data[0].id);
|
|
this.getStation(res.data[0].id);
|
|
} else {
|
|
} else {
|
|
(this.company = ""),
|
|
(this.company = ""),
|
|
- (this.stationObj = ""),
|
|
|
|
- (this.stationList = []),
|
|
|
|
- (this.projectObj = ""),
|
|
|
|
- (this.projectList = []),
|
|
|
|
- (this.lineObj = ""),
|
|
|
|
- (this.lineList = []);
|
|
|
|
|
|
+ (this.stationObj = ""),
|
|
|
|
+ (this.stationList = []),
|
|
|
|
+ (this.projectObj = ""),
|
|
|
|
+ (this.projectList = []),
|
|
|
|
+ (this.lineObj = ""),
|
|
|
|
+ (this.lineList = []);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
@@ -403,11 +419,11 @@ export default {
|
|
this.getProject(res.data[0].id);
|
|
this.getProject(res.data[0].id);
|
|
} else {
|
|
} else {
|
|
(this.stationObj = ""),
|
|
(this.stationObj = ""),
|
|
- (this.stationList = []),
|
|
|
|
- (this.projectObj = ""),
|
|
|
|
- (this.projectList = []),
|
|
|
|
- (this.lineObj = ""),
|
|
|
|
- (this.lineList = []);
|
|
|
|
|
|
+ (this.stationList = []),
|
|
|
|
+ (this.projectObj = ""),
|
|
|
|
+ (this.projectList = []),
|
|
|
|
+ (this.lineObj = ""),
|
|
|
|
+ (this.lineList = []);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
@@ -420,9 +436,9 @@ export default {
|
|
this.getLine(res.data[0].id);
|
|
this.getLine(res.data[0].id);
|
|
} else {
|
|
} else {
|
|
(this.projectObj = ""),
|
|
(this.projectObj = ""),
|
|
- (this.projectList = []),
|
|
|
|
- (this.lineObj = ""),
|
|
|
|
- (this.lineList = []);
|
|
|
|
|
|
+ (this.projectList = []),
|
|
|
|
+ (this.lineObj = ""),
|
|
|
|
+ (this.lineList = []);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
@@ -453,11 +469,11 @@ export default {
|
|
tabClick(data) {
|
|
tabClick(data) {
|
|
this.tabIndex = data;
|
|
this.tabIndex = data;
|
|
(this.stationObj = ""),
|
|
(this.stationObj = ""),
|
|
- (this.stationList = []),
|
|
|
|
- (this.projectObj = ""),
|
|
|
|
- (this.projectList = []),
|
|
|
|
- (this.lineObj = ""),
|
|
|
|
- (this.lineList = []);
|
|
|
|
|
|
+ (this.stationList = []),
|
|
|
|
+ (this.projectObj = ""),
|
|
|
|
+ (this.projectList = []),
|
|
|
|
+ (this.lineObj = ""),
|
|
|
|
+ (this.lineList = []);
|
|
this.getStation(this.company);
|
|
this.getStation(this.company);
|
|
this.getPerformance();
|
|
this.getPerformance();
|
|
},
|
|
},
|
|
@@ -480,23 +496,23 @@ export default {
|
|
}).then((res) => {
|
|
}).then((res) => {
|
|
if (res.data) {
|
|
if (res.data) {
|
|
var name = [],
|
|
var name = [],
|
|
- data = [],
|
|
|
|
- llfdl = [],
|
|
|
|
- legend = [
|
|
|
|
- "实际电量",
|
|
|
|
- "故障损失",
|
|
|
|
- "故障受累",
|
|
|
|
- "检修损失",
|
|
|
|
- "检修受累",
|
|
|
|
- "电网受累",
|
|
|
|
- "天气受累",
|
|
|
|
- "限电降出",
|
|
|
|
- "限电停机",
|
|
|
|
- "待风损失",
|
|
|
|
- "手动停机",
|
|
|
|
- "正常发电",
|
|
|
|
- "缺陷降出",
|
|
|
|
- ];
|
|
|
|
|
|
+ data = [],
|
|
|
|
+ llfdl = [],
|
|
|
|
+ legend = [
|
|
|
|
+ "实际电量",
|
|
|
|
+ "故障损失",
|
|
|
|
+ "故障受累",
|
|
|
|
+ "检修损失",
|
|
|
|
+ "检修受累",
|
|
|
|
+ "电网受累",
|
|
|
|
+ "天气受累",
|
|
|
|
+ "限电降出",
|
|
|
|
+ "限电停机",
|
|
|
|
+ "待风损失",
|
|
|
|
+ "手动停机",
|
|
|
|
+ "正常发电",
|
|
|
|
+ "缺陷降出",
|
|
|
|
+ ];
|
|
res.data.forEach((item, index) => {
|
|
res.data.forEach((item, index) => {
|
|
name.push(item.name);
|
|
name.push(item.name);
|
|
llfdl.push(item.llfdl);
|
|
llfdl.push(item.llfdl);
|
|
@@ -551,9 +567,21 @@ export default {
|
|
},
|
|
},
|
|
mxClick() {
|
|
mxClick() {
|
|
this.$router.push(
|
|
this.$router.push(
|
|
- "/economicsOperation/benchmarkingManagement/performanceRankingList"
|
|
|
|
|
|
+ "/economicsOperation/benchmarkingManagement/performanceRankingList"
|
|
);
|
|
);
|
|
},
|
|
},
|
|
|
|
+ firstRender(searchOptions) {
|
|
|
|
+ this.tabIndex = searchOptions.category;
|
|
|
|
+ this.getype = searchOptions.category;
|
|
|
|
+ this.companyid = searchOptions.orgId;
|
|
|
|
+ this.beginDate = searchOptions.dateRange?.[0] || "";
|
|
|
|
+ this.endDate = searchOptions.dateRange?.[1] || "";
|
|
|
|
+ this.stationObj = searchOptions.station;
|
|
|
|
+ if (this.isFirstLoad) {
|
|
|
|
+ this.isFirstLoad = false;
|
|
|
|
+ this.getPerformance();
|
|
|
|
+ }
|
|
|
|
+ },
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
@@ -695,9 +723,9 @@ export default {
|
|
position: absolute;
|
|
position: absolute;
|
|
width: 1px;
|
|
width: 1px;
|
|
background-image: linear-gradient(
|
|
background-image: linear-gradient(
|
|
- #3a4043 0%,
|
|
|
|
- #3a4043 40%,
|
|
|
|
- transparent 50%
|
|
|
|
|
|
+ #3a4043 0%,
|
|
|
|
+ #3a4043 40%,
|
|
|
|
+ transparent 50%
|
|
);
|
|
);
|
|
background-size: 1px 9px;
|
|
background-size: 1px 9px;
|
|
margin-top: 45px;
|
|
margin-top: 45px;
|