Browse Source

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

baiyanting 2 years ago
parent
commit
d21c028b3c

+ 4 - 1
.gitignore

@@ -11,5 +11,8 @@ package-lock.json
 .py/
 .idea
 .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
+
+

+ 7 - 0
package.json

@@ -12,16 +12,21 @@
     "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",
     "core-js": "^3.6.5",
     "cross-env": "^7.0.3",
+
     "echarts": "^5.1.1",
     "echarts-gl": "^2.0.4",
     "echarts-stat": "^1.2.0",
@@ -29,7 +34,9 @@
     "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",

+ 2 - 3
src/components/chart/bar/multiple-bar-chart.vue

@@ -153,10 +153,10 @@ export default {
       default: () => [
         // "#05bb4c",
         "#ba3237",
-         "#e17e23",
+        "#e17e23",
         "#4b55ae",
         "#c531c7",
-         "#ccf0d3",
+        "#ccf0d3",
       ],
     },
     showAnimation: {
@@ -363,7 +363,6 @@ export default {
     },
   },
   created() {
- 
     this.$nextTick(() => {
       this.id = "pie-chart-" + util.newGUID();
     });

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

@@ -164,7 +164,7 @@ export default {
       });
     },
     series() {
-      console.log(2222)
+      console.log(2222);
       let result = [];
       this.list.forEach((value, index) => {
         result.push({
@@ -179,7 +179,7 @@ export default {
               width: 1,
             },
           },
-          yAxisIndex: value.yAxisIndex ||0,
+          yAxisIndex: value.yAxisIndex || 0,
           data: value.value.map((t) => {
             return t.value || t;
           }),
@@ -228,8 +228,8 @@ export default {
           },
         },
         legend: {
-          orient: 'right', //垂直显示 y: 'center', //延Y轴居中 x: 'right' //居右显示
-          // 
+          orient: "right", //垂直显示 y: 'center', //延Y轴居中 x: 'right' //居右显示
+          //
           show: this.showLegend,
           data: this.legend,
           right: 5,

+ 40 - 27
src/components/chart/pie/dual-pie-chart.vue

@@ -6,7 +6,7 @@
 import util from "@/helper/util.js";
 import partten from "@/helper/partten.js";
 import * as echarts from "echarts";
-import { left } from '@antv/x6/lib/registry/port-layout/line';
+import { left } from "@antv/x6/lib/registry/port-layout/line";
 
 export default {
   name: "dsah-pie",
@@ -48,9 +48,7 @@ export default {
     // 外部饼图数据
     outerData: {
       type: Array,
-      default: () => [
-        
-      ],
+      default: () => [],
     },
     // 颜色
     color: {
@@ -77,20 +75,22 @@ export default {
       let legendData = [...legend1, ...legend2];
 
       let option = {
-        color: [  
-        "#e17e23",
-        "#ba3237",
-        "#c531c7",
-        "#4b55ae",
-        "#ccf0d3",
-        "#05bb4c",
+        color: [
+          "#e17e23",
+          "#ba3237",
+          "#c531c7",
+          "#4b55ae",
+          "#ccf0d3",
+          "#05bb4c",
         ],
         tooltip: {
           trigger: "item",
-          backgroundColor: this.$store.state.themeName === "dark"
+          backgroundColor:
+            this.$store.state.themeName === "dark"
               ? "rgba(0,0,0,0.4)"
               : "rgba(255,255,255,0.5)",
-          borderColor: this.$store.state.themeName === "dark"
+          borderColor:
+            this.$store.state.themeName === "dark"
               ? partten.getColor("gray")
               : "#000",
           textStyle: {
@@ -113,28 +113,33 @@ export default {
           itemHeight: 15,
           formatter: (name) => {
             if (that.innerData.length) {
-              const item = that.innerData.filter((item) => item.name === name)[0];
+              const item = that.innerData.filter(
+                (item) => item.name === name
+              )[0];
               return `{name|${name}:}{value| ${item.value}}`;
             }
           },
           //icon: 'circle',
           itemGap: 12, //图例item间距
           textStyle: {
-            color: this.$store.state.themeName === "dark"
-              ? partten.getColor("gray")
-              : "#000",
+            color:
+              this.$store.state.themeName === "dark"
+                ? partten.getColor("gray")
+                : "#000",
             fontSize: util.vh(14),
             rich: {
               name: {
-                color: this.$store.state.themeName === "dark"
-              ? partten.getColor("gray")
-              : "#000",
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray")
+                    : "#000",
                 fontSize: 12,
               },
               value: {
-                color: this.$store.state.themeName === "dark"
-                ? partten.getColor("grayl")
-                : "#000",
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("grayl")
+                    : "#000",
                 fontSize: 12,
               },
             },
@@ -173,14 +178,18 @@ export default {
                 // length: 40,
                 // length2: 120,
                 lineStyle: {
-                  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
+                  color:
+                    this.$store.state.themeName === "dark" ? "#fff" : "#000",
                   fontSize: util.vh(14),
                 },
               },
             },
             itemStyle: {
               normal: {
-                borderWidth:this.$store.state.themeName === "dark" ? util.vh(14): util.vh(8),
+                borderWidth:
+                  this.$store.state.themeName === "dark"
+                    ? util.vh(14)
+                    : util.vh(8),
                 borderColor: "#071812",
               },
             },
@@ -191,10 +200,14 @@ export default {
                 },
                 padding: [0, 0, 0, 0],
                 rich: {
-                  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
+                  color:
+                    this.$store.state.themeName === "dark" ? "#fff" : "#000",
                   percent: {
                     fontSize: util.vh(14),
-                    color: this.$store.state.themeName === "dark" ? "#FFFFFF" : "#000000" ,
+                    color:
+                      this.$store.state.themeName === "dark"
+                        ? "#FFFFFF"
+                        : "#000000",
                   },
                 },
               },

+ 20 - 20
src/store/index.js

@@ -1,8 +1,8 @@
-import { createStore, createLogger } from 'vuex';
-import weather from './modules/weather';
-import user from './modules/user';
+import { createStore, createLogger } from "vuex";
+import weather from "./modules/weather";
+import user from "./modules/user";
 
-const debug = process.env.NODE_ENV !== 'production';
+const debug = process.env.NODE_ENV !== "production";
 
 // 默认状态
 const state = {
@@ -23,14 +23,14 @@ const mutations = {
     state.themeName = tag;
   },
   update(state, newData) {
-    state.windturbineMap = newData.data
+    state.windturbineMap = newData.data;
   },
   changeMenuData(state, newData) {
     state.menuData = newData;
   },
   changeModuleName(state, newData) {
     state.moudleName = newData;
-  }
+  },
 };
 
 const actions = {
@@ -45,30 +45,30 @@ const actions = {
   },
   changeModuleName(context, str) {
     context.commit("changeModuleName", str);
-  }
+  },
 };
 
 const getters = {
-  authToken: state => state.user.authToken,  //建立token的快捷访问   user 是因为index.js中导入的时候名称定义为user
-  submitDDTag: state => state.submitDDTag,
-  loading: state => state.loading,
-  username: state => state.user.username,
-  themeName: state => state.themeName,
-  asidez: state => state.z,
-  mainy: state => state.y,
-  login: state => state.login,
-  menuData: state => state.menuData
-}
+  authToken: (state) => state.user.authToken, //建立token的快捷访问   user 是因为index.js中导入的时候名称定义为user
+  submitDDTag: (state) => state.submitDDTag,
+  loading: (state) => state.loading,
+  username: (state) => state.user.username,
+  themeName: (state) => state.themeName,
+  asidez: (state) => state.z,
+  mainy: (state) => state.y,
+  login: (state) => state.login,
+  menuData: (state) => state.menuData,
+};
 
 export default createStore({
   modules: {
     weather,
-    user
+    user,
   },
   state,
   mutations,
   actions,
   getters,
   strict: debug,
-  plugins: debug ? [createLogger()] : []
-});
+  plugins: debug ? [createLogger()] : [],
+});

+ 16 - 11
src/views/Decision/Decision1.vue

@@ -342,11 +342,13 @@ export default {
       this.XiangMuVal(val);
     },
     XiangMuVal(val) {
-      api.benchmarkingProjectList({
-         wpids: val,
-      }).then((res) => {
-        this.XiangMu = res.data;
-      });
+      api
+        .benchmarkingProjectList({
+          wpids: val,
+        })
+        .then((res) => {
+          this.XiangMu = res.data;
+        });
 
       // var that = this;
       // that.API.requestData({
@@ -369,11 +371,13 @@ export default {
       this.XianLuVal(val);
     },
     XianLuVal(val) {
-      api.benchmarkingLineList({
-         projects: val,
-      }).then((res) => {
-        this.XianLu = res.data;
-      });
+      api
+        .benchmarkingLineList({
+          projects: val,
+        })
+        .then((res) => {
+          this.XianLu = res.data;
+        });
 
       // var that = this;
       // that.API.requestData({
@@ -429,7 +433,8 @@ export default {
       }
     },
     AjaxCommon() {
-      api.benchmarking({
+      api
+        .benchmarking({
           wpids: this.value1,
           projectids: this.value2,
           lineids: this.value3,

+ 91 - 90
src/views/LightMatrix1/LightMatrix1.vue

@@ -1,4 +1,4 @@
-<template >
+<template>
   <el-scrollbar>
     <div
       :class="
@@ -137,121 +137,122 @@
       </Row>
       <div class="panel-box">
         <!-- <box-select node=".card" @selectList="selectList"> -->
-          <div v-for="(pItem, pIndex) in sourceMap.fjmap" :key="pIndex" style="margin-bottom: 10px;">
-            <div
-              class="panel-title"
-              v-if="sourceMap.fjmap[pIndex][0].wpId.includes('FDC')"
-              :style="
+        <div
+          v-for="(pItem, pIndex) in sourceMap.fjmap"
+          :key="pIndex"
+          style="margin-bottom: 10px"
+        >
+          <div
+            class="panel-title"
+            v-if="sourceMap.fjmap[pIndex][0].wpId.includes('FDC')"
+            :style="
               $store.state.themeName === 'light'
                 ? 'background-color: #ffffff;border-bottom: 1px solid #B3BDC0;height: 28px;border-top-right-radius: 10px; border-top-left-radius: 10px;'
                 : ''
             "
-              
-            >
-              <div class="panel-title-name">
-                <i class="svg-icon svg-icon-sm svg-icon-green">
-                  <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
-                </i>
-                <div>
-                  {{
-                    sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId].name ||
-                    "------"
-                  }}
-                </div>
+          >
+            <div class="panel-title-name">
+              <i class="svg-icon svg-icon-sm svg-icon-green">
+                <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
+              </i>
+              <div>
+                {{
+                  sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId].name ||
+                  "------"
+                }}
+              </div>
+              <div
+                class="sub-title-item"
+                v-for="(fcItem, fcIndex) in fcStateArray"
+                :key="fcIndex"
+              >
+                <div class="sub-title">{{ fcItem.text }}</div>
                 <div
-                  class="sub-title-item"
-                  v-for="(fcItem, fcIndex) in fcStateArray"
-                  :key="fcIndex"
+                  v-if="fcItem.key === 'sjgl'"
+                  class="sub-count"
+                  :class="fcItem.color"
                 >
-                  <div class="sub-title">{{ fcItem.text }}</div>
-                  <div
-                    v-if="fcItem.key === 'sjgl'"
-                    class="sub-count"
-                    :class="fcItem.color"
-                  >
-                    {{
-                      (
-                        sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][
-                          fcItem.key
-                        ] / 1000
-                      ).toFixed(2) || "0"
-                    }}
-                  </div>
-                  <div v-else class="sub-count" :class="fcItem.color">
-                    {{
-                      (sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][
+                  {{
+                    (
+                      sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][
                         fcItem.key
-                      ] 
-                      ).toFixed(``)|| "0"
-                    }}
-                  </div>
+                      ] / 1000
+                    ).toFixed(2) || "0"
+                  }}
+                </div>
+                <div v-else class="sub-count" :class="fcItem.color">
+                  {{
+                    sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][
+                      fcItem.key
+                    ].toFixed(``) || "0"
+                  }}
                 </div>
               </div>
             </div>
-            <div
-              class="panel-title"
-              v-if="sourceMap.fjmap[pIndex][0].wpId.includes('GDC')"
-              :style="
+          </div>
+          <div
+            class="panel-title"
+            v-if="sourceMap.fjmap[pIndex][0].wpId.includes('GDC')"
+            :style="
               $store.state.themeName === 'light'
                 ? 'background-color: #ffffff;border-bottom: 1px solid #B3BDC0;height: 36px;display: flex; border-top-right-radius: 10px; border-top-left-radius: 10px;'
                 : ''
             "
-            >
-              <div class="panel-title-name">
-                <i class="svg-icon svg-icon-sm svg-icon-green">
-                  <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
-                </i>
-                <div>
+          >
+            <div class="panel-title-name">
+              <i class="svg-icon svg-icon-sm svg-icon-green">
+                <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
+              </i>
+              <div>
+                {{
+                  sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId].name ||
+                  "------"
+                }}
+              </div>
+              <div
+                class="sub-title-item"
+                v-for="(fcItem, fcIndex) in fcStateArray1"
+                :key="fcIndex"
+              >
+                <div class="sub-title">{{ fcItem.text }}</div>
+                <div class="sub-count" :class="fcItem.color">
                   {{
-                    sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId].name ||
-                    "------"
+                    (
+                      sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][
+                        fcItem.key
+                      ] / 1000
+                    ).toFixed(2) || "0"
                   }}
                 </div>
-                <div
-                  class="sub-title-item"
-                  v-for="(fcItem, fcIndex) in fcStateArray1"
-                  :key="fcIndex"
-                >
-                  <div class="sub-title">{{ fcItem.text }}</div>
-                  <div class="sub-count" :class="fcItem.color">
-                    {{
-                      (
-                        sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][
-                          fcItem.key
-                        ] / 1000
-                      ).toFixed(2) || "0"
-                    }}
-                  </div>
-                </div>
               </div>
             </div>
-            <div class="panel-body">
-              <div
-                class="card"
-                v-for="(cItem, cIndex) of pItem"
-                :key="cIndex"
-                v-show="cItem.isShow"
-                :class="cItem.active ? `on_${cItem.color}` : cItem.color"
-                :id="cItem.wtId"
-                @click="goDetails(cItem)"
-              >
-              
-                <!-- @dblclick="goDetails(cItem)"
+          </div>
+          <div class="panel-body">
+            <div
+              class="card"
+              v-for="(cItem, cIndex) of pItem"
+              :key="cIndex"
+              v-show="cItem.isShow"
+              :class="cItem.active ? `on_${cItem.color}` : cItem.color"
+              :id="cItem.wtId"
+              @click="goDetails(cItem)"
+            >
+              <!-- @dblclick="goDetails(cItem)"
                   @click="handleChoose(cItem.wtId)" -->
-                {{ cItem.wtId.substring(cItem.wtId.length - 3) }}
-              </div>
-              <!-- </div> -->
-              <!-- 站位用 保证卡片布局最后一行不会有问题 -->
-              <i class="blank" v-for="i in 40" :key="i"></i>
+              {{ cItem.wtId.substring(cItem.wtId.length - 3) }}
             </div>
+            <!-- </div> -->
+            <!-- 站位用 保证卡片布局最后一行不会有问题 -->
+            <i class="blank" v-for="i in 40" :key="i"></i>
           </div>
+        </div>
         <!-- </box-select> -->
       </div>
     </div>
   </el-scrollbar>
   <Dialog v-model="detialDisplay" :wpId="stationId" :wtId="windId"></Dialog>
   <!-- <GFDialog v-model="gfdetialDisplay" :wtId="windId"></GFDialog> -->
-  <Contrast v-model="contrastDisplay" ref="contrast"/>
+  <Contrast v-model="contrastDisplay" ref="contrast" />
 </template>
 
 <script>
@@ -580,7 +581,7 @@ export default {
     },
     handleClick() {
       this.contrastDisplay = true;
-      this.$refs.contrast.handleSearch(this.chooseList)
+      this.$refs.contrast.handleSearch(this.chooseList);
     },
   },
 
@@ -1216,4 +1217,4 @@ export default {
     text-align: center;
   }
 }
-</style>
+</style>

+ 227 - 208
src/views/WindSite/pages/Map2.vue

@@ -1,54 +1,68 @@
 <template>
-    <div>
-        <div class="btn-group-tabs">
-            <BtnGroup2 :gsGroups="gsGroups" :selectValue="gsselectValue" :btnGroups="btnGroups" :rowIndex="rowIndex"
-                :index="selectIndex" @select="select" @selectChange="selectChange" :wpId="wpId"></BtnGroup2>
-        </div>
-        <div class="period">
-            期次:
-            <div class="period-item" :class="{ active: periodIndex == val.id }"
-                v-for="(val, index) in btnGroups[rowIndex]?.btns[selectIndex]?.pjls" :key="index"
-                @click="handleChange(val)">{{ val.name }}</div>
-        </div>
-        <!-- 羊头崖 -->
-         <ytyMap v-if="periodIndex === 'YTY01_GC'" ref="maps"></ytyMap>
-        <!-- 败虎堡三期 -->
-        <bhb3Map v-if="periodIndex === 'BHB301_GC'" ref="maps"></bhb3Map>
-        <!-- 高家堰 -->
-        <gjyMap v-if="periodIndex === 'GJY01_GC'" ref="maps"></gjyMap>
-        <gjyMap2 v-if="periodIndex === 'GJY02_GC'" ref="maps"></gjyMap2>
-        <!-- 红石峁 -->
-        <hsmMap v-if="periodIndex === 'HSM01_GC'" ref="maps"></hsmMap>
-        <!-- 尹灵芝 -->
-        <ylzMap v-if="periodIndex === 'YLZ01_GC'" ref="maps"></ylzMap>
-        <!-- 丁家窑 -->
-        <djyMap v-if="periodIndex === 'DJY01_GC'" ref="maps"></djyMap>
-        <djyMap2 v-if="periodIndex === 'DJY02_GC'" ref="maps"></djyMap2>
-        <!-- 牛家岭 -->
-        <njlMap v-if="periodIndex === 'NJL01_GC'" ref="maps"></njlMap>
-        <njlMap2 v-if="periodIndex === 'NJL02_GC'" ref="maps"></njlMap2>
-        <!-- 盘道梁 -->
-        <pdlMap v-if="periodIndex === 'PDL01_GC'" ref="maps"></pdlMap>
-        <!-- 小五台 -->
-        <xwtMap v-if="periodIndex === 'XWT01_GC'" ref="maps"></xwtMap>
-        <!-- 败虎堡  一期 -->
-        <bhbMap v-if="periodIndex === 'BHB01_GC'" ref="maps"></bhbMap>
-        <!-- 平头镇 -->
-        <ptzMap v-if="periodIndex === 'PTZ01_GC'" ref="maps"></ptzMap>
-        <ptzMap2 v-if="periodIndex === 'PTZ02_GC'" ref="maps"></ptzMap2>
-        <!-- 禹风 败虎堡 -->
-        <bhbMap2 v-if="periodIndex === 'YF01_GC'" ref="maps"></bhbMap2>
-        <yfMap2 v-if="periodIndex === 'YF02_GC'" ref="maps"></yfMap2>
-        <!-- 平鲁大河堡 -->
-        <pldhbMap v-if="periodIndex === 'GJY03_GC'" ref="maps"></pldhbMap>
-        <!-- 朱坑一期 -->
-        <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>
+    <div class="btn-group-tabs">
+      <BtnGroup2
+        :gsGroups="gsGroups"
+        :selectValue="gsselectValue"
+        :btnGroups="btnGroups"
+        :rowIndex="rowIndex"
+        :index="selectIndex"
+        @select="select"
+        @selectChange="selectChange"
+        :wpId="wpId"
+      ></BtnGroup2>
     </div>
+    <div class="period">
+      期次:
+      <div
+        class="period-item"
+        :class="{ active: periodIndex == val.id }"
+        v-for="(val, index) in btnGroups[rowIndex]?.btns[selectIndex]?.pjls"
+        :key="index"
+        @click="handleChange(val)"
+      >
+        {{ val.name }}
+      </div>
+    </div>
+    <!-- 羊头崖 -->
+    <ytyMap v-if="periodIndex === 'YTY01_GC'" ref="maps"></ytyMap>
+    <!-- 败虎堡三期 -->
+    <bhb3Map v-if="periodIndex === 'BHB301_GC'" ref="maps"></bhb3Map>
+    <!-- 高家堰 -->
+    <gjyMap v-if="periodIndex === 'GJY01_GC'" ref="maps"></gjyMap>
+    <gjyMap2 v-if="periodIndex === 'GJY02_GC'" ref="maps"></gjyMap2>
+    <!-- 红石峁 -->
+    <hsmMap v-if="periodIndex === 'HSM01_GC'" ref="maps"></hsmMap>
+    <!-- 尹灵芝 -->
+    <ylzMap v-if="periodIndex === 'YLZ01_GC'" ref="maps"></ylzMap>
+    <!-- 丁家窑 -->
+    <djyMap v-if="periodIndex === 'DJY01_GC'" ref="maps"></djyMap>
+    <djyMap2 v-if="periodIndex === 'DJY02_GC'" ref="maps"></djyMap2>
+    <!-- 牛家岭 -->
+    <njlMap v-if="periodIndex === 'NJL01_GC'" ref="maps"></njlMap>
+    <njlMap2 v-if="periodIndex === 'NJL02_GC'" ref="maps"></njlMap2>
+    <!-- 盘道梁 -->
+    <pdlMap v-if="periodIndex === 'PDL01_GC'" ref="maps"></pdlMap>
+    <!-- 小五台 -->
+    <xwtMap v-if="periodIndex === 'XWT01_GC'" ref="maps"></xwtMap>
+    <!-- 败虎堡  一期 -->
+    <bhbMap v-if="periodIndex === 'BHB01_GC'" ref="maps"></bhbMap>
+    <!-- 平头镇 -->
+    <ptzMap v-if="periodIndex === 'PTZ01_GC'" ref="maps"></ptzMap>
+    <ptzMap2 v-if="periodIndex === 'PTZ02_GC'" ref="maps"></ptzMap2>
+    <!-- 禹风 败虎堡 -->
+    <bhbMap2 v-if="periodIndex === 'YF01_GC'" ref="maps"></bhbMap2>
+    <yfMap2 v-if="periodIndex === 'YF02_GC'" ref="maps"></yfMap2>
+    <!-- 平鲁大河堡 -->
+    <pldhbMap v-if="periodIndex === 'GJY03_GC'" ref="maps"></pldhbMap>
+    <!-- 朱坑一期 -->
+    <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>
 import BtnGroup2 from "@com/coms/btn/btn-group-double.vue";
@@ -77,176 +91,181 @@ import syMap2 from "./components/sy2-map.vue";
 import syMap from "./components/sy-map.vue";
 
 export default {
-    components: {
-        mljMap,
-        zkyqMap,
-        pldhbMap,
-        BtnGroup2,
-        gjyMap,
-        gjyMap2,
-        hsmMap,
-        ylzMap,
-        ytyMap,
-        bhb3Map,
-        djyMap,
-        djyMap2,
-        njlMap,
-        njlMap2,
-        pdlMap,
-        ptzMap,
-        ptzMap2,
-        xwtMap,
-        yfMap2,
-        bhbMap,
-        bhbMap2,
-        syMap2,
-        syMap
-    },
-    data() {
-        return {
-            // 定时器
-            timer: "",
-            gsGroups: [],
-            gsselectValue: '',
-            selectIndex: 0,
-            rowIndex: 0,
-            periodIndex: '',
-            windturbineList: [],
-            btnGroups: [
-                {
-                    icon: "svg-wind-site",
-                    btns: [],
-                },
-                {
-                    icon: "svg-photovoltaic",
-                    btns: [],
-                },
-            ],
+  components: {
+    mljMap,
+    zkyqMap,
+    pldhbMap,
+    BtnGroup2,
+    gjyMap,
+    gjyMap2,
+    hsmMap,
+    ylzMap,
+    ytyMap,
+    bhb3Map,
+    djyMap,
+    djyMap2,
+    njlMap,
+    njlMap2,
+    pdlMap,
+    ptzMap,
+    ptzMap2,
+    xwtMap,
+    yfMap2,
+    bhbMap,
+    bhbMap2,
+    syMap2,
+    syMap,
+  },
+  data() {
+    return {
+      // 定时器
+      timer: "",
+      gsGroups: [],
+      gsselectValue: "",
+      selectIndex: 0,
+      rowIndex: 0,
+      periodIndex: "",
+      windturbineList: [],
+      btnGroups: [
+        {
+          icon: "svg-wind-site",
+          btns: [],
+        },
+        {
+          icon: "svg-photovoltaic",
+          btns: [],
+        },
+      ],
+    };
+  },
+  created() {
+    this.wpId = this.$route.params.wpId;
+    this.$nextTick(() => {
+      this.getGS();
+      this.timer = setInterval(() => {
+        this.getWinds();
+      }, 3000);
+    });
+  },
+  methods: {
+    getGS() {
+      api.companysAjax().then((res) => {
+        if (res.data) {
+          this.gsselectValue = res.data[0].id;
+          this.gsGroups = res.data;
+          this.getWp();
         }
+      });
     },
-    created() {
-        this.wpId = this.$route.params.wpId;
-        this.$nextTick(() => {
-            this.getGS();
-            this.timer = setInterval(() => {
-                this.getWinds()
-            }, 3000);
-        });
+    selectChange(val) {
+      this.gsselectValue = val;
+      this.getWp();
     },
-    methods: {
-        getGS() {
-            api.companysAjax().then(res => {
-                if (res.data) {
-                    this.gsselectValue = res.data[0].id
-                    this.gsGroups = res.data
-                    this.getWp()
-                }
-            })
-        },
-        selectChange(val) {
-            this.gsselectValue = val
-            this.getWp()
-        },
-        getWp() {
-            api.windfarmByCmAjax({
-                cmId: this.gsselectValue
-            }).then((res) => {
-                let btnGroups = [
-                    {
-                        icon: "svg-wind-site",
-                        btns: [],
-                    },
-                    {
-                        icon: "svg-photovoltaic",
-                        btns: [],
-                    },
-                ];
+    getWp() {
+      api
+        .windfarmByCmAjax({
+          cmId: this.gsselectValue,
+        })
+        .then((res) => {
+          let btnGroups = [
+            {
+              icon: "svg-wind-site",
+              btns: [],
+            },
+            {
+              icon: "svg-photovoltaic",
+              btns: [],
+            },
+          ];
 
-                res.data.forEach((ele, index) => {
-                    if (ele.id.indexOf("FDC") !== -1) {
-                        btnGroups[0].btns.push({
-                            text: ele.name,
-                            code: ele.id,
-                            pjls: ele.pjls
-                        });
-                    } else {
-                        btnGroups[1].btns.push({
-                            text: ele.name,
-                            code: ele.id,
-                            pjls: ele.pjls
-                        });
-                    }
-                });
-                this.btnGroups = btnGroups;
-                this.renderBtnActiveIndex();
-            });
-        },
-        getWinds() {
-            api.windturbineByPjIdAjax({
-                pjId: this.periodIndex
-            }).then(res => {
-                if (res.data.length > 0 && this.$refs.maps) {
-                    this.$refs.maps.dayaDeal(res.data)
-                }
-            })
-        },
-        renderBtnActiveIndex() {
-            this.btnGroups.forEach((pEle, pIndex) => {
-                pEle.btns.forEach((cEle, cIndex) => {
-                    if (cEle.code === this.wpId) {
-                        this.rowIndex = pIndex;
-                        this.selectIndex = cIndex;
-                    }
-                });
-            });
-            this.periodIndex = this.btnGroups[this.rowIndex]?.btns[this.selectIndex]?.pjls[0].id
-            this.getWinds()
-        },
-        handleChange(val) {
-            this.periodIndex = val.id
-            this.getWinds()
-        },
-        select(res) {
-            this.$router.replace({
-                path: `/monitor/windsite/map2/${res.code}`,
-            });
-        },
+          res.data.forEach((ele, index) => {
+            if (ele.id.indexOf("FDC") !== -1) {
+              btnGroups[0].btns.push({
+                text: ele.name,
+                code: ele.id,
+                pjls: ele.pjls,
+              });
+            } else {
+              btnGroups[1].btns.push({
+                text: ele.name,
+                code: ele.id,
+                pjls: ele.pjls,
+              });
+            }
+          });
+          this.btnGroups = btnGroups;
+          this.renderBtnActiveIndex();
+        });
     },
-    unmounted() {
-        clearInterval(this.timer);
-        this.timer = null;
+    getWinds() {
+      api
+        .windturbineByPjIdAjax({
+          pjId: this.periodIndex,
+        })
+        .then((res) => {
+          if (res.data.length > 0 && this.$refs.maps) {
+            this.$refs.maps.dayaDeal(res.data);
+          }
+        });
     },
-    watch: {
-        $route(res) {
-            this.wpId = res.params.wpId;
-            if (res.params.wpId) {
-                this.getWp();
-            }
-            this.renderBtnActiveIndex();
-        },
+    renderBtnActiveIndex() {
+      this.btnGroups.forEach((pEle, pIndex) => {
+        pEle.btns.forEach((cEle, cIndex) => {
+          if (cEle.code === this.wpId) {
+            this.rowIndex = pIndex;
+            this.selectIndex = cIndex;
+          }
+        });
+      });
+      this.periodIndex =
+        this.btnGroups[this.rowIndex]?.btns[this.selectIndex]?.pjls[0].id;
+      this.getWinds();
     },
-}
+    handleChange(val) {
+      this.periodIndex = val.id;
+      this.getWinds();
+    },
+    select(res) {
+      this.$router.replace({
+        path: `/monitor/windsite/map2/${res.code}`,
+      });
+    },
+  },
+  unmounted() {
+    clearInterval(this.timer);
+    this.timer = null;
+  },
+  watch: {
+    $route(res) {
+      this.wpId = res.params.wpId;
+      if (res.params.wpId) {
+        this.getWp();
+      }
+      this.renderBtnActiveIndex();
+    },
+  },
+};
 </script>
 <style lang="less" scoped>
 .period {
-    display: flex;
-    flex-direction: row;
+  display: flex;
+  flex-direction: row;
 
-    .period-item {
-        line-height: 23px;
-        font-size: 12px;
-        text-align: center;
-        margin-right: 4px;
-        border: 1px solid #606769;
-        border-radius: 2px;
-        padding: 0px 5px;
-        margin-bottom: 10px;
+  .period-item {
+    line-height: 23px;
+    font-size: 12px;
+    text-align: center;
+    margin-right: 4px;
+    border: 1px solid #606769;
+    border-radius: 2px;
+    padding: 0px 5px;
+    margin-bottom: 10px;
 
-        &.active {
-            color: #ffffff;
-            background-color: rgba(75, 85, 174, 0.6);
-            border-color: rgba(75, 85, 174, 0.6);
-        }
+    &.active {
+      color: #ffffff;
+      background-color: rgba(75, 85, 174, 0.6);
+      border-color: rgba(75, 85, 174, 0.6);
     }
+  }
 }
-</style>
+</style>

File diff suppressed because it is too large
+ 398 - 211
src/views/WindSite/pages/Matrix.vue


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

@@ -386,7 +386,7 @@ export default {
             //       icon: "svg-matrix",
             //       path: "/decision/statisticAnalysis/daily",
             //     },
-             
+
             //   ],
             // },
             // {
@@ -976,7 +976,7 @@ export default {
                 //   icon: "svg-matrix",
                 //   path: "/others/zkrbb",
                 // },
-                
+
                 // {
                 //   text: "光伏场站自定义",
                 //   icon: "svg-matrix",
@@ -1233,12 +1233,12 @@ export default {
   },
 };
 </script>
- 
+
 <style lang="less">
 .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;
@@ -1337,4 +1337,4 @@ export default {
     color: rgba(255, 255, 255, 50%);
   }
 }
-</style>
+</style>

+ 111 - 94
vue.config.js

@@ -1,91 +1,99 @@
-const path = require('path');
+const path = require("path");
 const resolve = (dir) => path.join(__dirname, dir);
-const CopyWebpackPlugin = require('copy-webpack-plugin');
-const webpack = require('webpack');
+const CopyWebpackPlugin = require("copy-webpack-plugin");
+const webpack = require("webpack");
 
-const cesiumSource = './node_modules/cesium/Source'
-const cesiumWorkers = '../Source/Workers'
+const cesiumSource = "./node_modules/cesium/Source";
+const cesiumWorkers = "../Source/Workers";
 
 function extendDefaultPlugins(arr) {
   let plug = [
-    'removeDoctype',
-    'removeXMLProcInst',
-    'removeComments',
-    'removeMetadata',
-    'removeEditorsNSData',
-    'cleanupAttrs',
-    'mergeStyles',
-    'inlineStyles',
-    'minifyStyles',
-    'cleanupIDs',
-    'removeUselessDefs',
-    'cleanupNumericValues',
-    'convertColors',
-    'removeUnknownsAndDefaults',
-    'removeNonInheritableGroupAttrs',
-    'removeUselessStrokeAndFill',
-    'removeViewBox',
-    'cleanupEnableBackground',
-    'removeHiddenElems',
-    'removeEmptyText',
-    'convertShapeToPath',
-    'convertEllipseToCircle',
-    'moveElemsAttrsToGroup',
-    'moveGroupAttrsToElems',
-    'collapseGroups',
-    'convertPathData',
-    'convertTransform',
-    'removeEmptyAttrs',
-    'removeEmptyContainers',
-    'mergePaths',
-    'removeUnusedNS',
-    'sortDefsChildren',
-    'removeTitle',
-    'removeDesc'
+    "removeDoctype",
+    "removeXMLProcInst",
+    "removeComments",
+    "removeMetadata",
+    "removeEditorsNSData",
+    "cleanupAttrs",
+    "mergeStyles",
+    "inlineStyles",
+    "minifyStyles",
+    "cleanupIDs",
+    "removeUselessDefs",
+    "cleanupNumericValues",
+    "convertColors",
+    "removeUnknownsAndDefaults",
+    "removeNonInheritableGroupAttrs",
+    "removeUselessStrokeAndFill",
+    "removeViewBox",
+    "cleanupEnableBackground",
+    "removeHiddenElems",
+    "removeEmptyText",
+    "convertShapeToPath",
+    "convertEllipseToCircle",
+    "moveElemsAttrsToGroup",
+    "moveGroupAttrsToElems",
+    "collapseGroups",
+    "convertPathData",
+    "convertTransform",
+    "removeEmptyAttrs",
+    "removeEmptyContainers",
+    "mergePaths",
+    "removeUnusedNS",
+    "sortDefsChildren",
+    "removeTitle",
+    "removeDesc",
   ];
   return plug.concat(arr);
 }
 
 // 添加less继承
 function addStyleResource(rule) {
-  rule.use('style-resource')
-    .loader('style-resources-loader')
+  rule
+    .use("style-resource")
+    .loader("style-resources-loader")
     .options({
-      patterns: [
-        resolve('src/assets/styles/common/common.less')
-      ]
-    })
+      patterns: [resolve("src/assets/styles/common/common.less")],
+    });
 }
 
-
 module.exports = {
-
   publicPath: "./", // 默认'/',部署应用包时的基本 URL
-  indexPath: 'index.html', // 相对于打包路径index.html的路径
-  outputDir: 'dist', // 'dist', 生产环境构建文件的目录
-  assetsDir: 'static', // 相对于outputDir的静态资源(js、css、img、fonts)目录
+  indexPath: "index.html", // 相对于打包路径index.html的路径
+  outputDir: "dist", // 'dist', 生产环境构建文件的目录
+  assetsDir: "static", // 相对于outputDir的静态资源(js、css、img、fonts)目录
   lintOnSave: false, // 是否在开发环境下通过 eslint-loader 在每次保存时 li
   runtimeCompiler: true, // 是否使用包含运行时编译器的 Vue 构建版本
 
   configureWebpack: {
     plugins: [
-      new CopyWebpackPlugin([{ from: path.join(cesiumSource, cesiumWorkers), to: 'Workers' }]),
-      new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Assets'), to: 'Assets' }]),
-      new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Widgets'), to: 'Widgets' }]),
-      new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers' }]),
+      new CopyWebpackPlugin([
+        { from: path.join(cesiumSource, cesiumWorkers), to: "Workers" },
+      ]),
+      new CopyWebpackPlugin([
+        { from: path.join(cesiumSource, "Assets"), to: "Assets" },
+      ]),
+      new CopyWebpackPlugin([
+        { from: path.join(cesiumSource, "Widgets"), to: "Widgets" },
+      ]),
+      new CopyWebpackPlugin([
+        {
+          from: path.join(cesiumSource, "ThirdParty/Workers"),
+          to: "ThirdParty/Workers",
+        },
+      ]),
       new webpack.DefinePlugin({
-        CESIUM_BASE_URL: JSON.stringify('./')
+        CESIUM_BASE_URL: JSON.stringify("./"),
       }),
     ],
   },
 
   chainWebpack: (config) => {
     config.resolve.symlinks(true); // 修复热更新失效
-    config.plugin('html')
-      .tap(args => {
-        args[0].title = "智能综合分析系统";
-        return args;
-      })
+    config.plugin("html").tap((args) => {
+      args[0].title = "智能综合分析系统";
+
+      return args;
+    });
     // 路径别名
     config.resolve.alias
       .set("@", resolve("src"))
@@ -99,31 +107,35 @@ module.exports = {
       .set("cesium", resolve("node_modules/cesium/Source"));
 
     // less 继承
-    const types = ['vue-modules', 'vue', 'normal-modules', 'normal'];
-    types.forEach(type => addStyleResource(config.module.rule('less').oneOf(type)));
+    const types = ["vue-modules", "vue", "normal-modules", "normal"];
+    types.forEach((type) =>
+      addStyleResource(config.module.rule("less").oneOf(type))
+    );
 
-    const metaLoaderRule = config.module.rule('meta-loader');
-    metaLoaderRule.test(/\.js$/)
-      .use('@open-wc/webpack-import-meta-loader')
-      .loader('@open-wc/webpack-import-meta-loader');
+    const metaLoaderRule = config.module.rule("meta-loader");
+    metaLoaderRule
+      .test(/\.js$/)
+      .use("@open-wc/webpack-import-meta-loader")
+      .loader("@open-wc/webpack-import-meta-loader");
 
     // svg 雪碧图
     config.module // 排除其他svg-loader
-      .rule('svg')
-      .exclude.add(resolve('src/assets/icon/svg'))
+      .rule("svg")
+      .exclude.add(resolve("src/assets/icon/svg"))
       .end()
-      .exclude.add(resolve('src/assets/icon/svg_fill'))
+      .exclude.add(resolve("src/assets/icon/svg_fill"))
       .end();
 
     // svg雪碧图
-    const svgRule = config.module.rule('icons');
-    svgRule.test(/\.svg$/)
-      .include.add(resolve('src/assets/icon/svg'))
+    const svgRule = config.module.rule("icons");
+    svgRule
+      .test(/\.svg$/)
+      .include.add(resolve("src/assets/icon/svg"))
       .end()
-      .use('svg-sprite-loader')
-      .loader('svg-sprite-loader')
+      .use("svg-sprite-loader")
+      .loader("svg-sprite-loader")
       .options({
-        symbolId: 'svg-[name]',
+        symbolId: "svg-[name]",
         // extract: true,
         // publicPath: "img/",
         // spriteFilename: "svg-sprite-[hash:8].svg",
@@ -131,19 +143,24 @@ module.exports = {
 
     // config
     //     .plugin("svgsprite")
-    //     .use(SVGSpriteLoaderPlugin, [{ 
+    //     .use(SVGSpriteLoaderPlugin, [{
     //       plainSprite: true
     //     }]);
 
     // svgo 去除svg中无用元素
-    svgRule.use('svgo-loader').loader('svgo-loader').options({
-      plugins: extendDefaultPlugins([{
-        name: "removeAttrs",
-        params: {
-          attrs: 'fill',
-        }
-      }])
-    });
+    svgRule
+      .use("svgo-loader")
+      .loader("svgo-loader")
+      .options({
+        plugins: extendDefaultPlugins([
+          {
+            name: "removeAttrs",
+            params: {
+              attrs: "fill",
+            },
+          },
+        ]),
+      });
 
     // svg雪碧图 不去除fill属性
     // const svgRuleFill = config.module.rule('icons_fill');
@@ -161,7 +178,7 @@ module.exports = {
 
     // // config
     // //     .plugin("svgsprite")
-    // //     .use(SVGSpriteLoaderPlugin, [{ 
+    // //     .use(SVGSpriteLoaderPlugin, [{
     // //       plainSprite: true
     // //     }]);
 
@@ -169,24 +186,24 @@ module.exports = {
     // svgRuleFill.use('svgo-loader').loader('svgo-loader').options({
     //     plugins: extendDefaultPlugins([])
     // });
-
   },
 
   devServer: {
     //代理配置
     proxy: {
-      '/cbk': {
-        target: 'https://h5.caibeike.com.cn/', // 请求地址
+      "/cbk": {
+        target: "https://h5.caibeike.com.cn/", // 请求地址
 
         changeOrigin: true, // 在vue-cli3中,默认changeOrigin的值是true,意味着服务器host设置成target,这与vue-cli2不一致,vue-cli2这个默认值是false
         // changeOrigin的值是true,target是host, request URL是http://baidu.com
         // 如果设置changeOrigin: false,host就是浏览器发送过来的host,也就是localhost:8082。
 
-        pathRewrite: {  // 路径重写,eg:把api接口替换为''
-          '^/cbk': ''
-        }
-      }
+        pathRewrite: {
+          // 路径重写,eg:把api接口替换为''
+          "^/cbk": "",
+        },
+      },
     },
     open: false, // 是否打开浏览器
-  }
-}
+  },
+};