|
|
@@ -1,7 +1,7 @@
|
|
|
<!--
|
|
|
* @Author: your name
|
|
|
* @Date: 2024-05-29 09:14:23
|
|
|
- * @LastEditTime: 2025-01-07 09:08:52
|
|
|
+ * @LastEditTime: 2025-01-09 09:41:56
|
|
|
* @LastEditors: bogon
|
|
|
* @Description: In User Settings Edit
|
|
|
* @FilePath: /performance-test/src/views/performance/components/EditAnalysis.vue
|
|
|
@@ -147,26 +147,67 @@
|
|
|
</template>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
- <el-col :span="24" v-if="form.configAnalysis === '故障统计'"
|
|
|
+ <el-col :span="24" v-if="form.configAnalysis === 'fault'"
|
|
|
><div class="left">
|
|
|
- <el-table
|
|
|
- :data="tableData"
|
|
|
- border
|
|
|
- style="width: 100%"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- <el-table-column prop="date" label="故障次数(次)">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="name" label="故障时长(秒)">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="name" label="损失电量(KW/h)">
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
+ <template v-for="itemCsv in zongFaultCsvData">
|
|
|
+ <el-table
|
|
|
+ :data="filteredData(itemCsv)"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <el-table-column prop="fault_detail" label="故障类型">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="count" sortable label="故障次数(次)">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="fault_time_sum"
|
|
|
+ sortable
|
|
|
+ label="故障时长(秒)"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="right">
|
|
|
+ <template slot="header" slot-scope="scope">
|
|
|
+ <el-input
|
|
|
+ v-model="search"
|
|
|
+ size="mini"
|
|
|
+ placeholder="输入故障类型关键字搜索"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </template>
|
|
|
+ <template v-for="itemCsv in fenFaultCsvData">
|
|
|
+ <el-table
|
|
|
+ :data="filteredFenData(itemCsv)"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <el-table-column prop="wind_turbine_name" label="风机名称">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="count" sortable label="故障次数(次)">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="fault_time"
|
|
|
+ sortable
|
|
|
+ label="故障时长(秒)"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="right">
|
|
|
+ <template slot="header" slot-scope="scope">
|
|
|
+ <el-input
|
|
|
+ v-model="searchFen"
|
|
|
+ size="mini"
|
|
|
+ placeholder="输入风机名称关键字搜索"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
-
|
|
|
<!-- 其他类型展示的 图表 ,只展示图表不必要展示表格 -->
|
|
|
-
|
|
|
<template v-if="form.configAnalysis === 'power_curve'">
|
|
|
<el-col :span="24">
|
|
|
<div
|
|
|
@@ -599,6 +640,8 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ search: "",
|
|
|
+ searchFen: "",
|
|
|
tableData: [],
|
|
|
noData: false,
|
|
|
htmlLoading: false,
|
|
|
@@ -645,6 +688,10 @@ export default {
|
|
|
graphFilesData: [],
|
|
|
powerHtmlZongData: [],
|
|
|
powerHtmlFenData: [],
|
|
|
+ zongFaultCsvHeader: [],
|
|
|
+ zongFaultCsvData: [],
|
|
|
+ fenFaultCsvHeader: [],
|
|
|
+ fenFaultCsvData: [],
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
|
@@ -656,6 +703,37 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ // 根据搜索关键字过滤数据
|
|
|
+ filteredData() {
|
|
|
+ return (itemCsv) => {
|
|
|
+ // 如果有搜索关键词,则过滤数据
|
|
|
+ if (this.search) {
|
|
|
+ return itemCsv.data.filter((item) => {
|
|
|
+ return item.fault_detail
|
|
|
+ .toLowerCase()
|
|
|
+ .includes(this.search.toLowerCase());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 没有搜索关键词时返回所有数据
|
|
|
+ return itemCsv.data;
|
|
|
+ };
|
|
|
+ },
|
|
|
+ filteredFenData() {
|
|
|
+ return (itemCsv) => {
|
|
|
+ // 如果有搜索关键词,则过滤数据
|
|
|
+ if (this.searchFen) {
|
|
|
+ return itemCsv.data.filter((item) => {
|
|
|
+ return item.wind_turbine_name
|
|
|
+ .toLowerCase()
|
|
|
+ .includes(this.searchFen.toLowerCase());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 没有搜索关键词时返回所有数据
|
|
|
+ return itemCsv.data;
|
|
|
+ };
|
|
|
+ },
|
|
|
+ },
|
|
|
created() {
|
|
|
//获取分析 分析类型、机组编号 列表
|
|
|
// this.getWindCodeList();
|
|
|
@@ -788,6 +866,15 @@ export default {
|
|
|
this.fetchCsvData("production_indicator", item.fileAddr);
|
|
|
}
|
|
|
});
|
|
|
+ } else if (this.form.configAnalysis === "fault") {
|
|
|
+ //总图处理
|
|
|
+ response.data[0].generalFiles.map((item) => {
|
|
|
+ if (item.fileAddr) {
|
|
|
+ this.productionIndicatorCsvHeader = [];
|
|
|
+ this.productionIndicatorCsvData = [];
|
|
|
+ this.fetchCsvData("fault", item.fileAddr);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -978,6 +1065,24 @@ export default {
|
|
|
.filter((row) => Object.keys(row).length)
|
|
|
.slice(0, result.data.length - 1),
|
|
|
}); // 过滤空行
|
|
|
+ } else if (analysisType === "fault") {
|
|
|
+ if (Object.keys(result.data[0]).includes("fault_detail")) {
|
|
|
+ //总图故障统计展示
|
|
|
+ this.zongFaultCsvHeader.push(Object.keys(result.data[0]));
|
|
|
+ this.zongFaultCsvData.push({
|
|
|
+ data: result.data
|
|
|
+ .filter((row) => Object.keys(row).length)
|
|
|
+ .slice(0, result.data.length - 1),
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ //分机型故障统计处理
|
|
|
+ this.fenFaultCsvHeader.push(Object.keys(result.data[0]));
|
|
|
+ this.fenFaultCsvData.push({
|
|
|
+ data: result.data
|
|
|
+ .filter((row) => Object.keys(row).length)
|
|
|
+ .slice(0, result.data.length - 1),
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
error: (error) => {
|