Explorar el Código

修复bug6-24am

liujiejie hace 11 meses
padre
commit
8a38b17a15

+ 78 - 31
src/components/map/index.vue

@@ -2,49 +2,97 @@
   <div class="map-container">
     <div id="map" class="map"></div>
     <div v-if="hoverInfo" :style="hoverStyle" class="hover-info">
-      <h3>{{hoverInfo.fieldName}}</h3>
+      <h3>{{ hoverInfo.fieldName }}</h3>
       <div>
-        <p><span>风场编号</span><span>{{hoverInfo.codeNumber}}</span></p>
-        <p><span>空气密度</span><span>{{hoverInfo.density}}</span></p>
-        <p><span>总额定容量</span><span>{{hoverInfo.ratedCapacityNumber}}</span></p>
-        <p><span>经度</span><span>{{hoverInfo.longitude}}</span></p>
-        <p><span>纬度</span><span>{{hoverInfo.latitude}}</span></p>
-        <p><span>海拔高度</span><span>{{hoverInfo.elevationHeight}}</span></p>
-        <p><span>最新分析时间</span><span> {{ $formatDate(hoverInfo.wfbrCreateTime) }}</span></p>
+        <p>
+          <span>风场编号</span><span>{{ hoverInfo.codeNumber }}</span>
+        </p>
+        <p>
+          <span>空气密度</span><span>{{ hoverInfo.density }}</span>
+        </p>
+        <p>
+          <span>总额定容量</span
+          ><span>{{ hoverInfo.ratedCapacityNumber }}</span>
+        </p>
+        <p>
+          <span>经度</span><span>{{ hoverInfo.longitude }}</span>
+        </p>
+        <p>
+          <span>纬度</span><span>{{ hoverInfo.latitude }}</span>
+        </p>
+        <p>
+          <span>海拔高度</span><span>{{ hoverInfo.elevationHeight }}</span>
+        </p>
+        <p>
+          <span>最新分析时间</span
+          ><span> {{ $formatDate(hoverInfo.wfbrCreateTime) }}</span>
+        </p>
       </div>
     </div>
 
     <div v-if="hoverfengji" :style="hoverfengjiStyle" class="hover-fengji">
-      <h3>{{hoverfengji.engineName}}</h3>
+      <h3>{{ hoverfengji.engineName }}</h3>
       <div>
-        <p><span>风机编号</span><span>{{hoverfengji.engineCode}}</span></p>
-        <p><span>额定容量</span><span>{{hoverfengji.ratedCapacity}}</span></p>
-        <p><span>海拔高度</span><span>{{hoverfengji.elevationHeight}}</span></p>
-        <p><span>轮毂高度</span><span>{{hoverfengji.hubHeight}}</span></p>
-        <p><span>经度</span><span>{{hoverfengji.longitude}}</span></p>
-        <p><span>维度</span><span>{{hoverfengji.latitude}}</span></p>
-        <p>是否标杆风机 <span>{{hoverfengji.sightcing == 1 ? '是' : '否'}}</span></p>
-        <p><span>额定风速</span><span>{{hoverfengji.rated_wind_speed}}</span></p>
-        <p><span>切入风速</span><span>{{hoverfengji.ratedCutInWindspeed}}</span></p>
-        <p><span>切出风速</span><span>{{hoverfengji.ratedCutOutWindspeed}}</span></p>
+        <p>
+          <span>风机编号</span><span>{{ hoverfengji.engineCode }}</span>
+        </p>
+        <p>
+          <span>额定容量</span><span>{{ hoverfengji.ratedCapacity }}</span>
+        </p>
+        <p>
+          <span>海拔高度</span><span>{{ hoverfengji.elevationHeight }}</span>
+        </p>
+        <p>
+          <span>轮毂高度</span><span>{{ hoverfengji.hubHeight }}</span>
+        </p>
+        <p>
+          <span>经度</span><span>{{ hoverfengji.longitude }}</span>
+        </p>
+        <p>
+          <span>维度</span><span>{{ hoverfengji.latitude }}</span>
+        </p>
+        <p>
+          是否标杆风机
+          <span>{{ hoverfengji.sightcing == 1 ? "是" : "否" }}</span>
+        </p>
+        <p>
+          <span>额定风速</span><span>{{ hoverfengji.rated_wind_speed }}</span>
+        </p>
+        <p>
+          <span>切入风速</span
+          ><span>{{ hoverfengji.ratedCutInWindspeed }}</span>
+        </p>
+        <p>
+          <span>切出风速</span
+          ><span>{{ hoverfengji.ratedCutOutWindspeed }}</span>
+        </p>
       </div>
     </div>
     <div v-if="hoverta" :style="hovertaStyle" class="hover-ta">
-      <h3>{{hoverta.anemometerName}}</h3>
+      <h3>{{ hoverta.anemometerName }}</h3>
       <div>
