Explorar el Código

1.故障分析;
2.地图连线json改;
3.光伏地图块并跳转;

mw_666 hace 4 años
padre
commit
fba5a536c7

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
src/assets/dataService/arcgis-nss-line.json


+ 1 - 68
src/assets/dataService/arcgis-qs-line.json

@@ -3,74 +3,7 @@
 		"spatialReference": {
 			"wkid": 4326
 		},
-		"paths": [
-			[107.217636108398, 37.5534917819943],
-			[107.231798171997, 37.5528113263644],
-			[107.236969470978, 37.5531430492601],
-			[107.230060100555, 37.5577912673456],
-			[107.224591076374, 37.5590223799266],
-			[107.224127054214, 37.5460702271695],
-			[107.232570648193, 37.540800261985],
-			[107.232785224915, 37.5394391127873],
-			[107.235864400864, 37.5409959251395],
-			[107.235864400864, 37.533288110023],
-			[107.233192920685, 37.5303868385901],
-			[107.209181785583, 37.5484073523692],
-			[107.205193340778, 37.5397134714219],
-			[107.208774089813, 37.5290765499824],
-			[107.215468883514, 37.5266601132254],
-			[107.219025492668, 37.5420125145689],
-			[107.218194007874, 37.5337560464588],
-			[107.223858833313, 37.5354405933172],
-			[107.227699756622, 37.5289404147812],
-			[107.237141132355, 37.5237415658803],
-			[107.225081920624, 37.5251795816112],
-			[107.21836566925, 37.5229502199563],
-			[107.201065421104, 37.5422209349572],
-			[107.201489210129, 37.5326159780052],
-			[107.205587625504, 37.5232650575122],
-			[107.211112976074, 37.5201932073065],
-			[107.209621667862, 37.5160574973166],
-			[107.205834388733, 37.5123811182352],
-			[107.203409671783, 37.5168574261816],
-			[107.198731899261, 37.5207207916834],
-			[107.199257612228, 37.508976902057],
-			[107.203677892685, 37.5070449403205],
-			[107.207164764404, 37.5046958798405],
-			[107.191742062569, 37.5510399861667],
-			[107.197715342045, 37.5495386732784],
-			[107.186712920666, 37.542729223053],
-			[107.19198346138, 37.5386734554438],
-			[107.18975186348, 37.5317992018309],
-			[107.194333076477, 37.5262006410413],
-			[107.190524339676, 37.5248307164361],
-			[107.193850278854, 37.5174190732396],
-			[107.194257974625, 37.5101939271718],
-			[107.192884683609, 37.5060406408998],
-			[107.187992334366, 37.5092492450648],
-			[107.163863182068, 37.5293998700896],
-			[107.164839506149, 37.5234862939188],
-			[107.169742584229, 37.5172829167653],
-			[107.176394462585, 37.520057055894],
-			[107.171856164932, 37.514849077877],
-			[107.168154716492, 37.5123811182352],
-			[107.17866897583, 37.5083981698663],
-			[107.175278663635, 37.5056065751042],
-			[107.179956436157, 37.5064917262093],
-			[107.182434797287, 37.5108066875511],
-			[107.185535430908, 37.5054533748091],
-			[107.195867300034, 37.5567855247009],
-			[107.187415659428, 37.5552779484629],
-			[107.187415659428, 37.5552779484629],
-			[107.17248916626, 37.5599366645357],
-			[107.168728709221, 37.5571682613454],
-			[107.16448277235, 37.5539532124332],
-			[107.165713906288, 37.5494004489002],
-			[107.171477973461, 37.5439818513075],
-			[107.177338600159, 37.5468443149692],
-			[107.165193557739, 37.5421656398089],
-			[107.168530225754, 37.5352193923647]
-		]
+		"paths": [[107.217636108398,37.5534917819943],[107.224591076374,37.5590223799266],[107.230060100555,37.5577912673456],[107.236969470978,37.5531430492601],[107.235864400864,37.5409959251395],[107.235864400864,37.533288110023],[107.237141132355,37.5237415658803],[107.207164764404,37.5046958798405],[107.192884683609,37.5060406408998],[107.185535430908,37.5054533748091],[107.175278663635,37.5056065751042],[107.168154716492,37.5123811182352],[107.164839506149,37.5234862939188],[107.163863182068,37.5293998700896],[107.165193557739,37.5421656398089],[107.16448277235,37.5539532124332],[107.168728709221,37.5571682613454],[107.17248916626,37.5599366645357],[107.187415659428,37.5552779484629],[107.195867300034,37.5567855247009],[107.217636108398,37.5534917819943]]
 	},
 	"symbol": null,
 	"attributes": {

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
src/assets/dataService/arcgis-sbq-line.json


+ 14 - 1
src/assets/dataService/arcgis-xs-line.json

@@ -1 +1,14 @@
-[{"geometry":{"spatialReference":{"wkid":4326},"paths":[[105.2139616,37.17630397],[105.2186394,37.17746656],[105.2209997,37.18197998],[105.2246046,37.18398015],[105.2170515,37.16939645],[105.2227592,37.17149955],[105.2188325,37.17346581],[105.2284241,37.17165343],[105.2288532,37.17532943],[105.2307415,37.17856075],[105.2354193,37.18136453],[105.2213216,37.16744719],[105.2199697,37.1630697],[105.2188754,37.15821314],[105.2351832,37.16212919],[105.2419209,37.16488228],[105.2455902,37.16595955],[105.2475214,37.16895189],[105.2521992,37.16784046],[105.2424788,37.16185559],[105.2399254,37.15814473],[105.2384663,37.15386932],[105.2489376,37.16094927],[105.2476501,37.15793952],[105.2444744,37.15532299],[105.2115583,37.17213218],[105.2099276,37.17526105],[105.2087474,37.18179192],[105.2079105,37.18509134],[105.2108502,37.18861284],[105.1989198,37.1755517],[105.1991987,37.18280057],[105.198791,37.18815129],[105.1958299,37.1801849],[105.1887488,37.18856156],[105.1947355,37.17633817],[105.1866031,37.17977459],[105.1873326,37.1755688],[105.1796722,37.17688527],[105.1824403,37.18757008],[105.1773977,37.18500586],[105.1714969,37.18526229],[105.2116871,37.16691711],[105.2104855,37.1634288],[105.207417,37.16799435],[105.201602,37.16690001],[105.2053785,37.15397194],[105.2037477,37.15821314],[105.1997781,37.15963252],[105.1993275,37.15679373],[105.194757,37.15879457],[105.1912808,37.16060726],[105.1859164,37.15607546],[105.1862597,37.15226171],[105.1868176,37.1622147],[105.1817322,37.16525848],[105.1725054,37.16621604],[105.1694369,37.1642838]]},"symbol":null,"attributes":{"fc_code":"XS","width":3},"popupTemplate":null}]
+[{
+	"geometry": {
+		"spatialReference": {
+			"wkid": 4326
+		},
+		"paths": [[105.2186394,37.17746656],[105.2209997,37.18197998],[105.2246046,37.18398015],[105.2354193,37.18136453],[105.2521992,37.16784046],[105.2489376,37.16094927],[105.2444744,37.15532299],[105.2384663,37.15386932],[105.2188754,37.15821314],[105.2053785,37.15397194],[105.1862597,37.15226171],[105.1694369,37.1642838],[105.1714969,37.18526229],[105.1824403,37.18757008],[105.1887488,37.18856156],[105.198791,37.18815129],[105.2108502,37.18861284],[105.2139616,37.17630397]]
+	},
+	"symbol": null,
+	"attributes": {
+		"fc_code": "XS",
+		"width": 3
+	},
+	"popupTemplate": null
+}]

+ 679 - 0
src/components/arcgis/DWK_GDC.vue

@@ -0,0 +1,679 @@
+<template>
+  <div class="map-1" style="width: 100%; height: 100%">
+    <arcgis @when="when" ref="arcgis" :data="arcgisData" @clickMap="clickMap">
+      <template v-slot:content>
+        <div class="panel-box">
+          <div
+            class="panel-item"
+            :class="panel.line"
+            v-for="(panel, index) of panels"
+            :key="index"
+          >
+            <svg
+              v-show="panel.type != 'none' && panel.type != 'syz'"
+              viewBox="0 0 800 800"
+              version="1.1"
+              xmlns="http://www.w3.org/2000/svg"
+              xmlns:xlink="http://www.w3.org/1999/xlink"
+              xml:space="preserve"
+            >
+              <defs>
+                <rect
+                  id="fill-rect"
+                  x="5"
+                  y="5"
+                  rx="8"
+                  ry="8"
+                  width="90"
+                  height="340"
+                  fill="#303B6F"
+                />
+                <rect
+                  id="none-rect"
+                  x="5"
+                  y="5"
+                  rx="8"
+                  ry="8"
+                  width="90"
+                  height="120"
+                  fill="#303B6F"
+                />
+                <g id="panel-deepblue">
+                  <polygon
+                    fill="#FFFFFF"
+                    points="300 13.73 60.07 13.73 60.07 13.73 22.48 13.73 0 109.84 0 109.84 0 109.84 0 109.84 0 109.84 22.48 205.95 272.88 205.95 272.88 205.61 300 205.61 300 13.73"
+                  />
+                  <polygon
+                    fill="#5C9BAF"
+                    points="250.4 109.84 3.26 109.84 29 0 276.14 0 250.4 109.84"
+                  />
+                  <polygon
+                    fill="#00486B"
+                    points="29 219.68 276.14 219.68 250.4 109.84 3.26 109.84 29 219.68"
+                  />
+                </g>
+                <g id="panel-blue">
+                  <polygon
+                    fill="#FFFFFF"
+                    points="300 13.73 60.07 13.73 60.07 13.73 22.48 13.73 0 109.84 0 109.84 0 109.84 0 109.84 0 109.84 22.48 205.95 272.88 205.95 272.88 205.61 300 205.61 300 13.73"
+                  />
+                  <polygon
+                    fill="#23ABFF"
+                    points="250.4 109.84 3.26 109.84 29 0 276.14 0 250.4 109.84"
+                  />
+                  <polygon
+                    fill="#0E6BBB"
+                    points="29 219.68 276.14 219.68 250.4 109.84 3.26 109.84 29 219.68"
+                  />
+                </g>
+                <g id="panel-red">
+                  <polygon
+                    fill="#FFFFFF"
+                    points="290 13.27 58.07 13.27 58.07 13.27 21.73 13.27 0 106.18 0 106.18 0 106.18 0 106.18 0 106.18 21.73 199.09 263.79 199.09 263.79 198.75 290 198.75 290 13.27"
+                  />
+                  <polygon
+                    fill="#EC1208"
+                    points="242.05 106.18 3.15 106.18 28.04 0 266.94 0 242.05 106.18"
+                  />
+                  <polygon
+                    fill="#AA0607"
+                    points="28.04 212.36 266.94 212.36 242.05 106.18 3.15 106.18 28.04 212.36"
+                  />
+                </g>
+              </defs>
+              <!-- 底图 左右两列矩形 -->
+              <g>
+                <use xlink:href="#fill-rect" x="50" y="50" />
+                <use xlink:href="#fill-rect" x="150" y="50" />
+                <use xlink:href="#fill-rect" x="550" y="50" />
+                <use xlink:href="#fill-rect" x="650" y="50" />
+                <use xlink:href="#fill-rect" x="50" y="400" />
+                <use xlink:href="#fill-rect" x="150" y="400" />
+                <use xlink:href="#fill-rect" x="550" y="400" />
+                <use xlink:href="#fill-rect" x="650" y="400" />
+              </g>
+
+              <!-- 中间上矩形 全部 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'fill' || panel.type == 'bottom'
+                    ? 'block'
+                    : 'none')
+                "
+              >
+                <use xlink:href="#fill-rect" x="250" y="50" />
+                <use xlink:href="#fill-rect" x="350" y="50" />
+                <use xlink:href="#fill-rect" x="450" y="50" />
+              </g>
+
+              <!-- 中间上矩形 一半 -->
+              <g
+                :style="'display: ' + (panel.type == 'top' ? 'block' : 'none')"
+              >
+                <use xlink:href="#none-rect" x="250" y="270" />
+                <use xlink:href="#none-rect" x="350" y="270" />
+                <use xlink:href="#none-rect" x="450" y="270" />
+              </g>
+
+              <!-- 中间上逆变器 深蓝色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'top' && panel.state == 'deepblue'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-deepblue" x="250" y="50" />
+              </g>
+
+              <!-- 中间上逆变器 蓝色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'top' && panel.state == 'blue'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-blue" x="250" y="50" />
+              </g>
+
+              <!-- 中间上逆变器 红色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'top' && panel.state == 'red'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-red" x="250" y="50" />
+              </g>
+
+              <!-- 中间上文字 -->
+              <g
+                :style="'display: ' + (panel.type == 'top' ? 'block' : 'none')"
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <text
+                  x="365"
+                  y="220"
+                  fill="#ffffff"
+                  font-size="150"
+                  text-anchor="middle"
+                >
+                  {{ panel.code }}
+                </text>
+              </g>
+
+              <!-- 中间下矩形 全部 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'fill' || panel.type == 'top'
+                    ? 'block'
+                    : 'none')
+                "
+              >
+                <use xlink:href="#fill-rect" x="250" y="400" />
+                <use xlink:href="#fill-rect" x="350" y="400" />
+                <use xlink:href="#fill-rect" x="450" y="400" />
+              </g>
+
+              <!-- 中间下矩形 一半 -->
+              <g
+                :style="
+                  'display: ' + (panel.type == 'bottom' ? 'block' : 'none')
+                "
+              >
+                <use xlink:href="#none-rect" x="250" y="400" />
+                <use xlink:href="#none-rect" x="350" y="400" />
+                <use xlink:href="#none-rect" x="450" y="400" />
+              </g>
+
+              <!-- 中间下逆变器 深蓝色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'bottom' && panel.state == 'deepblue'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-deepblue" x="250" y="530" />
+              </g>
+
+              <!-- 中间下逆变器 蓝色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'bottom' && panel.state == 'blue'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-blue" x="250" y="530" />
+              </g>
+
+              <!-- 中间下逆变器 红色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'bottom' && panel.state == 'red'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-red" x="250" y="530" />
+              </g>
+
+              <!-- 中间下文字 -->
+              <g
+                :style="
+                  'display: ' + (panel.type == 'bottom' ? 'block' : 'none')
+                "
+                class="can-click"
+                @click.prevent="clickEl(panel)"
+              >
+                <text
+                  x="460"
+                  y="740"
+                  fill="#ffffff"
+                  font-size="150"
+                  text-anchor="middle"
+                >
+                  {{ panel.code }}
+                </text>
+              </g>
+            </svg>
+            <div v-show="panel.type == 'syz'" class="panel-syz">
+              <img :src="syzImg" class="syz-img" />
+              <div class="syz-text">升压站</div>
+            </div>
+          </div>
+          <!-- <img :src="tempImg" style="width: 800px; height: 700px;"> -->
+        </div>
+      </template>
+    </arcgis>
+  </div>
+</template>
+
+<script>
+import arcgis from "./arcgis.vue";
+import dataService from "@/helper/data.js";
+
+export default {
+  // 名称
+  name: "Map",
+  // 使用组件
+  components: {
+    arcgis,
+  },
+  props: {
+    wpId: {
+      type: String,
+      default: "",
+    },
+  },
+  // 数据
+  data() {
+    return {
+      wpnumMap: {}, //风机监视数量
+      wpInfoMap: {}, //风机详情
+      fjmap: [], // 风机名
+      sourceId: "",
+      arcgisData: {
+        mode: "2D", // 模式 2D 3D
+        title: "宁夏地图", // 标题
+        center: [106.2953, 38.58533], // 初始中心点
+        height: 654, // 3D地图初始相机高度
+        tilt: 65, // 俯视角
+        scale: 15000,
+        rotation: 180,
+      },
+      tempImg: require("@assets/temp1.png"),
+      syzImg: require("@assets/png/booster-station.png"),
+      showPopup: true,
+      panels: 
+	  [{"id":"00","type":"top","code":1,"state":"deepblue","line":"top left"},
+	  {"id":"01","type":"top","code":2,"state":"deepblue","line":"top right"},
+	  {"id":"02","type":"top","code":3,"state":"deepblue","line":"top"},
+	  {"id":"03","type":"top","code":4,"state":"deepblue","line":"top right"},
+	  {"id":"04","type":"top","code":5,"state":"deepblue","line":"top"},
+	  {"id":"05","type":"top","code":6,"state":"deepblue","line":"top right"},
+	  {"id":"06","type":"top","code":7,"state":"deepblue","line":"top"},
+	  {"id":"07","type":"top","code":8,"state":"deepblue","line":"top right"},
+	  {"id":"08","type":"top","code":9,"state":"deepblue","line":"top"},
+	  {"id":"09","type":"top","code":10,"state":"deepblue","line":"top right"},
+	  {"id":"10","type":"top","code":11,"state":"deepblue","line":"top left"},
+	  {"id":"11","type":"top","code":12,"state":"deepblue","line":"top right"},
+	  {"id":"12","type":"top","code":13,"state":"deepblue","line":"top"},
+	  {"id":"13","type":"top","code":14,"state":"deepblue","line":"top right"},
+	  {"id":"14","type":"top","code":15,"state":"deepblue","line":"top"},
+	  {"id":"15","type":"top","code":16,"state":"deepblue","line":"top right"},
+	  {"id":"16","type":"top","code":17,"state":"deepblue","line":"top"},
+	  {"id":"17","type":"top","code":18,"state":"deepblue","line":"top right"},
+	  {"id":"18","type":"top","code":19,"state":"deepblue","line":"top"},
+	  {"id":"19","type":"top","code":20,"state":"deepblue","line":"top right"}]
+    };
+  },
+  created() {
+    let that = this;
+    that.sourceId = this.wpId;
+    that.$nextTick(() => {});
+  },
+  // 函数
+  methods: {
+    when: function () {
+      this.$refs.arcgis.addHtmlPoint(
+        [106.48638888888888, 38.924166666666665],
+        "content",
+        400,
+        350
+      );
+    },
+    clickMap: function (info) {
+      console.log(info);
+    },
+    clickEl: function (item) {
+		let wpId = this.$route.path.split('/').pop(),
+			wtId = wpId.split('_')[0] +'01_'+ item.id;
+		this.$router.push({
+		  path: `/monitor/windsite/inverter-info/`+wpId+`/`+wtId,
+		});
+    },
+  },
+  watch: {
+    wpId(res) {
+      this.sourceId = res;
+    },
+  },
+};
+</script>
+
+<style lang="less">
+@titleHeight: 40px;
+
+.map-1 {
+  width: 100%;
+  height: calc(100vh - 90px);
+  display: flex;
+  flex-direction: column;
+
+  .btn-group-tabs {
+    display: flex;
+    flex-direction: row;
+  }
+
+    .panel-box {
+        width: 840px;
+        padding: 20px;
+        display: flex;
+        flex-wrap: wrap;
+        background: #536268B8;
+
+        .panel-item {
+            width: 80px;
+            height: 80px;
+            position: relative;
+            
+            // margin-top: -20px;
+            // margin-left: -20px;
+
+            &.top {
+                &::after {
+                    top: -3px;
+                    opacity: 1;
+                }
+            }
+
+            &.bottom {
+                &::after {
+                    bottom: -3px;
+                    opacity: 1;
+                }
+            }
+
+            &.left {
+                &::before {
+                    left: -3px;
+                    opacity: 1;
+                }
+            }
+
+            &.right {
+                &::before {
+                    right: -3px;
+                    opacity: 1;
+                }
+            }
+
+            &::after {
+                content: '';
+                width: 100%;
+                height: 6px;
+                position: absolute;
+                left: 0;
+                background: @green;
+                opacity: 0;
+            }
+
+            &::before {
+                content: '';
+                width: 6px;
+                height: 100%;
+                position: absolute;
+                top: 0;
+                background: @green;
+                opacity: 0;
+            }
+
+            svg {
+                width: 80px;
+                height: 80px;
+            }
+
+            .panel-syz {
+                width: 100%;
+                height: 100%;
+                position: relative;
+
+                .syz-img {
+                    position: absolute;
+                    height: 70px;
+                    top: -35px;
+                    left: -10px;
+                }
+
+                .syz-text {
+                    position: absolute;
+                    color: @green;
+                    font-size: @fontsize-l;
+                    width: 100%;
+                    text-align: center;
+                    left: 0;
+                    top: -55px;
+                    font-weight: bold;
+                }
+            }
+        }
+
+    }
+
+  .can-click {
+    cursor: pointer;
+  }
+
+  .syz-img {
+    width: 65px;
+    height: 47px;
+
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
+
+  .panel-title {
+    width: 100%;
+    background-color: fade(@darkgray, 40%);
+    margin-top: 16px;
+    padding: 6px;
+    display: flex;
+    align-items: center;
+
+    .panel-title-name {
+      color: @green;
+      display: flex;
+      align-items: center;
+      line-height: 0;
+      font-size: 0;
+
+      i,
+      span {
+        margin: 0 0 0 16px;
+        line-height: 0;
+        font-size: 13px;
+      }
+    }
+
+    .sub-title-item {
+      display: flex;
+      align-items: center;
+      margin-left: 16px;
+
+      .sub-title {
+        font-size: 13px;
+        margin-left: 6px;
+      }
+
+      .sub-count {
+        font-size: 13px;
+        font-weight: 500;
+      }
+
+      img {
+        height: 31px;
+      }
+    }
+  }
+
+  .panel-body {
+    flex-grow: 1;
+    background-color: fade(@darkgray, 20%);
+    padding: 8px;
+    overflow: auto;
+    position: relative;
+
+    .arcgis-layer {
+      z-index: 1;
+    }
+
+    .map-popup-panel {
+      width: 760px;
+      position: absolute;
+      left: 71px;
+      top: 22px;
+      z-index: 2;
+
+      .map-popup-panel-header {
+        width: 100%;
+        background: fade(#152221, 90%);
+        display: flex;
+
+        .map-popup-panel-title {
+          padding: 17px 24px;
+          font-size: @fontsize-s;
+          position: relative;
+
+          &::before,
+          &::after {
+            position: absolute;
+            width: calc(50% - 6px);
+            bottom: 0;
+            border-bottom: 2px solid @green;
+          }
+
+          &::before {
+            content: "";
+            left: 0;
+          }
+
+          &::after {
+            content: "";
+            right: 0;
+          }
+
+          span {
+            position: absolute;
+            width: 11.3px;
+            height: 11.3px;
+            border-left: 2px solid @green;
+            border-top: 2px solid @green;
+            left: calc(50% - 5.65px);
+            bottom: -3px;
+            transform: rotate(45deg);
+          }
+        }
+
+        .map-popup-panel-date {
+          flex-grow: 1;
+          padding: 17px 24px;
+          font-size: @fontsize-s;
+          text-align: right;
+          border-bottom: 2px solid @green;
+        }
+
+        .map-popup-panel-back {
+          margin-left: auto;
+          width: 54px;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+          position: relative;
+          cursor: pointer;
+
+          &::after {
+            content: "";
+            position: absolute;
+            left: 0;
+            height: 50%;
+            border-left: 1px solid @gray;
+            top: 25%;
+          }
+        }
+      }
+
+      .map-popup-panel-body {
+        background: fade(#152221, 75%);
+        border: 1px solid fade(@darkgray, 40);
+        border-top: 0px;
+
+        .table-form {
+          .text,
+          .unit {
+            font-weight: 400;
+          }
+
+          .unit {
+            min-width: auto;
+          }
+
+          .value,
+          .unit {
+            text-align: left;
+          }
+        }
+      }
+    }
+
+    .map-tool {
+      position: absolute;
+      right: 22px;
+      top: 22px;
+      z-index: 2;
+      background: #152221af;
+      padding: 18px 14px;
+
+      .m-btn {
+        width: 124px;
+        height: 44px;
+        background: #152221bf;
+        border: 1px solid #152221bf;
+        color: #ffffff;
+        transition: all 0.3s;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        cursor: pointer;
+
+        &:hover,
+        &.active {
+          background: #05bb4c33;
+          border: 1px solid #05bb4c;
+          color: #05bb4c;
+        }
+
+        + .m-btn {
+          margin-top: 16px;
+        }
+      }
+    }
+  }
+}
+</style>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 312 - 0
src/components/arcgis/HZJ_GDC.vue


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 311 - 0
src/components/arcgis/MCH_GDC.vue


+ 27 - 195
src/components/arcgis/PL_GDC.vue

@@ -165,12 +165,11 @@
                 @click.prevent="clickEl(panel)"
               >
                 <text
-                  x="420"
+                  x="365"
                   y="220"
                   fill="#ffffff"
                   font-size="150"
                   text-anchor="middle"
-                  transform="rotate(-90 400 180)"
                 >
                   {{ panel.code }}
                 </text>
@@ -257,7 +256,6 @@
                   fill="#ffffff"
                   font-size="150"
                   text-anchor="middle"
-                  transform="rotate(-90 400 700)"
                 >
                   {{ panel.code }}
                 </text>
@@ -302,7 +300,7 @@ export default {
       arcgisData: {
         mode: "2D", // 模式 2D 3D
         title: "宁夏地图", // 标题
-        center: [106.48638888888888, 38.924166666666665], // 初始中心点
+        center: [106.2850, 38.5528], // 初始中心点
         height: 654, // 3D地图初始相机高度
         tilt: 65, // 俯视角
         scale: 15000,
@@ -311,192 +309,26 @@ export default {
       tempImg: require("@assets/temp1.png"),
       syzImg: require("@assets/png/booster-station.png"),
       showPopup: true,
-      panels: [
-        // fill top bottom none syz // red blue deepblue
-        { id: "00", type: "fill", code: "", state: "", line: "" },
-        { id: "01", type: "fill", code: "", state: "", line: "" },
-        { id: "02", type: "fill", code: "", state: "", line: "" },
-        { id: "03", type: "fill", code: "", state: "", line: "" },
-        { id: "04", type: "fill", code: "", state: "", line: "" },
-        { id: "05", type: "fill", code: "", state: "", line: "" },
-        {
-          id: "06",
-          type: "bottom",
-          code: "12",
-          state: "deepblue",
-          line: "bottom",
-        },
-        { id: "07", type: "none", code: "", state: "", line: "bottom" },
-        { id: "08", type: "fill", code: "", state: "", line: "" },
-        { id: "09", type: "fill", code: "", state: "", line: "" },
-
-        {
-          id: "10",
-          type: "top",
-          code: "36",
-          state: "deepblue",
-          line: "top left",
-        },
-        {
-          id: "11",
-          type: "top",
-          code: "32",
-          state: "deepblue",
-          line: "top left",
-        },
-        { id: "12", type: "top", code: "28", state: "deepblue", line: "top" },
-        { id: "13", type: "top", code: "24", state: "deepblue", line: "top" },
-        { id: "14", type: "top", code: "20", state: "deepblue", line: "top" },
-        {
-          id: "15",
-          type: "top",
-          code: "16",
-          state: "deepblue",
-          line: "top right",
-        },
-        { id: "16", type: "fill", code: "", state: "", line: "bottom right" },
-        { id: "17", type: "syz", code: "", state: "", line: "bottom right" },
-        { id: "18", type: "top", code: "5", state: "deepblue", line: "top" },
-        {
-          id: "19",
-          type: "top",
-          code: "4",
-          state: "deepblue",
-          line: "top right",
-        },
-
-        {
-          id: "20",
-          type: "bottom",
-          code: "37",
-          state: "deepblue",
-          line: "bottom left",
-        },
-        { id: "21", type: "fill", code: "", state: "deepblue", line: "left" },
-        { id: "22", type: "fill", code: "", state: "deepblue", line: "" },
-        { id: "23", type: "fill", code: "", state: "deepblue", line: "" },
-        { id: "24", type: "fill", code: "", state: "deepblue", line: "" },
-        { id: "25", type: "fill", code: "", state: "deepblue", line: "" },
-        {
-          id: "26",
-          type: "bottom",
-          code: "13",
-          state: "deepblue",
-          line: "bottom",
-        },
-        { id: "27", type: "fill", code: "", state: "", line: "" },
-        { id: "28", type: "fill", code: "", state: "deepblue", line: "" },
-        { id: "29", type: "fill", code: "", state: "deepblue", line: "right" },
-
-        { id: "30", type: "none", code: "", state: "", line: "" },
-        { id: "31", type: "top", code: "33", state: "deepblue", line: "top" },
-        { id: "32", type: "top", code: "29", state: "deepblue", line: "top" },
-        { id: "33", type: "top", code: "25", state: "deepblue", line: "top" },
-        { id: "34", type: "top", code: "21", state: "deepblue", line: "top" },
-        {
-          id: "35",
-          type: "top",
-          code: "17",
-          state: "deepblue",
-          line: "top right",
-        },
-        { id: "36", type: "fill", code: "", state: "deepblue", line: "" },
-        { id: "37", type: "top", code: "1", state: "deepblue", line: "top" },
-        { id: "38", type: "top", code: "2", state: "deepblue", line: "top" },
-        { id: "39", type: "top", code: "3", state: "deepblue", line: "top" },
-
-        { id: "40", type: "none", code: "", state: "", line: "" },
-        { id: "41", type: "fill", code: "", state: "", line: "" },
-        { id: "42", type: "fill", code: "", state: "", line: "" },
-        { id: "43", type: "fill", code: "", state: "", line: "" },
-        { id: "44", type: "fill", code: "", state: "", line: "" },
-        { id: "45", type: "fill", code: "", state: "", line: "" },
-        {
-          id: "46",
-          type: "bottom",
-          code: "14",
-          state: "deepblue",
-          line: "bottom left",
-        },
-        {
-          id: "47",
-          type: "bottom",
-          code: "10",
-          state: "deepblue",
-          line: "bottom",
-        },
-        {
-          id: "48",
-          type: "bottom",
-          code: "8",
-          state: "deepblue",
-          line: "bottom",
-        },
-        {
-          id: "49",
-          type: "bottom",
-          code: "6",
-          state: "deepblue",
-          line: "bottom",
-        },
-
-        { id: "50", type: "none", code: "", state: "", line: "" },
-        { id: "51", type: "top", code: "34", state: "red", line: "top left" },
-        { id: "52", type: "top", code: "30", state: "deepblue", line: "top" },
-        { id: "53", type: "top", code: "26", state: "deepblue", line: "top" },
-        { id: "54", type: "top", code: "22", state: "deepblue", line: "top" },
-        { id: "55", type: "top", code: "18", state: "deepblue", line: "top" },
-        { id: "56", type: "fill", code: "", state: "", line: "" },
-        { id: "57", type: "fill", code: "", state: "", line: "" },
-        { id: "58", type: "fill", code: "", state: "", line: "" },
-        { id: "59", type: "fill", code: "", state: "", line: "right" },
-
-        { id: "60", type: "none", code: "", state: "", line: "" },
-        { id: "61", type: "fill", code: "", state: "", line: "left" },
-        { id: "62", type: "fill", code: "", state: "", line: "" },
-        { id: "63", type: "fill", code: "", state: "", line: "" },
-        { id: "64", type: "fill", code: "", state: "", line: "" },
-        { id: "65", type: "fill", code: "", state: "", line: "" },
-        {
-          id: "66",
-          type: "bottom",
-          code: "15",
-          state: "deepblue",
-          line: "bottom",
-        },
-        {
-          id: "67",
-          type: "bottom",
-          code: "11",
-          state: "deepblue",
-          line: "bottom",
-        },
-        {
-          id: "68",
-          type: "bottom",
-          code: "9",
-          state: "deepblue",
-          line: "bottom",
-        },
-        {
-          id: "69",
-          type: "bottom",
-          code: "7",
-          state: "deepblue",
-          line: "bottom right",
-        },
-
-        { id: "70", type: "none", code: "", state: "", line: "" },
-        { id: "71", type: "top", code: "35", state: "blue", line: "top" },
-        { id: "72", type: "top", code: "31", state: "deepblue", line: "top" },
-        { id: "73", type: "top", code: "27", state: "deepblue", line: "top" },
-        { id: "74", type: "top", code: "23", state: "deepblue", line: "top" },
-        { id: "75", type: "top", code: "19", state: "deepblue", line: "top" },
-        { id: "76", type: "fill", code: "", state: "", line: "" },
-        { id: "77", type: "fill", code: "", state: "", line: "" },
-        { id: "78", type: "fill", code: "", state: "", line: "" },
-        { id: "79", type: "fill", code: "", state: "", line: "" },
-      ],
+      panels: 
+	  [{"id":"00","type":"top","code":1,"state":"deepblue","line":"top left"},
+	  {"id":"01","type":"top","code":2,"state":"deepblue","line":"top right"},
+	  {"id":"02","type":"top","code":3,"state":"deepblue","line":"top"},
+	  {"id":"03","type":"top","code":4,"state":"deepblue","line":"top right"},
+	  {"id":"04","type":"top","code":5,"state":"deepblue","line":"top"},
+	  {"id":"05","type":"top","code":6,"state":"deepblue","line":"top right"},
+	  {"id":"06","type":"top","code":7,"state":"deepblue","line":"top"},
+	  {"id":"07","type":"top","code":8,"state":"deepblue","line":"top right"},
+	  {"id":"08","type":"top","code":9,"state":"deepblue","line":"top"},
+	  {"id":"09","type":"top","code":10,"state":"deepblue","line":"top right"},
+	  {"id":"10","type":"top","code":11,"state":"deepblue","line":"top left"},
+	  {"id":"11","type":"top","code":12,"state":"deepblue","line":"top right"},
+	  {"id":"12","type":"top","code":13,"state":"deepblue","line":"top"},
+	  {"id":"13","type":"top","code":14,"state":"deepblue","line":"top right"},
+	  {"id":"14","type":"top","code":15,"state":"deepblue","line":"top"},
+	  {"id":"15","type":"top","code":16,"state":"deepblue","line":"top right"},
+	  {"id":"16","type":"top","code":17,"state":"deepblue","line":"top"},
+	  {"id":"17","type":"top","code":18,"state":"deepblue","line":"top right"},
+	  {"id":"18","type":"top","code":19,"state":"deepblue","line":"top right"}]
     };
   },
   created() {
@@ -517,12 +349,12 @@ export default {
     clickMap: function (info) {
       console.log(info);
     },
-    popupBack: function () {
-      this.showPopup = false;
-    },
     clickEl: function (item) {
-      console.log(item);
-      this.showPopup = true;
+		let wpId = this.$route.path.split('/').pop(),
+			wtId = wpId.split('_')[0] +'01_'+ item.id;
+		this.$router.push({
+		  path: `/monitor/windsite/inverter-info/`+wpId+`/`+wtId,
+		});
     },
   },
   watch: {

+ 661 - 0
src/components/arcgis/XH_GDC.vue

@@ -0,0 +1,661 @@
+<template>
+  <div class="map-1" style="width: 100%; height: 100%">
+    <arcgis @when="when" ref="arcgis" :data="arcgisData" @clickMap="clickMap">
+      <template v-slot:content>
+        <div class="panel-box">
+          <div
+            class="panel-item"
+            :class="panel.line"
+            v-for="(panel, index) of panels"
+            :key="index"
+          >
+            <svg
+              v-show="panel.type != 'none' && panel.type != 'syz'"
+              viewBox="0 0 800 800"
+              version="1.1"
+              xmlns="http://www.w3.org/2000/svg"
+              xmlns:xlink="http://www.w3.org/1999/xlink"
+              xml:space="preserve"
+            >
+              <defs>
+                <rect
+                  id="fill-rect"
+                  x="5"
+                  y="5"
+                  rx="8"
+                  ry="8"
+                  width="90"
+                  height="340"
+                  fill="#303B6F"
+                />
+                <rect
+                  id="none-rect"
+                  x="5"
+                  y="5"
+                  rx="8"
+                  ry="8"
+                  width="90"
+                  height="120"
+                  fill="#303B6F"
+                />
+                <g id="panel-deepblue">
+                  <polygon
+                    fill="#FFFFFF"
+                    points="300 13.73 60.07 13.73 60.07 13.73 22.48 13.73 0 109.84 0 109.84 0 109.84 0 109.84 0 109.84 22.48 205.95 272.88 205.95 272.88 205.61 300 205.61 300 13.73"
+                  />
+                  <polygon
+                    fill="#5C9BAF"
+                    points="250.4 109.84 3.26 109.84 29 0 276.14 0 250.4 109.84"
+                  />
+                  <polygon
+                    fill="#00486B"
+                    points="29 219.68 276.14 219.68 250.4 109.84 3.26 109.84 29 219.68"
+                  />
+                </g>
+                <g id="panel-blue">
+                  <polygon
+                    fill="#FFFFFF"
+                    points="300 13.73 60.07 13.73 60.07 13.73 22.48 13.73 0 109.84 0 109.84 0 109.84 0 109.84 0 109.84 22.48 205.95 272.88 205.95 272.88 205.61 300 205.61 300 13.73"
+                  />
+                  <polygon
+                    fill="#23ABFF"
+                    points="250.4 109.84 3.26 109.84 29 0 276.14 0 250.4 109.84"
+                  />
+                  <polygon
+                    fill="#0E6BBB"
+                    points="29 219.68 276.14 219.68 250.4 109.84 3.26 109.84 29 219.68"
+                  />
+                </g>
+                <g id="panel-red">
+                  <polygon
+                    fill="#FFFFFF"
+                    points="290 13.27 58.07 13.27 58.07 13.27 21.73 13.27 0 106.18 0 106.18 0 106.18 0 106.18 0 106.18 21.73 199.09 263.79 199.09 263.79 198.75 290 198.75 290 13.27"
+                  />
+                  <polygon
+                    fill="#EC1208"
+                    points="242.05 106.18 3.15 106.18 28.04 0 266.94 0 242.05 106.18"
+                  />
+                  <polygon
+                    fill="#AA0607"
+                    points="28.04 212.36 266.94 212.36 242.05 106.18 3.15 106.18 28.04 212.36"
+                  />
+                </g>
+              </defs>
+              <!-- 底图 左右两列矩形 -->
+              <g>
+                <use xlink:href="#fill-rect" x="50" y="50" />
+                <use xlink:href="#fill-rect" x="150" y="50" />
+                <use xlink:href="#fill-rect" x="550" y="50" />
+                <use xlink:href="#fill-rect" x="650" y="50" />
+                <use xlink:href="#fill-rect" x="50" y="400" />
+                <use xlink:href="#fill-rect" x="150" y="400" />
+                <use xlink:href="#fill-rect" x="550" y="400" />
+                <use xlink:href="#fill-rect" x="650" y="400" />
+              </g>
+
+              <!-- 中间上矩形 全部 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'fill' || panel.type == 'bottom'
+                    ? 'block'
+                    : 'none')
+                "
+              >
+                <use xlink:href="#fill-rect" x="250" y="50" />
+                <use xlink:href="#fill-rect" x="350" y="50" />
+                <use xlink:href="#fill-rect" x="450" y="50" />
+              </g>
+
+              <!-- 中间上矩形 一半 -->
+              <g
+                :style="'display: ' + (panel.type == 'top' ? 'block' : 'none')"
+              >
+                <use xlink:href="#none-rect" x="250" y="270" />
+                <use xlink:href="#none-rect" x="350" y="270" />
+                <use xlink:href="#none-rect" x="450" y="270" />
+              </g>
+
+              <!-- 中间上逆变器 深蓝色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'top' && panel.state == 'deepblue'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-deepblue" x="250" y="50" />
+              </g>
+
+              <!-- 中间上逆变器 蓝色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'top' && panel.state == 'blue'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-blue" x="250" y="50" />
+              </g>
+
+              <!-- 中间上逆变器 红色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'top' && panel.state == 'red'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-red" x="250" y="50" />
+              </g>
+
+              <!-- 中间上文字 -->
+              <g
+                :style="'display: ' + (panel.type == 'top' ? 'block' : 'none')"
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <text
+                  x="365"
+                  y="220"
+                  fill="#ffffff"
+                  font-size="150"
+                  text-anchor="middle"
+                >
+                  {{ panel.code }}
+                </text>
+              </g>
+
+              <!-- 中间下矩形 全部 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'fill' || panel.type == 'top'
+                    ? 'block'
+                    : 'none')
+                "
+              >
+                <use xlink:href="#fill-rect" x="250" y="400" />
+                <use xlink:href="#fill-rect" x="350" y="400" />
+                <use xlink:href="#fill-rect" x="450" y="400" />
+              </g>
+
+              <!-- 中间下矩形 一半 -->
+              <g
+                :style="
+                  'display: ' + (panel.type == 'bottom' ? 'block' : 'none')
+                "
+              >
+                <use xlink:href="#none-rect" x="250" y="400" />
+                <use xlink:href="#none-rect" x="350" y="400" />
+                <use xlink:href="#none-rect" x="450" y="400" />
+              </g>
+
+              <!-- 中间下逆变器 深蓝色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'bottom' && panel.state == 'deepblue'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-deepblue" x="250" y="530" />
+              </g>
+
+              <!-- 中间下逆变器 蓝色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'bottom' && panel.state == 'blue'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-blue" x="250" y="530" />
+              </g>
+
+              <!-- 中间下逆变器 红色 -->
+              <g
+                :style="
+                  'display: ' +
+                  (panel.type == 'bottom' && panel.state == 'red'
+                    ? 'block'
+                    : 'none')
+                "
+                class="can-click esri-component"
+                @click.prevent="clickEl(panel)"
+              >
+                <use xlink:href="#panel-red" x="250" y="530" />
+              </g>
+
+              <!-- 中间下文字 -->
+              <g
+                :style="
+                  'display: ' + (panel.type == 'bottom' ? 'block' : 'none')
+                "
+                class="can-click"
+                @click.prevent="clickEl(panel)"
+              >
+                <text
+                  x="460"
+                  y="740"
+                  fill="#ffffff"
+                  font-size="150"
+                  text-anchor="middle"
+                >
+                  {{ panel.code }}
+                </text>
+              </g>
+            </svg>
+            <div v-show="panel.type == 'syz'" class="panel-syz">
+              <img :src="syzImg" class="syz-img" />
+              <div class="syz-text">升压站</div>
+            </div>
+          </div>
+          <!-- <img :src="tempImg" style="width: 800px; height: 700px;"> -->
+        </div>
+      </template>
+    </arcgis>
+  </div>
+</template>
+
+<script>
+import arcgis from "./arcgis.vue";
+import dataService from "@/helper/data.js";
+
+export default {
+  // 名称
+  name: "Map",
+  // 使用组件
+  components: {
+    arcgis,
+  },
+  props: {
+    wpId: {
+      type: String,
+      default: "",
+    },
+  },
+  // 数据
+  data() {
+    return {
+      wpnumMap: {}, //风机监视数量
+      wpInfoMap: {}, //风机详情
+      fjmap: [], // 风机名
+      sourceId: "",
+      arcgisData: {
+        mode: "2D", // 模式 2D 3D
+        title: "宁夏地图", // 标题
+        center: [105.24334, 37.23153], // 初始中心点
+        height: 654, // 3D地图初始相机高度
+        tilt: 65, // 俯视角
+        scale: 15000,
+        rotation: 180,
+      },
+      tempImg: require("@assets/temp1.png"),
+      syzImg: require("@assets/png/booster-station.png"),
+      showPopup: true,
+      panels: [{"id":"00","type":"top","code":1,"state":"deepblue","line":"top left"},{"id":"01","type":"top","code":2,"state":"deepblue","line":"top right"},{"id":"02","type":"top","code":3,"state":"deepblue","line":"top"},{"id":"03","type":"top","code":4,"state":"deepblue","line":"top right"},{"id":"04","type":"top","code":5,"state":"deepblue","line":"top"},{"id":"05","type":"top","code":6,"state":"deepblue","line":"top right"},{"id":"06","type":"top","code":7,"state":"deepblue","line":"top"},{"id":"07","type":"top","code":8,"state":"deepblue","line":"top right"},{"id":"08","type":"top","code":9,"state":"deepblue","line":"top"},{"id":"09","type":"top","code":10,"state":"deepblue","line":"top right"},{"id":10,"type":"top","code":11,"state":"deepblue","line":"top left"},{"id":11,"type":"top","code":12,"state":"deepblue","line":"top right"},{"id":12,"type":"top","code":13,"state":"deepblue","line":"top"},{"id":13,"type":"top","code":14,"state":"deepblue","line":"top right"},{"id":14,"type":"top","code":15,"state":"deepblue","line":"top"},{"id":15,"type":"top","code":16,"state":"deepblue","line":"top right"},{"id":16,"type":"top","code":17,"state":"deepblue","line":"top"},{"id":17,"type":"top","code":18,"state":"deepblue","line":"top right"},
+	  {"id":'',type: "none","code":'',"state":"","line":""},{"id":'',type: "none","code":'',"state":"","line":""},
+	  {"id":18,"type":"top","code":19,"state":"deepblue","line":"top left"},{"id":19,"type":"top","code":20,"state":"deepblue","line":"top"},{"id":20,"type":"top","code":21,"state":"deepblue","line":"top"},{"id":21,"type":"top","code":22,"state":"deepblue","line":"top"},{"id":22,"type":"top","code":23,"state":"deepblue","line":"top"},{"id":23,"type":"top","code":24,"state":"deepblue","line":"top"},{"id":24,"type":"top","code":25,"state":"deepblue","line":"top right"}]
+    };
+  },
+  created() {
+    let that = this;
+    that.sourceId = this.wpId;
+    that.$nextTick(() => {});
+  },
+  // 函数
+  methods: {
+    when: function () {
+      this.$refs.arcgis.addHtmlPoint(
+        [106.48638888888888, 38.924166666666665],
+        "content",
+        400,
+        350
+      );
+    },
+    clickMap: function (info) {
+      console.log(info);
+    },
+    clickEl: function (item) {
+		let wpId = this.$route.path.split('/').pop(),
+			wtId = wpId.split('_')[0] +'01_'+ item.id;
+		this.$router.push({
+		  path: `/monitor/windsite/inverter-info/`+wpId+`/`+wtId,
+		});
+    },
+  },
+  watch: {
+    wpId(res) {
+      this.sourceId = res;
+    },
+  },
+};
+</script>
+
+<style lang="less">
+@titleHeight: 40px;
+
+.map-1 {
+  width: 100%;
+  height: calc(100vh - 90px);
+  display: flex;
+  flex-direction: column;
+
+  .btn-group-tabs {
+    display: flex;
+    flex-direction: row;
+  }
+
+    .panel-box {
+        width: 840px;
+        padding: 20px;
+        display: flex;
+        flex-wrap: wrap;
+        background: #536268B8;
+
+        .panel-item {
+            width: 80px;
+            height: 80px;
+            position: relative;
+            
+            // margin-top: -20px;
+            // margin-left: -20px;
+
+            &.top {
+                &::after {
+                    top: -3px;
+                    opacity: 1;
+                }
+            }
+
+            &.bottom {
+                &::after {
+                    bottom: -3px;
+                    opacity: 1;
+                }
+            }
+
+            &.left {
+                &::before {
+                    left: -3px;
+                    opacity: 1;
+                }
+            }
+
+            &.right {
+                &::before {
+                    right: -3px;
+                    opacity: 1;
+                }
+            }
+
+            &::after {
+                content: '';
+                width: 100%;
+                height: 6px;
+                position: absolute;
+                left: 0;
+                background: @green;
+                opacity: 0;
+            }
+
+            &::before {
+                content: '';
+                width: 6px;
+                height: 100%;
+                position: absolute;
+                top: 0;
+                background: @green;
+                opacity: 0;
+            }
+
+            svg {
+                width: 80px;
+                height: 80px;
+            }
+
+            .panel-syz {
+                width: 100%;
+                height: 100%;
+                position: relative;
+
+                .syz-img {
+                    position: absolute;
+                    height: 70px;
+                    top: -35px;
+                    left: -10px;
+                }
+
+                .syz-text {
+                    position: absolute;
+                    color: @green;
+                    font-size: @fontsize-l;
+                    width: 100%;
+                    text-align: center;
+                    left: 0;
+                    top: -55px;
+                    font-weight: bold;
+                }
+            }
+        }
+
+    }
+
+  .can-click {
+    cursor: pointer;
+  }
+
+  .syz-img {
+    width: 65px;
+    height: 47px;
+
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
+
+  .panel-title {
+    width: 100%;
+    background-color: fade(@darkgray, 40%);
+    margin-top: 16px;
+    padding: 6px;
+    display: flex;
+    align-items: center;
+
+    .panel-title-name {
+      color: @green;
+      display: flex;
+      align-items: center;
+      line-height: 0;
+      font-size: 0;
+
+      i,
+      span {
+        margin: 0 0 0 16px;
+        line-height: 0;
+        font-size: 13px;
+      }
+    }
+
+    .sub-title-item {
+      display: flex;
+      align-items: center;
+      margin-left: 16px;
+
+      .sub-title {
+        font-size: 13px;
+        margin-left: 6px;
+      }
+
+      .sub-count {
+        font-size: 13px;
+        font-weight: 500;
+      }
+
+      img {
+        height: 31px;
+      }
+    }
+  }
+
+  .panel-body {
+    flex-grow: 1;
+    background-color: fade(@darkgray, 20%);
+    padding: 8px;
+    overflow: auto;
+    position: relative;
+
+    .arcgis-layer {
+      z-index: 1;
+    }
+
+    .map-popup-panel {
+      width: 760px;
+      position: absolute;
+      left: 71px;
+      top: 22px;
+      z-index: 2;
+
+      .map-popup-panel-header {
+        width: 100%;
+        background: fade(#152221, 90%);
+        display: flex;
+
+        .map-popup-panel-title {
+          padding: 17px 24px;
+          font-size: @fontsize-s;
+          position: relative;
+
+          &::before,
+          &::after {
+            position: absolute;
+            width: calc(50% - 6px);
+            bottom: 0;
+            border-bottom: 2px solid @green;
+          }
+
+          &::before {
+            content: "";
+            left: 0;
+          }
+
+          &::after {
+            content: "";
+            right: 0;
+          }
+
+          span {
+            position: absolute;
+            width: 11.3px;
+            height: 11.3px;
+            border-left: 2px solid @green;
+            border-top: 2px solid @green;
+            left: calc(50% - 5.65px);
+            bottom: -3px;
+            transform: rotate(45deg);
+          }
+        }
+
+        .map-popup-panel-date {
+          flex-grow: 1;
+          padding: 17px 24px;
+          font-size: @fontsize-s;
+          text-align: right;
+          border-bottom: 2px solid @green;
+        }
+
+        .map-popup-panel-back {
+          margin-left: auto;
+          width: 54px;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+          position: relative;
+          cursor: pointer;
+
+          &::after {
+            content: "";
+            position: absolute;
+            left: 0;
+            height: 50%;
+            border-left: 1px solid @gray;
+            top: 25%;
+          }
+        }
+      }
+
+      .map-popup-panel-body {
+        background: fade(#152221, 75%);
+        border: 1px solid fade(@darkgray, 40);
+        border-top: 0px;
+
+        .table-form {
+          .text,
+          .unit {
+            font-weight: 400;
+          }
+
+          .unit {
+            min-width: auto;
+          }
+
+          .value,
+          .unit {
+            text-align: left;
+          }
+        }
+      }
+    }
+
+    .map-tool {
+      position: absolute;
+      right: 22px;
+      top: 22px;
+      z-index: 2;
+      background: #152221af;
+      padding: 18px 14px;
+
+      .m-btn {
+        width: 124px;
+        height: 44px;
+        background: #152221bf;
+        border: 1px solid #152221bf;
+        color: #ffffff;
+        transition: all 0.3s;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        cursor: pointer;
+
+        &:hover,
+        &.active {
+          background: #05bb4c33;
+          border: 1px solid #05bb4c;
+          color: #05bb4c;
+        }
+
+        + .m-btn {
+          margin-top: 16px;
+        }
+      }
+    }
+  }
+}
+</style>

+ 6 - 8
src/views/WindSite/components/boosterstation/sbq.vue

@@ -1312,16 +1312,14 @@
 								<rect x="389.108" y="450.067" opacity="0.9" fill="#162320" enable-background="new    " width="108.761" height="18.486"/>
 								<rect x="389.108" y="470.563" opacity="0.9" fill="#162320" enable-background="new    " width="108.761" height="18.489"/>
 								<g>
-									<text transform="matrix(1 0 0 1 391.9287 461.8799)" fill="#96A0A1" font-family="'MicrosoftYaHei'" font-size="11.3899"> P(MVar): </text>
+									<text transform="matrix(1 0 0 1 407.9287 461.8799)" fill="#96A0A1" font-family="'MicrosoftYaHei'" font-size="11.3899"> la(A): </text>
 								</g>
 								<g>
-									<text transform="matrix(1 0 0 1 392.9043 484.1641)" fill="#96A0A1" font-family="'MicrosoftYaHei'" font-size="11.3899"> Q(MVar): </text>
+									<text transform="matrix(1 0 0 1 392.9043 484.1641)" fill="#96A0A1" font-family="'MicrosoftYaHei'" font-size="11.3899"> (MVar): </text>
 								</g>
 								<rect x="389.108" y="490.298" opacity="0.9" fill="#162320" enable-background="new    " width="108.761" height="18.485"/>
 								<g>
-									<text transform="matrix(1 0 0 1 407.8306 504.248)" fill="#96A0A1" font-family="'MicrosoftYaHei'" font-size="11.3899"> la </text>
-									<text transform="matrix(1 0 0 1 417.1577 504.248)" fill="#96A0A1" font-family="'MicrosoftYaHei'" font-size="9.6234"> (A) </text>
-									<text transform="matrix(1 0 0 1 430.3569 504.248)" fill="#96A0A1" font-family="'MicrosoftYaHei'" font-size="11.3899"> : </text>
+									<text transform="matrix(1 0 0 1 392.8306 504.248)" fill="#96A0A1" font-family="'MicrosoftYaHei'" font-size="11.3899"> Q(MVar): </text>
 								</g>
 								<rect x="389.108" y="509.783" opacity="0.9" fill="#162320" enable-background="new    " width="108.761" height="18.487"/>
 								<g>
@@ -3942,15 +3940,15 @@
 								<g>
 									<text transform="matrix(1 0 0 1 443.1121 461.8801)" fill="#217E3A"
 										font-family="'MicrosoftYaHei'" font-size="9.463">
-										{{ ajaxData.sbqpkwmx1 }}
+										{{ ajaxData.sbqlaamx1 }}
 									</text>
 									<text transform="matrix(1 0 0 1 443.1121 482.5481)" fill="#217E3A"
 										font-family="'MicrosoftYaHei'" font-size="9.463">
-										{{ ajaxData.sbqqkvarmx1 }}
+										{{ ajaxData.sbqpkwmx1 }}
 									</text>
 									<text transform="matrix(1 0 0 1 443.1145 503.9133)" fill="#217E3A"
 										font-family="'MicrosoftYaHei'" font-size="9.463">
-										{{ ajaxData.sbqlaamx1 }}
+										{{ ajaxData.sbqqkvarmx1 }}
 									</text>
 									<text transform="matrix(1 0 0 1 443.1145 523.4016)" fill="#217E3A"
 										font-family="'MicrosoftYaHei'" font-size="9.463">

+ 1 - 0
src/views/WindSite/components/generalappearance/pl2.vue

@@ -1881,6 +1881,7 @@
 		methods: {
 			// 渲染每个机箱的表格参数
 			renderData(data = {}) {
+				console.log(data)
 				// 取出开关的 DOM
 				const switchDom = $("#data").find("rect");
 				// 遍历数据,首先取出开关单独写逻辑渲染颜色,除了开关以外的就是每个机箱的数据

+ 8 - 5
src/views/WindSite/pages/GeneralAppearance.vue

@@ -54,8 +54,8 @@
 			<XS class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'XS_FDC'" />
 			<XH class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'XH_GDC'" />
 			<DWK class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'DWK_GDC'" />
-			<PL1 class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'PL01_GC'" />
-			<PL2 class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'PL02_GC'" />
+			<PL1 class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'PL_GDC'" />
+			<PL2 class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'PL2_GDC'" />
 			<MCH class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'MCH_GDC'" />
 			<HZJ class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'HZJ_GDC'" />
 		</div>
@@ -154,13 +154,16 @@
 									code: ele.id,
 								});
 							} else {
-								if (ele.id == "PL_GDC") {
-									ele.id = 'PL01_GC';
-								}
 								btnGroup[1].btns.push({
 									text: ele.name,
 									code: ele.id,
 								});
+								// if(ele.id == 'PL_GDC'){
+								// 	btnGroup[1].btns.push({
+								// 	  text: '平罗二期光伏电站',
+								// 	  code: 'PL2_GDC',
+								// 	});
+								// }
 							}
 						});
 

+ 16 - 62
src/views/WindSite/pages/Map.vue

@@ -54,8 +54,11 @@
 	  <SBQFDC wpId="SBQ_FDC" v-if="wpId.indexOf('SBQ_FDC') !== -1" />
 	  <XSFDC wpId="XS_FDC" v-if="wpId.indexOf('XS_FDC') !== -1" />
 	  
-	  
-      <PLGDC wpId="PL_GDC" v-if="wpId.indexOf('GDC') !== -1" />
+      <PLGDC wpId="PL_GDC" v-if="wpId.indexOf('PL_GDC') !== -1" />
+	  <DWKGDC wpId="DWK_GDC" v-if="wpId.indexOf('DWK_GDC') !== -1" />
+	  <XHGDC wpId="XH_GDC" v-if="wpId.indexOf('XH_GDC') !== -1" />
+	  <MCHGDC wpId="MCH_GDC" v-if="wpId.indexOf('MCH_GDC') !== -1" />
+	  <HZJGDC wpId="HZJ_GDC" v-if="wpId.indexOf('HZJ_GDC') !== -1" />
       <div class="map-popup-panel" v-show="showPopup">
         <!-- <div class="map-popup-panel-header">
           <div class="map-popup-panel-title green">
@@ -171,6 +174,10 @@ import QSFDC from "@com/arcgis/QS_FDC.vue";
 import SBQFDC from "@com/arcgis/SBQ_FDC.vue";
 import XSFDC from "@com/arcgis/XS_FDC.vue";
 import PLGDC from "@com/arcgis/PL_GDC.vue";
+import DWKGDC from "@com/arcgis/DWK_GDC.vue";
+import XHGDC from "@com/arcgis/XH_GDC.vue";
+import MCHGDC from "@com/arcgis/MCH_GDC.vue";
+import HZJGDC from "@com/arcgis/HZJ_GDC.vue";
 import dataService from "@/helper/data.js";
 
 export default {
@@ -184,7 +191,11 @@ export default {
 	QSFDC,
 	SBQFDC,
 	XSFDC,
-    PLGDC
+    PLGDC,
+	DWKGDC,
+	XHGDC,
+	MCHGDC,
+	HZJGDC
   },
   // 数据
   data() {
@@ -294,6 +305,7 @@ export default {
         },
         success(res) {
           if (res.code == 200) {
+			  console.log(res)
             that.wpnumMap = res.data.fczbmap.jczbmap;
             that.wpInfoMap = res.data.wxssmap;
             that.fjmap = res.data.fjmap[0];
@@ -311,65 +323,7 @@ export default {
         });
       });
     },
-    when: function () {
-		console.log(this.wpId.toLowerCase())
-      let jsonObj = dataService.get("arcgis-mhs");
-      this.fans = jsonObj;
-      jsonObj.forEach((item) => {
-        let obj = this.fjmap.find((t) => {
-          let wtid = t.wtId.replace("01_","");
-          if (wtid == item.attributes.code) return t
-        });
-        if (obj) {
-          item.attributes.state = String(obj.fjzt);
-        } else {
-          item.attributes.state = "4";
-        }
-        switch (item.attributes.state) {
-          case "0":  //待机
-            item.attributes.rotate = false; // 转
-            item.attributes.dur = 8; // 转一圈时间
-            break;
-          case "1":  //运行
-            item.attributes.rotate = true; // 转
-            item.attributes.dur = 2; // 转一圈时间
-            break;
-          case "2":  //故障
-            item.attributes.rotate = false; // 不转
-            item.attributes.dur = 8;
-            break;
-          case "3":  //中断
-            item.attributes.rotate = false; // 不转
-            item.attributes.dur = 8;
-            break;  
-          case "4":  //维护
-            item.attributes.rotate = false; // 不转
-            item.attributes.dur = 8;
-            break;  
-          case "5":  //限电
-            item.attributes.rotate = true; // 转
-            item.attributes.dur = 6;
-            break; 
-          case "6":  //停机
-            item.attributes.rotate = false; // 不转
-            item.attributes.dur = 8;
-            break;      
-          default:
-            item.attributes.rotate = false;
-            item.attributes.dur = 8;
-            break;
-        }
-        this.$refs.arcgis.addHtmlPoint(
-          [item.geometry.x, item.geometry.y],
-          item.attributes.code,
-          33,
-          50,
-          false
-        );
-      });
-      let lineJsonObj = dataService.get("arcgis-mhs-line");
-      this.$refs.arcgis.addFanByJson(jsonObj, lineJsonObj);
-    },
+    
     clickMap: function (info) {
       console.log(info);
       //   this.showPopup = true;

+ 2 - 2
src/views/malfunctionDiagnose/gzfl.vue

@@ -112,7 +112,7 @@
 					},
 					success(res) {
 						let key = ['变桨','变频器','齿轮箱','发电机','风机其它','滑环','机舱加热','控制','冷却','偏航','液压','主轴'];
-						that.rzdfsData = {
+						that.nzdfsData = {
 							indicator:key,
 							data:[{value:Object.values(res.data[0][0])}]
 						}
@@ -120,7 +120,7 @@
 							indicator:key,
 							data:[{value:Object.values(res.data[1][0])}]
 						}
-						that.nzdfsData = {
+						that.rzdfsData = {
 							indicator:key,
 							data:[{value:Object.values(res.data[2][0])}]
 						}

+ 2 - 2
src/views/malfunctionDiagnose/yjfl.vue

@@ -112,7 +112,7 @@
 					},
 					success(res) {
 						let key = ['测风系统','传动链','发电机','变桨系统','齿轮箱','液压系统','偏航系统','机舱','其它','塔底柜'];
-						that.rzdfsData = {
+						that.nzdfsData = {
 							indicator:key,
 							data:[{value:Object.values(res.data[0][0])}]
 						}
@@ -120,7 +120,7 @@
 							indicator:key,
 							data:[{value:Object.values(res.data[1][0])}]
 						}
-						that.nzdfsData = {
+						that.rzdfsData = {
 							indicator:key,
 							data:[{value:Object.values(res.data[2][0])}]
 						}

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio