|
@@ -66,7 +66,7 @@
|
|
|
></el-empty>
|
|
|
<el-card v-if="!noData" shadow="always" class="box-card">
|
|
|
<el-row>
|
|
|
- <el-col
|
|
|
+ <!-- <el-col
|
|
|
:span="12"
|
|
|
v-if="
|
|
|
form.configAnalysis === 'power_curve'
|
|
@@ -89,21 +89,20 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" v-if="form.configAnalysis === 'yaw_error'"
|
|
|
+ </el-col> -->
|
|
|
+ <el-col
|
|
|
+ :span="24"
|
|
|
+ v-if="form.configAnalysis === 'yaw_error' && this.csvData.length > 0"
|
|
|
><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 :data="csvData" border style="width: 100%" align="center">
|
|
|
+ <el-table-column prop="engine_name" label="风机名称">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="yaw_error1" label="误差值">
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
- <el-col
|
|
|
+ <!-- <el-col
|
|
|
v-loading="htmlLoading"
|
|
|
v-if="form.configAnalysis === 'power_curve'"
|
|
|
:span="12"
|
|
@@ -111,19 +110,14 @@
|
|
|
<div class="right">
|
|
|
<PlotlyCharts></PlotlyCharts>
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
+ </el-col> -->
|
|
|
<!-- 其他类型展示的 图表 ,只展示图表不必要展示表格 -->
|
|
|
<!-- <el-col v-loading="htmlLoading" v-else :span="24">
|
|
|
<div class="right">
|
|
|
<PlotlyCharts></PlotlyCharts>
|
|
|
</div>
|
|
|
</el-col> -->
|
|
|
- <el-col
|
|
|
- :span="12"
|
|
|
- v-if="
|
|
|
- form.configAnalysis !== 'power_curve' ||
|
|
|
- form.configAnalysis !== 'yaw_error'
|
|
|
- "
|
|
|
+ <el-col :span="12" v-if="form.configAnalysis !== 'yaw_error'"
|
|
|
><div class="left">
|
|
|
<div>
|
|
|
<span>机组名称:</span>
|
|
@@ -188,11 +182,11 @@
|
|
|
<el-col
|
|
|
:span="12"
|
|
|
v-loading="htmlLoading"
|
|
|
- v-if="
|
|
|
- form.configAnalysis !== 'power_curve' ||
|
|
|
- form.configAnalysis === 'yaw_error'
|
|
|
- "
|
|
|
+ v-if="form.configAnalysis !== 'yaw_error'"
|
|
|
+ &&
|
|
|
+ this.csvData.length
|
|
|
>
|
|
|
+ 0 >
|
|
|
<div class="right">
|
|
|
<iframe
|
|
|
v-if="htmlLoading"
|
|
@@ -283,6 +277,8 @@ import {
|
|
|
import { getWindEngineGroup } from "@/api/ledger";
|
|
|
import TinymceEditor from "@/components/Tinymce.vue";
|
|
|
import PlotlyCharts from "./PlotlyCharts.vue";
|
|
|
+import Papa from "papaparse";
|
|
|
+import axios from "axios";
|
|
|
export default {
|
|
|
components: {
|
|
|
TinymceEditor,
|
|
@@ -297,6 +293,8 @@ export default {
|
|
|
engineCode: null, //台账机组编号
|
|
|
windDetail: {},
|
|
|
flage: false,
|
|
|
+ csvData: [], // 解析后的数据
|
|
|
+ csvHeaders: [], // CSV 表头
|
|
|
rules: {
|
|
|
commentTypeName: {
|
|
|
required: true,
|
|
@@ -429,12 +427,42 @@ export default {
|
|
|
? this.editableTabs[0].commentTypeCode
|
|
|
: "";
|
|
|
}
|
|
|
+ if (this.form.configAnalysis === "yaw_error") {
|
|
|
+ this.getCsvData(response.data[0].generalFiles[0].fileAddr);
|
|
|
+ }
|
|
|
this.loading = false;
|
|
|
} catch (error) {
|
|
|
console.error(error);
|
|
|
this.loading = false;
|
|
|
}
|
|
|
},
|
|
|
+ getCsvData(url) {
|
|
|
+ // 使用 axios 获取 CSV 文件
|
|
|
+ axios
|
|
|
+ .get(url, { responseType: "blob" }) // 确保数据以 blob 格式返回
|
|
|
+ .then((response) => {
|
|
|
+ const reader = new FileReader();
|
|
|
+ reader.onload = (e) => {
|
|
|
+ const csvText = e.target.result;
|
|
|
+ Papa.parse(csvText, {
|
|
|
+ header: true, // 使用 CSV 第一行作为键
|
|
|
+ complete: (result) => {
|
|
|
+ this.csvHeaders = Object.keys(result.data[0]);
|
|
|
+ this.csvData = result.data.filter(
|
|
|
+ (row) => Object.keys(row).length
|
|
|
+ ); // 过滤空行
|
|
|
+ },
|
|
|
+ error: (error) => {
|
|
|
+ console.error("CSV 解析错误:", error);
|
|
|
+ },
|
|
|
+ });
|
|
|
+ };
|
|
|
+ reader.readAsText(response.data); // 读取 blob 数据
|
|
|
+ })
|
|
|
+ .catch((error) => {
|
|
|
+ console.error("无法获取 CSV 文件:", error);
|
|
|
+ });
|
|
|
+ },
|
|
|
mergeData(arr, brr) {
|
|
|
// 创建一个新的结果数组
|
|
|
const result = [];
|