-        <p><span>测风塔编号</span><span>{{hoverta.anemometerCode}}</span></p>
-
-        <p><span>经度</span><span>{{hoverta.longitude}}</span></p>
-        <p><span>维度</span><span>{{hoverta.anemometerName}}</span></p>
-        <p><span>状态</span><span>{{hoverta.latitude}}</span></p>
-        <p><span>测风塔高度</span><span>{{hoverta.anemometerHeightStrings}}</span></p>
+        <p>
+          <span>测风塔编号</span><span>{{ hoverta.anemometerCode }}</span>
+        </p>
 
+        <p>
+          <span>经度</span><span>{{ hoverta.longitude }}</span>
+        </p>
+        <p>
+          <span>维度</span><span>{{ hoverta.anemometerName }}</span>
+        </p>
+        <p>
+          <span>状态</span><span>{{ hoverta.latitude }}</span>
+        </p>
+        <p>
+          <span>测风塔高度</span
+          ><span>{{ hoverta.anemometerHeightStrings }}</span>
+        </p>
       </div>
     </div>
   </div>
 </template>
 
-
 <script>
 import "ol/ol.css";
 import { Map, View, Feature } from "ol";
@@ -79,7 +127,7 @@ export default {
       hoverInfo: null,
       hoverStyle: {
         position: "absolute",
-        left: "0px", 
+        left: "0px",
         top: "0px",
       },
       hoverfengji: null,
@@ -121,8 +169,8 @@ export default {
       layers: [
         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://127.0.0.1:8010/tiles/{z}/{x}/{y}.png", //本地
+            url: "http://192.168.50.235/tiles/{z}/{x}/{y}.png", //内外
           }),
         }),
         new VectorLayer({
@@ -186,7 +234,6 @@ export default {
       }
     },
     getIconForValue(val) {
-
       switch (val) {
         case "-1":
         case -1:

+ 23 - 39
src/directives/lazyLoad.js

@@ -1,52 +1,36 @@
-// 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
-        }
-      };
+    if (el.tagName === "IMG") {
+      let hasError = false;
 
       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
+          hasError = true;
+          el.src = binding.value.errorImageSrc;
+          el.onerror = null; // Remove the onerror event to prevent loops
+          el.onload = null; // Also remove the onload event in case of error
         }
       };
 
-      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) {
+  //   if (el.tagName === "IMG" && el.src !== binding.value.src) {
+  //     let hasError = false;
+
+  //     const handleError = () => {
+  //       if (!hasError) {
+  //         hasError = true;
+  //         el.src = binding.value.errorImageSrc;
+  //         el.onerror = null; // Remove the onerror event to prevent loops
+  //         el.onload = null; // Also remove the onload event in case of error
+  //       }
+  //     };
+
+  //     el.onerror = handleError;
+  //     el.src = binding.value.src;
+  //   }
+  // },
 };

+ 77 - 35
src/views/performance/assetssDetail.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-27 09:25:45
- * @LastEditTime: 2024-06-17 16:31:33
+ * @LastEditTime: 2024-06-24 11:11:34
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/assetssDetail.vue
@@ -92,34 +92,40 @@
             v-for="(file, index) in generalFiles"
             :key="index"
             :span="getSpan(index, 'generalFiles')"
+            v-loading="loadings[index] && getFileType(file.fileAddr) === 'html'"
           >
-            <!-- <iframe
-              v-if="getFileType(file.fileAddr) === 'html'"
-              :src="fileAddrFn(file.fileAddr)"
-              ref="iframe"
-              frameborder="0"
-            ></iframe> -->
             <iframe
               v-if="getFileType(file.fileAddr) === 'html'"
               :src="file.fileAddr"
-              ref="iframe"
+              :ref="'iframe' + index"
               frameborder="0"
+              @load="iframeLoad(index)"
+              width="100%"
+              height="100%"
             ></iframe>
-
-            <!-- <img
-              v-if="getFileType(file.fileAddr) === 'html' && !fileCheckResult1"
-              src="../../assets//img/loadingError.webp"
-              alt=""
-            /> -->
             <img
               v-if="getFileType(file.fileAddr) === 'image'"
+              alt="加载图片"
+              @load="imageLoad(index)"
+              @error="imageError(index)"
               v-lazy-load="{
                 src: file.fileAddr,
-                loadingImageSrc: '../../assets/img/loading.gif',
-                errorImageSrc: '../../assets/img/loadingError.webp',
+                errorImageSrc: require('../../assets/img/loadingError.webp'),
               }"
-              alt=""
             />
+            <el-skeleton
+              v-if="loadings[index] && getFileType(file.fileAddr) === 'image'"
+              animated
+              style="width: 100%; height: 100%"
+              class="gjp"
+            >
+              <template slot="template">
+                <el-skeleton-item
+                  variant="image"
+                  style="width: 100%; height: 100%"
+                />
+              </template>
+            </el-skeleton>
           </el-col>
         </el-row>
       </el-card>
