Browse Source

Merge branch 'master' of http://124.70.43.205:3000/xieshengjie/jn_sis_zhfx

baiyanting 2 years ago
parent
commit
fed2a96bdf

+ 0 - 2
.gitignore

@@ -13,5 +13,3 @@ package-lock.json
 .idea/
 public/static/cesium/Assets/Textures/temp
 public/static/cesium/Assets/Textures/temp/
-jn_sis_zhfx(1).zip.baiduyun.p.downloading
-jn_sis_zhfx(1).zip

+ 4 - 1
package.json

@@ -12,14 +12,16 @@
     "fix-memory-limit": "cross-env LIMIT=4096 increase-memory-limit"
   },
   "dependencies": {
+    "14": "^3.1.6",
     "@antv/x6": "^1.24.4",
     "@arcgis/core": "^4.19.3",
     "@element-plus/icons-vue": "^0.2.4",
     "@open-wc/webpack-import-meta-loader": "git+https://github.com/KmjKoishi/webpack-import-meta-loader-fixed.git",
     "animate.css": "3.5",
     "axios": "^0.21.1",
-    "cesium": "^1.78.0",
+    "cesium": "1.78.0",
     "core-js": "^3.6.5",
+    "cross-env": "^7.0.3",
     "echarts": "^5.1.1",
     "echarts-gl": "^2.0.4",
     "echarts-stat": "^1.2.0",
@@ -27,6 +29,7 @@
     "file-saver": "^2.0.5",
     "font-awesome": "^4.7.0",
     "html2canvas": "^1.0.0-rc.7",
+    "increase-memory-limit": "^1.0.7",
     "jquery": "^3.6.0",
     "jspdf": "^2.3.1",
     "jszip": "^3.7.1",

+ 4 - 5
src/components/chart/bar/multiple-bar-chart.vue

@@ -151,13 +151,12 @@ export default {
     color: {
       type: Array,
       default: () => [
-        "#05bb4c",
+        // "#05bb4c",
+        "#ba3237",
+         "#e17e23",
         "#4b55ae",
-        "#fa8c16",
-        "#f8de5b",
-        "#1a93cf",
         "#c531c7",
-        "#bd3338",
+         "#ccf0d3",
       ],
     },
     showAnimation: {

+ 1 - 1
src/components/chart/line/double-line-chart-home.vue

@@ -123,7 +123,7 @@ export default {
     return {
       id: "",
       chart: null,
-      color: ["#05bb4c", "#f8de5b", "#4b55ae", "#fa8c16", "#1DA0D7", "#DD5044"],
+      color: ["#05bb4c", "#C531C7", "#4b55ae", "#fa8c16", "#1DA0D7", "#DD5044"],
       newlist: null,
     };
   },

+ 8 - 1
src/components/chart/pie/dual-pie-chart.vue

@@ -77,7 +77,14 @@ export default {
       let legendData = [...legend1, ...legend2];
 
       let option = {
-        color: ["#1893ce", "#edbf00", "#039178", "#ae4802", "#ea8b00"],
+        color: [  
+        "#e17e23",
+        "#ba3237",
+        "#c531c7",
+        "#4b55ae",
+        "#ccf0d3",
+        "#05bb4c",
+        ],
         tooltip: {
           trigger: "item",
           backgroundColor: this.$store.state.themeName === "dark"

+ 1 - 1
src/store/index.js

@@ -14,7 +14,7 @@ const state = {
   moudleName: "",
 };
 
-//改变状态的方法
+//改变状态的方法`
 const mutations = {
   loadingStore(state, tag) {
     state.loading = tag;

+ 3 - 3
src/views/Decision/Decision1.vue

@@ -300,12 +300,12 @@ export default {
       value4: "",
       value5: "",
       barColor: [
-        "#4b55ae",
+        "#05bb4c",
         "#e17e23",
         "#ba3237",
         "#c531c7",
-        "#ffffff",
-        "#05bb4c",
+        "#ccf0d3",
+        "#4b55ae",
       ],
       TypeClass: 1, //风场,项目,集电线路 的按钮颜色,默认第一个
       bardata: [],

+ 7 - 5
src/views/LightMatrix1/LightMatrix1.vue

@@ -181,8 +181,8 @@
                     {{
                       (sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][
                         fcItem.key
-                      ] / 1000
-                      ).toFixed(2)|| "0"
+                      ] 
+                      ).toFixed(``)|| "0"
                     }}
                   </div>
                 </div>
@@ -759,7 +759,7 @@ export default {
   }
 
   .panel-box {
-    margin-top: 0.7407vh;
+    margin-top: 1.481vh;
     flex-grow: 1;
 
     .panel-title {
@@ -781,8 +781,9 @@ export default {
 
         .sub-title-item {
           display: flex;
-          // flex: 1;
+          flex: 1;
           justify-content: center;
+          align-items: center;
           margin-left: 1px;
 
           .sub-title {
@@ -790,6 +791,7 @@ export default {
             color: @gray;
             font-size: 12px;
             margin: 0 0.556vh 0 1.481vh;
+            font-weight: bold;
           }
 
           .sub-count {
@@ -1070,7 +1072,7 @@ export default {
 
     .panel-title {
       width: 100%;
-      height: @titleHeight;
+      // height: @titleHeight;
       line-height: @titleHeight;
       background-color: fade(@darkgray, 40%);
 

+ 8 - 1
src/views/WindSite/pages/Map2.vue

@@ -45,6 +45,9 @@
         <zkyqMap v-if="periodIndex === 'ZK01_GC'" ref="maps"></zkyqMap>
         <!-- 米梁局 -->
         <mljMap v-if="periodIndex === 'MLJ01_GC'" ref="maps"></mljMap>
+        
+        <syMap2 v-if="periodIndex === 'SY02_GC'" ref="maps"></syMap2>
+         <syMap v-if="periodIndex === 'SY01_GC'" ref="maps"></syMap>
     </div>
 </template>
 <script>
@@ -70,6 +73,8 @@ import bhbMap from "./components/bhb-map.vue";
 import pldhbMap from "./components/pldhb-map.vue";
 import zkyqMap from "./components/zkyq-map.vue";
 import mljMap from "./components/mlj-map.vue";
+import syMap2 from "./components/sy2-map.vue";
+import syMap from "./components/sy-map.vue";
 
 export default {
     components: {
@@ -93,7 +98,9 @@ export default {
         xwtMap,
         yfMap2,
         bhbMap,
-        bhbMap2
+        bhbMap2,
+        syMap2,
+        syMap
     },
     data() {
         return {

+ 24 - 24
src/views/WindSite/pages/Matrix.vue

@@ -84,16 +84,16 @@
           </div>
         </div>
         <div class="statusArea">
-          <div class="runArea" @click="handleClick(0)">
-            <span class="svg-icon svg-icon-sm" :class="'svg-icon-green'" style="margin:0 5px">
+          <div class="runArea" @click="handleClick(0)" style="background: rgba(75, 85, 174, 0.15);border: 1px solid #4b55ae;">
+            <span class="svg-icon svg-icon-sm" :class="'svg-icon-blue'" style="margin:0 5px">
               <SvgIcon svgid="svg-standby"></SvgIcon>
             </span>
             <div>待机(台):</div>
             <div>{{ fczbmaps.djts }}</div>
           </div>
-          <div class="runArea" style="background: rgba(75, 85, 174, 0.15);border: 1px solid #4b55ae;"
+          <div class="runArea" style="background: rgba(5, 187, 76, 0.2);border: 1px solid #05BB4C;"
             @click="handleClick(1)">
-            <span class="svg-icon svg-icon-sm" :class="'svg-icon-blue'" style="margin:0 5px">
+            <span class="svg-icon svg-icon-sm" :class="'svg-icon-green'" style="margin:0 5px">
               <SvgIcon svgid="svg-normal-power"></SvgIcon>
             </span>
             <div>运行(台):</div>
@@ -333,10 +333,10 @@ export default {
     getColor(fjzt) {
       switch (fjzt) {
         case 1:
-          return "green";
+          return "blue";
           break;
         case 0:
-          return "blue";
+          return "green";
           break;
         case 2:
           return "red";
@@ -1098,8 +1098,8 @@ export default {
         flex-direction: column;
         height: 91px;
         width: 60px;
-        background-color: rgba(5, 187, 76, 0.1);
-        border: 1px solid rgba(5, 187, 76, 0.6);
+        background-color:  rgba(75, 85, 174, 0.15);
+        border: 1px solid  rgba(84, 100, 238, 0.15);
         margin-right: 2px;
         margin-bottom: 5px;
 
@@ -1107,9 +1107,9 @@ export default {
           display: flex;
           align-items: center;
           justify-content: center;
-          background-color: rgba(6, 184, 75, .2);
+          background-color:  rgba(84, 100, 238, 0.15);
           height: 30px;
-          border-bottom: 1px solid rgba(5, 187, 76, 0.6);
+          border-bottom: 1px solid  rgba(84, 100, 238, 0.15);
           font-size: 14px;
           color: #FFFFFF;
           width: 59px;
@@ -1130,8 +1130,8 @@ export default {
         flex-direction: column;
         height: 91px;
         width: 60px;
-        background-color: rgba(75, 85, 174, 0.1);
-        border: 1px solid rgba(75, 85, 174, 0.6);
+        background-color: rgba(5, 187, 76, 0.2);
+        border: 1px solid rgba(5, 187, 76, 0.2);
         margin-right: 2px;
         margin-bottom: 5px;
 
@@ -1139,9 +1139,9 @@ export default {
           display: flex;
           align-items: center;
           justify-content: center;
-          background-color: rgba(75, 85, 174, 0.6);
+          background-color: rgba(5, 187, 76, 0.2);
           height: 30px;
-          border-bottom: 1px solid rgba(75, 85, 174, 0.6);
+          border-bottom: 1px solid rgba(5, 187, 76, 0.2);
           font-size: 14px;
           color: #FFFFFF;
           width: 59px;
@@ -1766,8 +1766,8 @@ export default {
         align-items: center;
         width: 140px;
         height: 27px;
-        background: rgba(5, 187, 76, 0.2);
-        border: 1px solid #05BB4C;
+        // background: rgba(5, 187, 76, 0.2);
+        // border: 1px solid #05BB4C;
         border-radius: 4px;
         margin-right: 2px;
       }
@@ -1848,8 +1848,8 @@ export default {
         flex-direction: column;
         height: 91px;
         width: 60px;
-        background-color: rgba(5, 187, 76, 0.1);
-        border: 1px solid rgba(5, 187, 76, 0.6);
+        background-color: rgba(69, 87, 245, 0.15);
+        border: 1px solid rgba(65, 82, 243, 0.15);
         margin-right: 2px;
         margin-bottom: 5px;
 
@@ -1857,9 +1857,9 @@ export default {
           display: flex;
           align-items: center;
           justify-content: center;
-          background-color: rgba(6, 184, 75, .2);
+          background-color: rgba(84, 100, 238, 0.15);
           height: 30px;
-          border-bottom: 1px solid rgba(5, 187, 76, 0.6);
+          border-bottom: 1px solid rgba(84, 100, 238, 0.15);
           font-size: 14px;
           color: #FFFFFF;
           width: 59px;
@@ -1880,8 +1880,8 @@ export default {
         flex-direction: column;
         height: 91px;
         width: 82px;
-        background-color: rgba(75, 85, 174, 0.1);
-        border: 1px solid rgba(75, 85, 174, 0.6);
+        background-color: rgba(5, 187, 76, 0.2);
+        border: 1px solid rgba(5, 187, 76, 0.2);
         margin-right: 2px;
         margin-bottom: 5px;
 
@@ -1889,9 +1889,9 @@ export default {
           display: flex;
           align-items: center;
           justify-content: center;
-          background-color: rgba(75, 85, 174, 0.6);
+          background-color: rgba(5, 187, 76, 0.2);
           height: 30px;
-          border-bottom: 1px solid rgba(75, 85, 174, 0.6);
+          border-bottom: 1px solid rgba(5, 187, 76, 0.2);
           font-size: 14px;
           color: #FFFFFF;
           width: 81px;

BIN
src/views/WindSite/pages/components/img/dmt_sy1.png


BIN
src/views/WindSite/pages/components/img/dmt_sy2.png


+ 272 - 0
src/views/WindSite/pages/components/sy-map.vue

@@ -0,0 +1,272 @@
+<template>
+    <div class="svg-map">
+        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+            viewBox="0 0 1955 940" :style="
+                'enable-background: new 0 0 866 359; left: ' +
+                svgLeft +
+                '; top: ' +
+                svgTop +
+                ';'
+            " xml:space="preserve" :width="svgWidth" :height="svgHeight">
+            <defs>
+                <g id="nx-map-line">
+                    <line class="nx-map-line" x1="25" y1="25" x2="25" y2="80" stroke="#edbf03" stroke-width="1" />
+                    <circle class="nx-map-up-circle" cx="25" cy="25" r="2" fill="#edbf03" />
+                </g>
+                <g id="nx-map-circle">
+                    <circle class="nx-map-down-circle-1" cx="25" cy="80" r="3" fill="#edbf03" />
+                    <circle class="nx-map-down-circle-2" :class="{ 'nx-map-down-circle-loop': c1 }" cx="25" cy="80"
+                        r="9" stroke="#edbf03" stroke-width="1" fill="none" />
+                    <circle class="nx-map-down-circle-3" :class="{ 'nx-map-down-circle-loop': c2 }" cx="25" cy="80"
+                        r="16" opacity="0.6" stroke="#edbf03" stroke-width="1" fill="none" />
+                </g>
+            </defs>
+        <g>
+            <image style="overflow: visible" width="2050" height="1220" class="map-base" xlink:href="./img/dmt_sy1.png" transform="matrix(1 0 0 1 0 -100)"></image>
+            <g class="item-label-hover" v-for="(item, index) in dataList" :key="index">
+            <svg data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+                :x="String(Number(item.x)-45)" :y="String(Number(item.y)-60)" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392"
+                xml:space="preserve" class="windmill">
+                <image v-if="item.name != '升压站'" data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+                <!-- 运行 -->
+                <image v-if="item.type === 2 || item.type === 3" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_green.png" class="turnCircle"></image>
+                <!-- 受累 -->
+                <image v-if="item.type === 12 || item.type === 13" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_white.png"></image>
+                <!-- 限电 -->
+                <image v-if="item.type === 4 || item.type === 5" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_purple.png" class="turnCircle-slow"></image>
+                <!-- 离线 -->
+                <image v-if="item.type === 10 || item.type === 11" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_black.png"></image>
+                <!-- 待机 -->
+                <image v-if="item.type === 0 || item.type === 1" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_blue.png"></image>
+                <!-- 故障 -->
+                <image v-if="item.type === 6 || item.type === 7" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_red.png"></image>
+                <!-- 检修 -->
+                <image v-if="item.type === 8 || item.type === 9" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_orange.png"></image>
+                <!-- 升压站 -->
+                <image v-if="item.name == '升压站'" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/png/booster-station.png"></image>
+            </svg>
+            <!-- <text class="mapKey" :x="Number(item.x)+25" :y="Number(item.y) + 90" fill="#ffffff" font-size="14">{{ item.name }}</text> -->
+            <text v-if="item.name != '升压站'" class="mapKey" :x="Number(item.x)+25" :y="Number(item.y) + 90" fill="#ffffff" font-size="14">{{ item.name }}</text>
+            <text v-else class="mapKey" :x="Number(item.x)+10" :y="Number(item.y) + 80" fill="#ffffff" font-size="14">{{ item.name }}</text>
+            <g class="isshow" v-if="item.name != '升压站'">
+                <rect :x="Number(item.x) + 55" :y="Number(item.y) + 20" width="70" height="50" stroke="#46C55A35" fill="#000000" opacity="0.8" />
+                <text class="mapValue" :x="Number(item.x) + 60" :y="Number(item.y) + 40" fill="#ffffff" font-size="14">{{ item.fs }}m/s</text>
+                <text class="mapValue" :x="Number(item.x) + 60" :y="Number(item.y) + 60" fill="#ffffff" font-size="14">{{ item.gl }}kw</text>
+            </g>
+            </g>
+        </g>
+        <g>
+            <svg :x="-20" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_green.png"></image>
+            </svg>
+            <text :x="43" :y="920" fill="#ffffff" font-size="14"> 运行 </text>
+            <svg :x="40" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_white.png"></image>
+            </svg>
+            <text :x="107" :y="920" fill="#ffffff" font-size="14"> 受累 </text>
+            <svg :x="100" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_purple.png"></image>
+            </svg>
+            <text :x="165" :y="920" fill="#ffffff" font-size="14"> 限电 </text>
+            <svg :x="160" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_black.png"></image>
+            </svg>
+            <text :x="229" :y="920" fill="#ffffff" font-size="14"> 离线 </text>
+            <svg :x="220" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_blue.png"></image>
+            </svg>
+            <text :x="288" :y="920" fill="#ffffff" font-size="14"> 待机 </text>
+            <svg :x="280" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_red.png"></image>
+            </svg>
+            <text :x="347" :y="920" fill="#ffffff" font-size="14"> 故障 </text>
+            <svg :x="340" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_orange.png"></image>
+            </svg>
+            <text :x="410" :y="920" fill="#ffffff" font-size="14"> 检修 </text>
+        </g>
+            <!-- <g>
+                <image style="overflow: visible" width="2050" height="1110" class="map-base"
+                    xlink:href=""
+                    transform="matrix(1 0 0 1 0 -50)"></image>
+                <g class="item-label-hover" v-for="(item, index) in dataList" :key="index">
+                    <image v-if="item.type === 0 || item.type === 1" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/green.png"></image>
+                    <image v-if="item.type === 2 || item.type === 3" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/blue.png"></image>
+                    <image v-if="item.type === 6 || item.type === 7" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/red.png"></image>
+                    <image v-if="item.type === 12 || item.type === 13" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/white.png"></image>
+                    <image v-if="item.type === 8 || item.type === 9" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/orange.png"></image>
+                    <image v-if="item.type === 4 || item.type === 5" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/purple.png"></image>
+                    <image v-if="item.type === 10 || item.type === 11" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/black.png"></image>
+                    <text class="mapKey" :x="Number(item.x) + 26" :y="Number(item.y) + 90" fill="#ffffff"
+                        font-size="14">
+                        {{ item.name }}
+                    </text>
+                    <g class="isshow">
+                        <rect :x="Number(item.x) + 55" :y="Number(item.y) + 20" width="70" height="50"
+                            stroke="#46C55A35" fill="#000000" opacity="0.8" />
+                        <text class="mapValue" :x="Number(item.x) + 60" :y="Number(item.y) + 40" fill="#ffffff"
+                            font-size="14">{{ item.fs }}
+                            m/s</text>
+                        <text class="mapValue" :x="Number(item.x) + 60" :y="Number(item.y) + 60" fill="#ffffff"
+                            font-size="14">{{ item.gl }}
+                            kw</text>
+                    </g>
+                </g>
+            </g> -->
+        </svg>
+    </div>
+</template>
+<script>
+export default {
+    props: {
+        windturbineList: {
+            type: Array,
+            default: [],
+        },
+    },
+    data() {
+        return {
+            dataList: [
+                {
+                    name: '升压站',
+                    x: '1760',
+                    y: '360',
+                },
+     {
+     name: '#13',
+     x: '1400',
+     y: '170',
+     type: 3,
+},
+{
+     name: '#14',
+     x: '1420',
+     y: '300',
+     type: 3,
+},
+{
+     name: '#15',
+     x: '1420',
+     y: '435',
+     type: 3,
+},
+{
+     name: '#01',
+     x: '1210',
+     y: '190',
+     type: 3,
+},
+{
+     name: '#05',
+     x: '1210',
+     y: '290',
+     type: 3,
+},
+{
+     name: '#10',
+     x: '1220',
+     y: '440',
+     type: 3,
+},
+{
+     name: '#12',
+     x: '1140',
+     y: '515',
+     type: 3,
+},
+{
+     name: '#04',
+     x: '1000',
+     y: '290',
+     type: 3,
+},
+{
+     name: '#09',
+     x: '990',
+     y: '430',
+     type: 3,
+},
+{
+     name: '#03',
+     x: '780',
+     y: '290',
+     type: 3,
+},
+{
+     name: '#08',
+     x: '760',
+     y: '430',
+     type: 3,
+},
+{
+     name: '#02',
+     x: '575',
+     y: '285',
+     type: 3,
+},
+{
+     name: '#07',
+     x: '540',
+     y: '430',
+     type: 3,
+},
+{
+     name: '#11',
+     x: '600',
+     y: '510',
+     type: 3,
+},
+{
+     name: '#06',
+     x: '320',
+     y: '425',
+     type: 3,
+},
+
+            ],
+        };
+    },
+    mounted() {
+
+    },
+    methods: {
+        dayaDeal(windturbineList) {
+            windturbineList.push({
+                fs: '',
+                gl: '',
+                wtCode: '升压站',
+            })
+            this.dataList.forEach(item => {
+                let data = windturbineList.find(val => val.wtCode === item.name)
+                item.type = data.fjzt
+                item.fs = data.fs
+                item.gl = data.gl
+            })
+        },
+    },
+}
+</script>
+<style lang="less" scoped>
+.item-label-hover:hover .isshow {
+    display: flex;
+}
+
+.isshow {
+    display: none;
+    color: #ffffff;
+}
+</style>

+ 547 - 0
src/views/WindSite/pages/components/sy2-map.vue

@@ -0,0 +1,547 @@
+<template>
+    <div class="svg-map">
+        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+            viewBox="0 0 1955 940" :style="
+                'enable-background: new 0 0 866 359; left: ' +
+                svgLeft +
+                '; top: ' +
+                svgTop +
+                ';'
+            " xml:space="preserve" :width="svgWidth" :height="svgHeight">
+            <defs>
+                <g id="nx-map-line">
+                    <line class="nx-map-line" x1="25" y1="25" x2="25" y2="80" stroke="#edbf03" stroke-width="1" />
+                    <circle class="nx-map-up-circle" cx="25" cy="25" r="2" fill="#edbf03" />
+                </g>
+                <g id="nx-map-circle">
+                    <circle class="nx-map-down-circle-1" cx="25" cy="80" r="3" fill="#edbf03" />
+                    <circle class="nx-map-down-circle-2" :class="{ 'nx-map-down-circle-loop': c1 }" cx="25" cy="80"
+                        r="9" stroke="#edbf03" stroke-width="1" fill="none" />
+                    <circle class="nx-map-down-circle-3" :class="{ 'nx-map-down-circle-loop': c2 }" cx="25" cy="80"
+                        r="16" opacity="0.6" stroke="#edbf03" stroke-width="1" fill="none" />
+                </g>
+            </defs>
+        <g>
+            <image style="overflow: visible" width="2050" height="1220" class="map-base" xlink:href="./img/dmt_sy2.png" transform="matrix(1 0 0 1 0 -100)"></image>
+            <g class="item-label-hover" v-for="(item, index) in dataList" :key="index">
+            <svg data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+                :x="String(Number(item.x)-45)" :y="String(Number(item.y)-60)" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392"
+                xml:space="preserve" class="windmill">
+                <image v-if="item.name != '升压站'" data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+                <!-- 运行 -->
+                <image v-if="item.type === 2 || item.type === 3" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_green.png" class="turnCircle"></image>
+                <!-- 受累 -->
+                <image v-if="item.type === 12 || item.type === 13" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_white.png"></image>
+                <!-- 限电 -->
+                <image v-if="item.type === 4 || item.type === 5" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_purple.png" class="turnCircle-slow"></image>
+                <!-- 离线 -->
+                <image v-if="item.type === 10 || item.type === 11" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_black.png"></image>
+                <!-- 待机 -->
+                <image v-if="item.type === 0 || item.type === 1" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_blue.png"></image>
+                <!-- 故障 -->
+                <image v-if="item.type === 6 || item.type === 7" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_red.png"></image>
+                <!-- 检修 -->
+                <image v-if="item.type === 8 || item.type === 9" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_orange.png"></image>
+                <!-- 升压站 -->
+                <image v-if="item.name == '升压站'" data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/png/booster-station.png"></image>
+            </svg>
+            <!-- <text class="mapKey" :x="Number(item.x)+25" :y="Number(item.y) + 90" fill="#ffffff" font-size="14">{{ item.name }}</text> -->
+            <text v-if="item.name != '升压站'" class="mapKey" :x="Number(item.x)+25" :y="Number(item.y) + 90" fill="#ffffff" font-size="14">{{ item.name }}</text>
+            <text v-else class="mapKey" :x="Number(item.x)+10" :y="Number(item.y) + 80" fill="#ffffff" font-size="14">{{ item.name }}</text>
+            <g class="isshow" v-if="item.name != '升压站'">
+                <rect :x="Number(item.x) + 55" :y="Number(item.y) + 20" width="70" height="50" stroke="#46C55A35" fill="#000000" opacity="0.8" />
+                <text class="mapValue" :x="Number(item.x) + 60" :y="Number(item.y) + 40" fill="#ffffff" font-size="14">{{ item.fs }}m/s</text>
+                <text class="mapValue" :x="Number(item.x) + 60" :y="Number(item.y) + 60" fill="#ffffff" font-size="14">{{ item.gl }}kw</text>
+            </g>
+            </g>
+        </g>
+        <g>
+            <svg :x="-20" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_green.png"></image>
+            </svg>
+            <text :x="43" :y="920" fill="#ffffff" font-size="14"> 运行 </text>
+            <svg :x="40" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_white.png"></image>
+            </svg>
+            <text :x="107" :y="920" fill="#ffffff" font-size="14"> 受累 </text>
+            <svg :x="100" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_purple.png"></image>
+            </svg>
+            <text :x="165" :y="920" fill="#ffffff" font-size="14"> 限电 </text>
+            <svg :x="160" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_black.png"></image>
+            </svg>
+            <text :x="229" :y="920" fill="#ffffff" font-size="14"> 离线 </text>
+            <svg :x="220" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_blue.png"></image>
+            </svg>
+            <text :x="288" :y="920" fill="#ffffff" font-size="14"> 待机 </text>
+            <svg :x="280" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_red.png"></image>
+            </svg>
+            <text :x="347" :y="920" fill="#ffffff" font-size="14"> 故障 </text>
+            <svg :x="340" :y="770" data-v-28794fe1="" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150" viewBox="0 0 220 392" enable-background="new 0 0 220 392" xml:space="preserve" class="windmill">
+            <image data-v-28794fe1="" width="147" height="345" x="58" y="78" xlink:href="@/assets/map/fan/yz.png" class="pillar"></image>
+            <image data-v-28794fe1="" width="200" height="460" xlink:href="@/assets/map/fan/yp_orange.png"></image>
+            </svg>
+            <text :x="410" :y="920" fill="#ffffff" font-size="14"> 检修 </text>
+        </g>
+            <!-- <g>
+                <image style="overflow: visible" width="2050" height="1110" class="map-base"
+                    xlink:href=""
+                    transform="matrix(1 0 0 1 0 -50)"></image>
+                <g class="item-label-hover" v-for="(item, index) in dataList" :key="index">
+                    <image v-if="item.type === 0 || item.type === 1" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/green.png"></image>
+                    <image v-if="item.type === 2 || item.type === 3" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/blue.png"></image>
+                    <image v-if="item.type === 6 || item.type === 7" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/red.png"></image>
+                    <image v-if="item.type === 12 || item.type === 13" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/white.png"></image>
+                    <image v-if="item.type === 8 || item.type === 9" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/orange.png"></image>
+                    <image v-if="item.type === 4 || item.type === 5" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/purple.png"></image>
+                    <image v-if="item.type === 10 || item.type === 11" width="70" height="70" class="pillar" :x="item.x"
+                        :y="item.y" xlink:href="../../../../assets/map/fan/black.png"></image>
+                    <text class="mapKey" :x="Number(item.x) + 26" :y="Number(item.y) + 90" fill="#ffffff"
+                        font-size="14">
+                        {{ item.name }}
+                    </text>
+                    <g class="isshow">
+                        <rect :x="Number(item.x) + 55" :y="Number(item.y) + 20" width="70" height="50"
+                            stroke="#46C55A35" fill="#000000" opacity="0.8" />
+                        <text class="mapValue" :x="Number(item.x) + 60" :y="Number(item.y) + 40" fill="#ffffff"
+                            font-size="14">{{ item.fs }}
+                            m/s</text>
+                        <text class="mapValue" :x="Number(item.x) + 60" :y="Number(item.y) + 60" fill="#ffffff"
+                            font-size="14">{{ item.gl }}
+                            kw</text>
+                    </g>
+                </g>
+            </g> -->
+        </svg>
+    </div>
+</template>
+<script>
+export default {
+    props: {
+        windturbineList: {
+            type: Array,
+            default: [],
+        },
+    },
+    data() {
+        return {
+            dataList: [
+                {
+                    name: '升压站',
+                    x: '1220',
+                    y: '255',
+                },
+               {
+     name: 'T08',
+     x: '1440',
+     y: '50',
+     type: 3,
+},
+{
+     name: 'T09',
+     x: '1420',
+     y: '60',
+     type: 3,
+},
+{
+     name: 'T10',
+     x: '1397',
+     y: '70',
+     type: 3,
+},
+{
+     name: 'T11',
+     x: '1360',
+     y: '80',
+     type: 3,
+},
+{
+     name: 'T40',
+     x: '1385',
+     y: '28',
+     type: 3,
+},
+{
+     name: 'T41',
+     x: '1360',
+     y: '35',
+     type: 3,
+},
+{
+     name: 'T43',
+     x: '1325',
+     y: '30',
+     type: 3,
+},
+{
+     name: 'T45',
+     x: '1295',
+     y: '55',
+     type: 3,
+},
+{
+     name: 'T53',
+     x: '1265',
+     y: '80',
+     type: 3,
+},
+{
+     name: 'T42',
+     x: '1265',
+     y: '25',
+     type: 3,
+},
+{
+     name: 'T46',
+     x: '1240',
+     y: '45',
+     type: 3,
+},
+{
+     name: 'T52',
+     x: '1210',
+     y: '70',
+     type: 3,
+},
+{
+     name: 'T47',
+     x: '1185',
+     y: '20',
+     type: 3,
+},
+{
+     name: 'T54',
+     x: '1185',
+     y: '100',
+     type: 3,
+},
+{
+     name: 'T51',
+     x: '1160',
+     y: '55',
+     type: 3,
+},
+{
+     name: 'T48',
+     x: '1130',
+     y: '0',
+     type: 3,
+},
+{
+     name: 'T55',
+     x: '1125',
+     y: '80',
+     type: 3,
+},
+{
+     name: 'T50',
+     x: '1105',
+     y: '25',
+     type: 3,
+},
+{
+     name: 'T61',
+     x: '1090',
+     y: '100',
+     type: 3,
+},
+{
+     name: 'T59',
+     x: '1065',
+     y: '60',
+     type: 3,
+},
+{
+     name: 'T60',
+     x: '1040',
+     y: '85',
+     type: 3,
+},
+{
+     name: 'T49',
+     x: '1000',
+     y: '5',
+     type: 3,
+},
+{
+     name: 'T57',
+     x: '1020',
+     y: '35',
+     type: 3,
+},
+{
+     name: 'T59',
+     x: '985',
+     y: '70',
+     type: 3,
+},
+{
+     name: 'T58',
+     x: '940',
+     y: '10',
+     type: 3,
+},
+{
+     name: 'T62',
+     x: '930',
+     y: '85',
+     type: 3,
+},
+{
+     name: 'T12',
+     x: '660',
+     y: '165',
+     type: 3,
+},
+{
+     name: 'T14',
+     x: '680',
+     y: '210',
+     type: 3,
+},
+{
+     name: 'T17',
+     x: '690',
+     y: '270',
+     type: 3,
+},
+{
+     name: 'T16',
+     x: '645',
+     y: '245',
+     type: 3,
+},
+{
+     name: 'T13',
+     x: '625',
+     y: '190',
+     type: 3,
+},
+{
+     name: 'T15',
+     x: '590',
+     y: '220',
+     type: 3,
+},
+{
+     name: 'T19',
+     x: '600',
+     y: '280',
+     type: 3,
+},
+{
+     name: 'T18',
+     x: '560',
+     y: '245',
+     type: 3,
+},
+{
+     name: 'T21',
+     x: '565',
+     y: '305',
+     type: 3,
+},
+{
+     name: 'T23',
+     x: '545',
+     y: '345',
+     type: 3,
+},
+{
+     name: 'T20',
+     x: '520',
+     y: '275',
+     type: 3,
+},
+{
+     name: 'T22',
+     x: '485',
+     y: '310',
+     type: 3,
+},
+{
+     name: 'T24',
+     x: '445',
+     y: '350',
+     type: 3,
+},
+{
+     name: 'T25',
+     x: '400',
+     y: '300',
+     type: 3,
+},
+{
+     name: 'T26',
+     x: '350',
+     y: '320',
+     type: 3,
+},
+{
+     name: 'T27',
+     x: '300',
+     y: '345',
+     type: 3,
+},
+{
+     name: 'T07',
+     x: '1265',
+     y: '355',
+     type: 3,
+},
+{
+     name: 'T03',
+     x: '1230',
+     y: '300',
+     type: 3,
+},
+{
+     name: 'T06',
+     x: '1200',
+     y: '330',
+     type: 3,
+},
+{
+     name: 'T02',
+     x: '1165',
+     y: '295',
+     type: 3,
+},
+{
+     name: 'T01',
+     x: '1170',
+     y: '230',
+     type: 3,
+},
+{
+     name: 'T05',
+     x: '1140',
+     y: '305',
+     type: 3,
+},
+{
+     name: 'T04',
+     x: '1085',
+     y: '295',
+     type: 3,
+},
+{
+     name: 'T31',
+     x: '1660',
+     y: '600',
+     type: 3,
+},
+{
+     name: 'T35',
+     x: '1635',
+     y: '650',
+     type: 3,
+},
+{
+     name: 'T28',
+     x: '1635',
+     y: '550',
+     type: 3,
+},
+{
+     name: 'T30',
+     x: '1580',
+     y: '570',
+     type: 3,
+},
+{
+     name: 'T34',
+     x: '1560',
+     y: '610',
+     type: 3,
+},
+{
+     name: 'T29',
+     x: '1500',
+     y: '550',
+     type: 3,
+},
+{
+     name: 'T36',
+     x: '1500',
+     y: '645',
+     type: 3,
+},
+{
+     name: 'T33',
+     x: '1470',
+     y: '580',
+     type: 3,
+},
+{
+     name: 'T32',
+     x: '1425',
+     y: '580',
+     type: 3,
+},
+{
+     name: 'T37',
+     x: '1390',
+     y: '630',
+     type: 3,
+},
+{
+     name: 'T38',
+     x: '1050',
+     y: '800',
+     type: 3,
+},
+{
+     name: 'T39',
+     x: '1000',
+     y: '850',
+     type: 3,
+},
+            ],
+        };
+    },
+    mounted() {
+
+    },
+    methods: {
+        dayaDeal(windturbineList) {
+            windturbineList.push({
+                fs: '',
+                gl: '',
+                wtCode: '升压站',
+            })
+            this.dataList.forEach(item => {
+                let data = windturbineList.find(val => val.wtCode === item.name)
+                item.type = data.fjzt
+                item.fs = data.fs
+                item.gl = data.gl
+            })
+        },
+    },
+}
+</script>
+<style lang="less" scoped>
+.item-label-hover:hover .isshow {
+    display: flex;
+}
+
+.isshow {
+    display: none;
+    color: #ffffff;
+}
+</style>

+ 2 - 2
src/views/layout/Menu.vue

@@ -1238,7 +1238,7 @@ export default {
 .menu {
   padding-top: 1.481vh;
   z-index: 3001;
-
+ 
   .menu-list {
     margin: 0;
     padding: 0;
@@ -1320,7 +1320,7 @@ export default {
           }
         }
       }
-
+        
       .sub-menu-text {
         margin-left: 1.1111vh;
         color: @gray-l;

+ 1 - 1
vue.config.js

@@ -83,7 +83,7 @@ module.exports = {
     config.resolve.symlinks(true); // 修复热更新失效
     config.plugin('html')
       .tap(args => {
-        args[0].title = "生产实时运营管理平台";
+        args[0].title = "智能综合分析系统";
         return args;
       })
     // 路径别名