Browse Source

姜瑞修改部分

rui.jiang 1 year ago
parent
commit
4fc44b427e

+ 2 - 2
src/api/performance.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2024-06-03 09:29:50
- * @LastEditTime: 2024-06-12 15:51:54
+ * @LastEditTime: 2024-06-14 10:48:35
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/api/performance。.js
@@ -119,7 +119,7 @@ export function analysisDetail(data) {
     data,
   });
 }
-//分析详情  事件/编辑
+//分析详情  事件
 export function analysis(data) {
   return request({
     url: "/energy-manage-service/analysis/analysis",

BIN
src/assets/img/loading.gif


BIN
src/assets/img/loadingError.webp


+ 4 - 0
src/components/Tinymce.vue

@@ -6,6 +6,7 @@
       :options="editorOptions"
       @ready="onEditorReady"
     />
+    <button @click="submit">确定</button>
   </div>
 </template>
 
@@ -50,6 +51,9 @@ export default {
     };
   },
   methods: {
+    submit() {
+      console.log(this.content, "this.$refs.quillEditor.getContents();");
+    },
     onEditorReady(editor) {
       console.log(editor, "editor");
     },

+ 52 - 0
src/directives/lazyLoad.js

@@ -0,0 +1,52 @@
+// src/directives/lazyLoad.js
+export default {
+  inserted(el, binding) {
+    let hasError = false;
+
+    if (el.tagName === "IMG" || el.tagName === "IFRAME") {
+      el.src = require("../assets/img/loading.gif");
+      const handleLoad = () => {
+        if (!hasError) {
+          el.src = binding.value.src;
+          el.onload = null; // Remove the onload event to prevent loops
+        }
+      };
+
+      const handleError = () => {
+        hasError = true;
+        el.src = require("../assets/img/loadingError.webp");
+        el.onerror = null; // Remove the onerror event to prevent loops
+      };
+
+      el.onload = handleLoad;
+      el.onerror = handleError;
+
+      el.src = binding.value.src;
+    }
+  },
+  update(el, binding) {
+    let hasError = false;
+
+    if (el.src !== binding.value.src) {
+      el.src = require("../assets/img/loading.gif");
+
+      const handleLoad = () => {
+        if (!hasError) {
+          el.src = binding.value.src;
+          el.onload = null; // Remove the onload event to prevent loops
+        }
+      };
+
+      const handleError = () => {
+        hasError = true;
+        el.src = require("../assets/img/loadingError.webp");
+        el.onerror = null; // Remove the onerror event to prevent loops
+      };
+
+      el.onload = handleLoad;
+      el.onerror = handleError;
+
+      el.src = binding.value.src;
+    }
+  },
+};

+ 8 - 8
src/main.js

@@ -17,7 +17,7 @@ Vue.component("SvgIcons", SvgIcons);
 import qs from "qs";
 // 将自动注册所有组件为全局组件
 import dataV from "@jiaminghi/data-view";
-
+import lazyLoad from "./directives/lazyLoad";
 Vue.use(dataV);
 Vue.prototype.$qs = qs;
 // Vue.prototype.$tinymce = tinymce;
@@ -37,23 +37,23 @@ if (store.state.auth.userInfo.permission !== undefined) {
 }
 
 //开始结束时间转换
-Vue.prototype.$formatDate = function(date) {
+Vue.prototype.$formatDate = function (date) {
   const year = date.getFullYear();
-  const month = (date.getMonth() + 1).toString().padStart(2, '0'); // Adding 1 to month since it's zero-based
-  const day = date.getDate().toString().padStart(2, '0');
+  const month = (date.getMonth() + 1).toString().padStart(2, "0"); // Adding 1 to month since it's zero-based
+  const day = date.getDate().toString().padStart(2, "0");
   return `${year}-${month}-${day}`;
 };
+Vue.directive("lazy-load", lazyLoad);
 
 // 时间戳转换
-Vue.prototype.$formatDate = function(timestamp) {
+Vue.prototype.$formatDate = function (timestamp) {
   const date = new Date(timestamp);
   const year = date.getFullYear();
-  const month = String(date.getMonth() + 1).padStart(2, '0');
-  const day = String(date.getDate()).padStart(2, '0');
+  const month = String(date.getMonth() + 1).padStart(2, "0");
+  const day = String(date.getDate()).padStart(2, "0");
   return `${year}-${month}-${day}`;
 };
 
-
 new Vue({
   router,
   store,

+ 1 - 1
src/styles/base.css

@@ -221,7 +221,7 @@ input {
 
 body {
   background: #ffffff;
-  font-size: 22px;
+  /* font-size: 22px; */
   color: #333;
   font-family: "HYQiHei", "Helvetica Neue", Helvetica, Arial, "PingFang SC",
     "Hiragino Sans GB", "Heiti SC", "MicrosoftYaHei", "WenQuanYi Micro Hei",

+ 1 - 0
src/views/dataAdministration/index.vue

@@ -173,6 +173,7 @@
               :rules="batchCodeRules"
             >
               <el-select
+                filterable
                 v-model="newform.batchCode"
                 placeholder="请选择批次编号"
                 size="small"

+ 4 - 0
src/views/home/components/Menu.vue

@@ -231,6 +231,10 @@ export default {
   width: 200px;
   min-height: 400px;
 }
+.stop-animation,
+.active-animation {
+  font-size: 20px;
+}
 
 
 

+ 227 - 52
src/views/performance/assetssDetail.vue

@@ -1,75 +1,177 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-27 09:25:45
- * @LastEditTime: 2024-06-12 17:26:14
+ * @LastEditTime: 2024-06-13 17:00:03
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/assetssDetail.vue
 -->
 <template>
   <div class="global-variable">
-    <h2 style="text-align: center">分析历史记录总览</h2>
-    <el-form
-      :model="formInfo"
-      :rules="rules"
-      ref="formInfo"
-      label-width="100px"
-      class="demo-ruleForm"
-    >
-      <el-form-item label="分析类型" prop="analysisTypeCode">
-        <el-select v-model="formInfo.analysisTypeCode" size="small">
-          <el-option
-            v-for="item in analysisTypeList"
-            :key="item.typeCode"
-            :label="item.typeName"
-            :value="item.typeCode"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="机组编号" prop="fieldEngineCode">
-        <el-select v-model="formInfo.fieldEngineCode" size="small">
-          <el-option
-            v-for="item in windEngineGroupList"
-            :key="item"
-            :label="item"
-            :value="item"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-    </el-form>
-    <el-button type="primary" @click="() => $router.go(-1)">返回</el-button>
-    <h4>分析时间:{{ detailInfo.generalFiles[0].createTime }}</h4>
-    <img :src="detailInfo.generalFiles[0].fileAddr" alt="" />
+    <el-row type="flex" justify="space-between">
+      <el-col :span="8"
+        ><el-button
+          type="text"
+          style="font-size: 20px"
+          icon="el-icon-arrow-left"
+          @click="() => $router.go(-1)"
+          >返回</el-button
+        ></el-col
+      >
+      <el-col :span="8"
+        ><h2 style="text-align: center">分析历史记录总览</h2></el-col
+      >
+      <el-col :span="8">
+        <div style="text-align: end; font-size: 16px">
+          分析时间:{{
+            generalFiles.length > 0 ? generalFiles[0].createTime : "/"
+          }}
+        </div>
+      </el-col>
+    </el-row>
     <el-card class="box-card analysisType">
-      <el-row>
-        <el-col :span="12">
-          <iframe src="/html/A01.html" frameborder="0"></iframe
-        ></el-col>
-        <el-col :span="12">
-          <img src="../../assets/Wechat.jpg" alt=""
-        /></el-col>
-      </el-row>
-    </el-card>
-    <el-card class="box-card">
-      <div v-for="o in 4" :key="o" class="text item">
-        {{ "列表内容 " + o }}
-      </div>
+      <el-form
+        :model="formInfo"
+        :rules="rules"
+        ref="ruleForm"
+        label-width="100px"
+        inline
+        class="demo-ruleForm"
+      >
+        <el-row type="flex" justify="space-between">
+          <el-col :span="8">
+            <el-form-item label="分析类型" prop="analysisTypeCode">
+              <el-select v-model="formInfo.analysisTypeCode" size="small">
+                <el-option
+                  v-for="item in analysisTypeList"
+                  :key="item.typeCode"
+                  :label="item.typeName"
+                  :value="item.typeCode"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="机组编号" prop="fieldEngineCode">
+              <el-select v-model="formInfo.fieldEngineCode" size="small">
+                <el-option
+                  v-for="item in windEngineGroupList"
+                  :key="item"
+                  :label="item"
+                  :value="item"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item
+              class="searchFrom"
+              style="display: flex; justify-content: end"
+            >
+              <el-button type="primary" @click="onSubmit" size="small"
+                >查询</el-button
+              >
+              <el-button @click="reset('ruleForm')" size="small"
+                >重置</el-button
+              >
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
     </el-card>
+    <el-empty :image-size="200" v-if="flage"></el-empty>
+    <div v-else>
+      <el-card class="box-card analysisType" v-if="generalFiles.length > 0">
+        <div slot="header" class="clearfix">
+          <span style="font-weight: 700; font-size: 16px">分析总图</span>
+        </div>
+        <el-row class="assetssConent">
+          <el-col
+            v-for="(file, index) in generalFiles"
+            :key="index"
+            :span="getSpan(index, 'generalFiles')"
+          >
+            <iframe
+              v-if="getFileType(file.fileAddr) === 'html'"
+              :src="file.fileAddr"
+              ref="iframe"
+              frameborder="0"
+            ></iframe>
+            <img
+              v-else-if="getFileType(file.fileAddr) === 'image'"
+              v-lazy-load="{
+                src: file.fileAddr,
+                loadingImageSrc: '../../assets/img/loading.gif',
+                errorImageSrc: '../../assets/img/loadingError.webp',
+              }"
+              alt=""
+            />
+          </el-col>
+        </el-row>
+      </el-card>
+      <el-card class="box-card analysisType" v-if="diagramRelations.length > 0">
+        <div slot="header" class="clearfix">
+          <span style="font-weight: 700; font-size: 16px">分析分图</span>
+        </div>
+        <el-row class="assetssConent">
+          <el-col
+            v-for="(file, index) in diagramRelations"
+            :key="index"
+            :span="getSpan(index, 'diagramRelations')"
+          >
+            <!-- 文件内容渲染 -->
+            <iframe
+              v-if="getFileType(file.fileAddr) === 'html'"
+              :src="file.fileAddr"
+              ref="iframe"
+              frameborder="0"
+            ></iframe>
+            <img
+              v-else-if="getFileType(file.fileAddr) === 'image'"
+              v-lazy-load="{
+                src: file.fileAddr,
+                loadingImageSrc: '../../assets/img/loading.gif',
+                errorImageSrc: '../../assets/img/loadingError.webp',
+              }"
+              alt=""
+            />
+          </el-col>
+        </el-row>
+      </el-card>
+      <el-card
+        class="box-card"
+        v-for="o in commentDescriptionVos"
+        :key="o.commentTypeName"
+      >
+        <div slot="header" class="clearfix">
+          <span style="font-weight: 700; font-size: 16px">{{
+            o.commentTypeName
+          }}</span>
+        </div>
+        <div class="text item">
+          <div v-html="o.comment"></div>
+        </div>
+      </el-card>
+    </div>
   </div>
 </template>
 <script>
 import { analysisDetail, analysisEditQuery } from "@/api/performance";
+
 export default {
   data() {
     return {
       analysisTypeList: [],
       windEngineGroupList: [],
-      detailInfo: {},
+      generalFiles: [],
+      diagramRelations: [],
+      commentDescriptionVos: [],
       formInfo: {
         fieldEngineCode: null,
         analysisTypeCode: null,
       },
       rules: {},
+      flage: false,
     };
   },
   created() {
@@ -77,6 +179,16 @@ export default {
     this.getWindCodeList();
   },
   methods: {
+    // 查询
+    onSubmit() {
+      this.getDetailInfo();
+    },
+    // 重置
+    reset(formName) {
+      this.$refs[formName].resetFields();
+
+      this.getWindCodeList();
+    },
     async getDetailInfo() {
       const formData = new FormData();
       formData.append("batchCode", this.$route.query.batchCode);
@@ -85,8 +197,27 @@ export default {
       //获取详情信息
       try {
         const response = await analysisDetail(formData);
-        console.log(response.data, "data");
-        this.detailInfo = response.data[0];
+        if (response.data.length === 0 || response.data === null) {
+          this.flage = true;
+        } else {
+          this.flage = false;
+        }
+        this.generalFiles =
+          (response.data &&
+            response.data.length > 0 &&
+            response.data[0].generalFiles) ||
+          [];
+        this.diagramRelations =
+          (response.data &&
+            response.data.length > 0 &&
+            response.data[0].diagramRelations) ||
+          [];
+        this.commentDescriptionVos =
+          (response.data &&
+            response.data.length > 0 &&
+            response.data[0].commentDescriptionVos) ||
+          [];
+        console.log(this.generalFiles, " this.generalFiles ");
       } catch (error) {
         console.error(error);
       }
@@ -100,12 +231,52 @@ export default {
         this.windEngineGroupList = response.data.windEngineGroupList;
         this.formInfo.fieldEngineCode = response.data.windEngineGroupList[0];
         this.formInfo.analysisTypeCode =
-          response.data.analysisTypeList[0].typeCode;
+          response.data.analysisTypeList.length > 0
+            ? response.data.analysisTypeList[0].typeCode
+            : "";
         this.getDetailInfo();
       } catch (error) {
         console.error(error);
       }
     },
+    getSpan(index, type) {
+      let isLastElement = false;
+      if (type === "generalFiles") {
+        isLastElement = index === this.generalFiles.length - 1;
+      } else if (type === "diagramRelations") {
+        isLastElement = index === this.diagramRelations.length - 1;
+      }
+      const isOddPosition = (index + 1) % 2 !== 0;
+      if (isLastElement && isOddPosition) {
+        return 24;
+      }
+      return 12;
+    },
+    getFileType(url) {
+      // 使用 URL 对象解析 URL
+      const parsedUrl = new URL(url);
+      // 获取路径名部分
+      let pathname = parsedUrl.pathname;
+      // 截取路径名,去除加密乱码字符部分
+      const index = pathname.indexOf(".html");
+      if (index !== -1) {
+        pathname = pathname.slice(0, index + 5); // '.html' 的长度是 5
+      } else {
+        pathname = pathname.slice(0, pathname.indexOf(".png") + 4); // '.png' 的长度是 4
+      }
+      // 正则表达式匹配图片扩展名
+      const imageExtensions = /\.(png|jpg|jpeg|gif|bmp|svg)$/i;
+      // 正则表达式匹配 HTML 扩展名
+      const htmlExtensions = /\.html?$/i;
+
+      if (imageExtensions.test(pathname)) {
+        return "image";
+      } else if (htmlExtensions.test(pathname)) {
+        return "html";
+      } else {
+        return "unknown";
+      }
+    },
   },
 };
 </script>
@@ -113,8 +284,11 @@ export default {
 .box-card {
   margin-top: 20px;
 }
+.imageDetail {
+  padding: 80px 100px;
+}
 .analysisType {
-  .el-row {
+  .assetssConent {
     height: 450px !important;
     .el-col-12 {
       width: 50%;
@@ -126,7 +300,8 @@ export default {
     }
     img {
       width: 100%;
-      height: 100%;
+      height: auto;
+      margin: 0 auto;
     }
   }
 }

+ 102 - 81
src/views/performance/components/analysisEvent.vue

@@ -1,21 +1,21 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-29 09:13:51
- * @LastEditTime: 2024-06-12 17:15:00
+ * @LastEditTime: 2024-06-14 11:53:42
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/analysisEvent.vue
 -->
 <template>
   <div>
-    <el-form ref="form" :model="form" label-width="120px">
+    <el-form ref="form" :model="form" label-position="right">
       <el-row type="flex" justify="end">
         <el-col :span="5">
           <el-form-item class="searchFrom">
             <el-button type="primary" @click="onSubmit" size="small"
               >分析</el-button
             >
-            <el-button size="small">重置</el-button>
+            <el-button size="small" @click="resetForm">重置</el-button>
             <i @click="drawer = true" class="el-icon-setting"></i>
           </el-form-item>
         </el-col>
@@ -95,11 +95,12 @@
                 v-if="checkedCities.find((item) => item === '滤除月份')"
               >
                 <el-date-picker
+                  value-format="timestamp"
                   width="200"
                   size="small"
-                  type="dates"
+                  type="months"
                   v-model="form.excludingMonths"
-                  placeholder="选择一个或多个日期"
+                  placeholder="选择一个或多个"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -110,6 +111,7 @@
                 v-if="checkedCities.find((item) => item === '分析时间')"
               >
                 <el-date-picker
+                  value-format="timestamp"
                   size="small"
                   v-model="picker"
                   type="daterange"
@@ -215,7 +217,7 @@
           v-if="checkedCities.find((item) => item === '图像设置')"
         >
           <el-row :gutter="5">
-            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
+            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
               <el-form-item label="直驱发电机转速轴系">
                 <div class="demo-input-suffix">
                   <el-input
@@ -242,7 +244,7 @@
                 </div>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
+            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
               <el-form-item label="非直驱发电机转速轴系设置">
                 <div class="demo-input-suffix">
                   <el-input
@@ -269,7 +271,7 @@
                 </div>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
+            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
               <el-form-item label="直驱发电机转矩轴系">
                 <div class="demo-input-suffix">
                   <el-input
@@ -296,7 +298,7 @@
                 </div>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
+            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
               <el-form-item label="非直驱发电机转矩轴系">
                 <div class="demo-input-suffix">
                   <el-input
@@ -323,7 +325,7 @@
                 </div>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
+            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
               <el-form-item label="风能利用系数">
                 <div class="demo-input-suffix">
                   <el-input
@@ -350,7 +352,7 @@
                 </div>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
+            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
               <el-form-item label="叶尖转速比">
                 <div class="demo-input-suffix">
                   <el-input
@@ -377,7 +379,7 @@
                 </div>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
+            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
               <el-form-item label="有功功率">
                 <div class="demo-input-suffix">
                   <el-input
@@ -404,7 +406,7 @@
                 </div>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
+            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
               <el-form-item label="桨距角">
                 <div class="demo-input-suffix">
                   <el-input
@@ -441,24 +443,37 @@
           ><div class="left">
             <div>
               <span>机组编号:</span>
-              <el-select v-model="value" placeholder="请选择" size="small">
+              <el-select
+                v-model="engineCode"
+                placeholder="请选择机组编号"
+                size="small"
+                clearable
+                @change="handleEngineCode"
+              >
                 <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
+                  v-for="item in windEngineGroupList"
+                  :key="item"
+                  :label="item"
+                  :value="item"
+                ></el-option>
               </el-select>
             </div>
-            <div>1.额定功率(Rated Power):指发电机组在标准工况下</div>
-            <div>2.发电机类型(Generator Type):</div>
-            <div>3.经度(Longitude):</div>
-            <div>4.维度(Dimensionality):</div>
-            <div>5.海拔高度(Altitude):</div>
-            <div>6.并网时间(Grid connection time):</div>
-            <div>7.是否标杆(Benchmarking or not):</div>
-            <div>8.地理位置(Location):不同地理位置的气候条件</div>
+            <div>1.额定容量:{{ windDetail.ratedCapacity }}</div>
+            <!-- <div>2.发电机类型(Generator Type):{{}}</div> -->
+            <div>2.风机编号:{{ windDetail.engineCode }}</div>
+            <div>3.经度(Longitude):{{ windDetail.longitude }}</div>
+            <div>4.维度(Dimensionality):{{ windDetail.latitude }}</div>
+            <div>5.海拔高度(Altitude):{{ windDetail.elevationHeight }}</div>
+            <div>6.风机名称:{{ windDetail.engineName }}</div>
+            <div>
+              7.是否标杆(Benchmarking or not):{{ windDetail.sightcing }}
+            </div>
+            <div>8.风场编号:{{ windDetail.fieldCode }}</div>
+            <div>9.轮毂高度:{{ windDetail.hubHeight }}</div>
+            <div>10.机型编号:{{ windDetail.millTypeCode }}</div>
+            <div>11.切入风速:{{ windDetail.ratedCutInWindspeed }}</div>
+            <div>12.切出风速:{{ windDetail.ratedCutOutWindspeed }}</div>
+            <!-- <div>8.地理位置(Location):不同地理位置的气候条件{{}}</div>
             <div>
               9.供应商信息(Manufacturer
               Information):制造商的信誉、技术水平和售后
@@ -466,7 +481,7 @@
             <div>
               10.维护需求(Maintenance Requirements):风力发电机组需要定期
             </div>
-            <div>11.预期寿命(Expected Lifetime):风力发电机组的设计寿命</div>
+            <div>11.预期寿命(Expected Lifetime):风力发电机组的设计寿命</div> -->
           </div>
         </el-col>
         <el-col :span="12">
@@ -551,15 +566,17 @@
 </template>
 <script>
 import { analysisEditQuery, analysis } from "@/api/performance";
+import { getWindEngineGroup } from "@/api/ledger";
 export default {
   data() {
     return {
+      engineCode: null, //台账机组编号
       picker: [],
       form: {
         configAnalysis: null, //分析类型
         powerFarmID: null, //风场编号//通过路由获取的默认传递的
         dataBatchNum: null, //批次号
-        scada: "minute", //scada数类型
+        scada: null, //scada数类型
         turbines: [], //机组编号
         beginTime: null, //开始时间
         endTime: null, //结束时间
@@ -593,23 +610,10 @@ export default {
       direction: "rtl",
       value: "",
       options: [],
-      editableTabsValue: "2",
-      editableTabs: [
-        {
-          title: "Tab 1",
-          name: "1",
-          content: "Tab 1 content",
-        },
-        {
-          title: "Tab 2",
-          name: "2",
-          content: "Tab 2 content",
-        },
-      ],
-      formData: { content: "<p>Hello, Tinymce!</p>" },
       tabIndex: 2,
       analysisTypeList: [],
       windEngineGroupList: [],
+      windDetail: {},
     };
   },
   created() {
@@ -617,10 +621,33 @@ export default {
     this.getWindCodeList();
   },
   methods: {
+    handleEngineCode(e) {
+      console.log(e);
+      this.engineCode = e;
+      this.getWindEngList();
+    },
+    async getWindEngList() {
+      try {
+        const res = await getWindEngineGroup({
+          engineCode: this.engineCode,
+        });
+        this.windDetail = res.data;
+      } catch (error) {
+        console.error(error);
+      }
+    },
     async getAnalysis() {
+      console.log(this.form.excludingMonths, "过滤月份");
+      console.log(this.picker, "分析时间");
       try {
         await analysis({
           ...this.form,
+          beginTime: this.picker[0], //开始时间
+          endTime: this.picker[1], //结束时间
+        });
+        this.$message({
+          type: "success",
+          message: "已分析请前往分析详情中查看结果",
         });
       } catch (error) {
         console.error(error);
@@ -633,11 +660,11 @@ export default {
         });
         this.form.powerFarmID = this.$route.query.fieldEngineCode;
         this.form.dataBatchNum = this.$route.query.batchCode;
-        this.form.scada = "minute";
-        this.form.configAnalysis = [response.data.analysisTypeList[0].typeCode];
         this.analysisTypeList = response.data.analysisTypeList;
         this.windEngineGroupList = response.data.windEngineGroupList;
-        this.getAnalysis();
+        this.engineCode = response.data.windEngineGroupList[0];
+        //获取台账机组编号
+        this.getWindEngList();
       } catch (error) {
         console.error(error);
         this.$router.go(-1);
@@ -667,47 +694,41 @@ export default {
         })
         .catch((_) => {});
     },
-    // 鼠标单击的事件
-    onClick(e, editor) {
-      console.log("Element clicked");
-      console.log(e);
-      console.log(editor);
-    },
+
     onSubmit() {
+      this.getAnalysis();
       console.log("submit!");
     },
+    resetForm() {
+      this.picker = [];
+      this.form = {
+        configAnalysis: null, //分析类型
+        powerFarmID: this.$route.query.fieldEngineCode, //风场编号//通过路由获取的默认传递的
+        dataBatchNum: this.$route.query.batchCode, //批次号
+        scada: null, //scada数类型
+        turbines: [], //机组编号
+        beginTime: null, //开始时间
+        endTime: null, //结束时间
+        excludingMonths: null, //过滤月份
+        valueWindSpeed: [], //风速值最大最小 数组第一值为min  第二个 max
+        valuePitchAngle: [], //桨距角最大最小
+        valueActivePower: [], //有功功率
+        valueGeneratorSpeed: [], //发电机转速
+        //图像
+        dGeneratorSpeed: [], //直驱发电机转速轴系 第一个值为步长 第二个min 第三个 max
+        iGeneratorSpeed: [], //非直驱发电机转速轴系设置
+        dGeneratorTorque: [], //直驱发电机转矩轴系
+        iGeneratorTorque: [], //非直驱发电机转矩轴系
+        cp: [], //风能利用系数轴系
+        tsr: [], //叶尖速比轴系
+        pitchAngle: [], //桨距角轴系
+        activePower: [], //有功功率轴系
+      };
+    },
     // 清空内容
     clear() {
       this.$refs.editor.clear();
     },
-    handleTabsEdit(targetName, action) {
-      if (action === "add") {
-        let newTabName = ++this.tabIndex + "";
-        this.editableTabs.push({
-          title: "New Tab",
-          name: newTabName,
-          content: "New Tab content",
-        });
-        this.editableTabsValue = newTabName;
-      }
-      if (action === "remove") {
-        let tabs = this.editableTabs;
-        let activeName = this.editableTabsValue;
-        if (activeName === targetName) {
-          tabs.forEach((tab, index) => {
-            if (tab.name === targetName) {
-              let nextTab = tabs[index + 1] || tabs[index - 1];
-              if (nextTab) {
-                activeName = nextTab.name;
-              }
-            }
-          });
-        }
-
-        this.editableTabsValue = activeName;
-        this.editableTabs = tabs.filter((tab) => tab.name !== targetName);
-      }
-    },
   },
 };
 </script>

+ 2 - 2
vue.config.js

@@ -66,8 +66,8 @@ module.exports = {
       "/api": {
         // target: "http://192.168.5.4:16200", // 石月
         // target: "http://192.168.50.235:16200", //内网
-        // target: "http://192.168.5.15:16200",
-        target: "http://106.120.102.238:16600", //外网
+        target: "http://192.168.5.15:16200",
+        // target: "http://106.120.102.238:16600", //外网
         changeOrigin: true,
         pathRewrite: {
           "^/api": "", // 需要regit write重写的,