liujiejie пре 10 месеци
родитељ
комит
82e340f532

+ 6 - 4
src/components/map/index.vue

@@ -103,7 +103,7 @@
         </p>
       </div>
     </div>
-
+<!-- 这是测试 -->
     <el-dialog title="异常描述" :visible.sync="dialogVisible" width="50%">
       <el-table :data="tableData" max-height="500" style="width: 100%">
         <el-table-column prop="analysisTypeName" label="类型" width="300">
@@ -111,6 +111,7 @@
         <el-table-column prop="errDesc" label="描述"> </el-table-column>
       </el-table>
     </el-dialog>
+    
   </div>
 </template>
 
@@ -196,8 +197,9 @@ export default {
         new TileLayer({
           source: new XYZ({
             // url: "http://127.0.0.1:8010/tiles/{z}/{x}/{y}.png", //本地
-            url: "http://192.168.50.235/tiles/{z}/{x}/{y}.png", //内网
-            // url: "http://106.120.102.238:18000/tiles/{z}/{x}/{y}.png", //外网
+            // url: "http://192.168.50.235/tiles/{z}/{x}/{y}.png", //内网
+           // url: "http://106.120.102.238:18000/tiles/{z}/{x}/{y}.png", //外网
+             url: "http://10.96.137.5:9080/tiles/{z}/{x}/{y}.png", 
           }),
         }),
         new VectorLayer({
@@ -301,7 +303,7 @@ export default {
         if (features && features.length > 0) {
           const feature = features.at(0);
           const val = feature.get("data").val;
-          if (val == "1") {
+          if (val == "1" || val =="30" ) {
             this.hoverInfo = feature.get("data");
             this.hoverStyle.left = `${evt.pixel[0] + 10}px`;
             this.hoverStyle.top = `${evt.pixel[1] - 150}px`;

+ 2 - 1
src/views/admin/cockpitManage/Index.vue

@@ -221,7 +221,8 @@ export default {
           message: "当前风场正在分析中",
           type: "warning",
         });
-      } else if (val === "1" || val === 1) {
+      } else if (val === "1" || val === 1 || val === "30" || val === 30 ) {
+        console.log("打包成功")
         this.$router.push({
           path: "cockpitManage/electronic-map",
           query: {

+ 1 - 1
src/views/ledger/component/windsiteup.vue

@@ -66,7 +66,7 @@
         <el-upload
           class="uploaddemo2"
           :file-list="resourcefileList"
-          action="http://192.168.50.235:16200/energy-manage-service/api/check/upload"
+          action="http://10.96.137.5/energy-manage-service/api/check/upload"
           :multiple="false"
           :before-upload="resourcebeforeUpload"
           :limit="1"

+ 11 - 1
src/views/ledger/milltype.vue

@@ -387,6 +387,15 @@ import {
 
 export default {
   data() {
+    var validateMachineTypeCode = (rule, value, callback) => {
+    const regex = /^[a-zA-Z0-9./\\-]+$/;
+    if (!value) {
+      callback(new Error('请输入机型型号'));
+    } else if (!regex.test(value)) {
+      callback(new Error('只能输入数字,字母,小数点,斜杠,横杠'));
+    } else {
+      callback();
+    }};
     return {
       loading: false,
       tableData: [],
@@ -417,7 +426,8 @@ export default {
       curvedMotionTypeOptions: [],
       rules: {
         machineTypeCode: [
-          { required: true, message: "请输入机型型号", trigger: "blur" },
+        { required: true, message: '请输入机型型号', trigger: 'blur' },
+        { validator: validateMachineTypeCode, trigger: 'blur' }
         ],
         manufacturerName: [
           { required: true, message: "请输入厂商名称", trigger: "blur" },

+ 40 - 12
src/views/performance/assetssDetail.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-27 09:25:45
- * @LastEditTime: 2024-09-12 17:21:52
+ * @LastEditTime: 2024-09-13 11:03:49
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/assetssDetail.vue
@@ -46,10 +46,10 @@
             <el-form-item label="分析类型" prop="analysisTypeCode">
               <el-select v-model="formInfo.analysisTypeCode" size="small">
                 <el-option
-                  v-for="item in analysisTypeList"
-                  :key="item.analysisTypeCode"
-                  :label="item.analysisTypeName"
-                  :value="item.analysisTypeCode"
+                  v-for="(item, indAns) in analysisTypeList"
+                  :key="item.analysisTypeCode + indAns"
+                  :label="item.analysisTypeName + indAns"
+                  :value="item.analysisTypeCode + indAns"
                 ></el-option>
               </el-select>
             </el-form-item>
@@ -58,10 +58,10 @@
             <el-form-item label="机组名称" prop="fieldEngineCode">
               <el-select v-model="formInfo.fieldEngineCode" size="small">
                 <el-option
-                  v-for="item in windEngineGroupList"
-                  :key="item.engineCode"
-                  :label="item.engineName"
-                  :value="item.engineCode"
+                  v-for="(item,indWind) in windEngineGroupList"
+                  :key="item.engineCode+indWind"
+                  :label="item.engineName+indWind"
+                  :value="item.engineCode+indWind"
                 ></el-option>
               </el-select>
             </el-form-item>
@@ -125,7 +125,7 @@
             " -->
             <el-col
               v-for="(file, index) in generalFiles"
-              :key="index"
+              :key="index + file.fileAddr + file.createTime"
               :span="24"
               class="col_content"
               :style="{
@@ -157,7 +157,7 @@
           <el-row class="assetssConent">
             <el-col
               v-for="(file, index) in diagramRelations"
-              :key="index"
+              :key="index + file.fileAddr + file.createTime"
               :span="24"
               :style="{
                 display:
@@ -228,6 +228,8 @@ export default {
         fieldEngineCode: null,
         analysisTypeCode: null,
       },
+      csvData: [], // 解析后的数据
+      csvHeaders: [], // CSV 表头
       rules: {},
       flage: false,
       csvData: [], // 解析后的数据
@@ -396,7 +398,6 @@ export default {
         if (this.formInfo.analysisTypeCode === "yaw_error") {
           this.getCsvData(response.data[0].generalFiles[0].fileAddr);
         }
-
         this.initializeLoading();
         this.loading = false;
       } catch (error) {
@@ -404,6 +405,33 @@ export default {
         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);
+        });
+    },
     async getWindCodeList() {
       this.loading = true;
       try {

+ 55 - 27
src/views/performance/components/EditAnalysis.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-29 09:14:23
- * @LastEditTime: 2024-09-13 09:47:21
+ * @LastEditTime: 2024-09-13 10:51:05
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/EditAnalysis.vue
@@ -90,30 +90,24 @@
             </el-table>
           </div>
         </el-col>
-        <!-- 其他类型展示的 图表 ,只展示图表不必要展示表格 -->
         <el-col
           v-loading="htmlLoading"
-          v-if="
-            form.configAnalysis === 'power_curve'
-            // ||
-            // form.configAnalysis === 'cp'
-          "
+          v-if="form.configAnalysis === 'power_curve'"
           :span="12"
         >
           <div class="right">
             <PlotlyCharts :lineMarkerData="lineMarkerData"></PlotlyCharts>
           </div>
         </el-col>
-        <el-col :span="24" v-if="form.configAnalysis === 'yaw_error'"
+        <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>
@@ -182,20 +176,18 @@
             </el-table>
           </div>
         </el-col>
-        <el-col
-          v-loading="htmlLoading"
-          v-if="form.configAnalysis === 'power_curve'"
-          :span="12"
-        >
+
+        <!-- 其他类型展示的 图表 ,只展示图表不必要展示表格 -->
+        <!-- <el-col v-loading="htmlLoading" v-else :span="24">
           <div class="right">
             <PlotlyCharts></PlotlyCharts>
           </div>
-        </el-col>
+        </el-col> -->
         <el-col
           :span="12"
           v-if="
-            form.configAnalysis !== 'power_curve' &&
-            form.configAnalysis !== 'yaw_error'
+            form.configAnalysis !== 'yaw_error' &&
+            form.configAnalysis !== 'power_curve'
           "
           ><div class="left">
             <div>
@@ -262,10 +254,13 @@
           :span="12"
           v-loading="htmlLoading"
           v-if="
-            form.configAnalysis !== 'power_curve' &&
-            form.configAnalysis !== 'yaw_error'
+            form.configAnalysis !== 'yaw_error' &&
+            form.configAnalysis !== 'power_curve'
           "
+          &&
+          this.csvData.length
         >
+          0 >
           <div class="right">
             <iframe
               v-if="htmlLoading"
@@ -356,7 +351,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,
@@ -372,6 +368,8 @@ export default {
       windDetail: {},
       flage: false,
       lineMarkerData: [],
+      csvData: [], // 解析后的数据
+      csvHeaders: [], // CSV 表头
       rules: {
         commentTypeName: {
           required: true,
@@ -502,12 +500,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 = [];