@@ -134,35 +140,46 @@
             v-for="(file, index) in diagramRelations"
             :key="index"
             :span="getSpan(index, 'diagramRelations')"
+            v-loading="
+              loadings[index + generalFiles.length] &&
+              getFileType(file.fileAddr) === 'html'
+            "
           >
-            <!-- 文件内容渲染 -->
-            <!-- <iframe
-              v-if="getFileType(file.fileAddr) === 'html'"
-              :src="file.fileAddr"
-              ref="iframe"
-              frameborder="0"
-            ></iframe> -->
             <iframe
               v-if="getFileType(file.fileAddr) === 'html'"
               :src="file.fileAddr"
-              ref="iframe"
+              :ref="'iframe' + index + generalFiles.length"
               frameborder="0"
+              width="100%"
+              height="100%"
+              @load="iframeLoad(index + generalFiles.length)"
             ></iframe>
-
-            <!-- <img
-              v-if="getFileType(file.fileAddr) === 'html' && !fileCheckResult"
-              src="../../assets/img/loadingError.webp"
-              alt=""
-            /> -->
             <img
               v-if="getFileType(file.fileAddr) === 'image'"
+              alt="加载图片"
+              @load="imageLoad(index + generalFiles.length)"
+              @error="imageError(index + generalFiles.length)"
               v-lazy-load="{
                 src: file.fileAddr,
-                loadingImageSrc: '../../assets/img/loading.gif',
-                errorImageSrc: '../../assets/img/loadingError.webp',
+                errorImageSrc: require('../../assets/img/loadingError.webp'),
               }"
-              alt=""
             />
+            <el-skeleton
+              v-if="
+                loadings[index + generalFiles.length] &&
+                getFileType(file.fileAddr) === 'image'
+              "
+              animated
+              style="width: 100%; height: 100%"
+              class="gjp"
+            >
+              <template slot="template">
+                <el-skeleton-item
+                  variant="image"
+                  style="width: 100%; height: 100%"
+                />
+              </template>
+            </el-skeleton>
           </el-col>
         </el-row>
       </el-card>
@@ -190,6 +207,7 @@ import axios from "axios";
 export default {
   data() {
     return {
+      loadings: [],
       loading: false,
       fileCheckResult: null,
       fileCheckResult1: null,
@@ -210,7 +228,26 @@ export default {
     //获取分析 分析类型、机组编号 列表
     this.getWindCodeList();
   },
+  mounted() {
+    // this.initializeLoading();
+  },
   methods: {
+    imageLoad(index) {
+      this.$set(this.loadings, index, false);
+    },
+    imageError(index) {
+      this.$set(this.loadings, index, false);
+    },
+    iframeLoad(index) {
+      this.$set(this.loadings, index, false);
+    },
+    initializeLoading() {
+      // 计算总的文件数量,包括分析总图和分析分图
+      const totalFiles =
+        this.generalFiles.length + this.diagramRelations.length;
+      // 初始化 loadings 数组,全部设置为 true,表示加载状态
+      this.loadings = new Array(totalFiles).fill(true);
+    },
     async fileAddrFn(file) {
       try {
         const res = await axios.get(file);
@@ -261,7 +298,7 @@ export default {
             response.data.length > 0 &&
             response.data[0].commentDescriptionVos) ||
           [];
-        console.log(this.generalFiles, " this.generalFiles ");
+        this.initializeLoading();
         this.loading = false;
       } catch (error) {
         console.error(error);
@@ -354,4 +391,9 @@ export default {
     }
   }
 }
+::v-deep .gjp .el-skeleton {
+  width: 90% !important;
+  height: 90% !important;
+  margin: 0 auto !important;
+}
 </style>

+ 2 - 0
src/views/system/menuMag/index.vue

@@ -251,6 +251,8 @@ export default {
     async getTableList() {
       try {
         this.loading = true;
+        console.log("  debugger;");
+        debugger;
         const result = await getAllMenu({ ...this.formInline });
         this.tableData = result.data;
         this.loading = false;

+ 5 - 2
vue.config.js

@@ -65,9 +65,9 @@ module.exports = {
     proxy: {
       "/api": {
         // target: "http://192.168.5.4:16200", // 石月
-        // target: "http://192.168.50.235:16200", //内网
+        target: "http://192.168.50.235:16200", //内网
         // target: "http://192.168.5.15:16200",
-        target: "http://106.120.102.238:16600", //外网
+        // target: "http://106.120.102.238:16600", //外网
         changeOrigin: true,
         pathRewrite: {
           "^/api": "", // 需要regit write重写的,
@@ -113,4 +113,7 @@ module.exports = {
       patterns: [],
     },
   },
+  configureWebpack: {
+    devtool: "source-map",
+  },
 };