lining 3 years ago
parent
commit
6a9847a8a0
98 changed files with 8125 additions and 3518 deletions
  1. 1 0
      public/index.html
  2. 6 1
      public/static/config/modeConfig.js
  3. 62 43
      src/App.vue
  4. 1 1
      src/assets/dataService/arcgis-nss-line.json
  5. 1 81
      src/assets/dataService/arcgis-qs-line.json
  6. 173 1
      src/assets/dataService/arcgis-sbq-line.json
  7. 4 4
      src/assets/dataService/arcgis-sbq.json
  8. 1 1
      src/assets/dataService/arcgis-xs-line.json
  9. 3 0
      src/assets/styles/common/color.less
  10. 5 0
      src/assets/styles/common/common.less
  11. 7 0
      src/assets/styles/el-override/el-input.less
  12. 75 0
      src/assets/styles/theme/light/aqgk.less
  13. 222 0
      src/assets/styles/theme/light/jjyx.less
  14. 253 0
      src/assets/styles/theme/light/jsc.less
  15. 14 3
      src/assets/styles/theme/light/light-jsc.less
  16. 235 4
      src/assets/styles/theme/light/light-qt.less
  17. 2 2
      src/assets/styles/theme/light/light-sp.less
  18. 8 1
      src/assets/styles/theme/light/setting.less
  19. 445 0
      src/assets/styles/theme/light/zhjx.less
  20. 679 0
      src/components/arcgis/DWK_GDC.vue
  21. 660 0
      src/components/arcgis/HZJ_GDC.vue
  22. 662 0
      src/components/arcgis/MCH_GDC.vue
  23. 0 1
      src/components/arcgis/NSS_FDC.vue
  24. 27 195
      src/components/arcgis/PL_GDC.vue
  25. 494 436
      src/components/arcgis/QS_FDC.vue
  26. 659 0
      src/components/arcgis/XH_GDC.vue
  27. 13 0
      src/components/arcgis/arcgis.vue
  28. 5 6
      src/components/chart/bar/percent-bar.vue
  29. 14 9
      src/components/chart/combination/area-line-chart.vue
  30. 41 14
      src/components/chart/combination/bar-line-chart.vue
  31. 10 7
      src/components/chart/combination/multiple-bar-line-chart.vue
  32. 13 7
      src/components/chart/combination/scatter-line-chart.vue
  33. 13 10
      src/components/chart/combination/vertival-bar-line-chart.vue
  34. 4 1
      src/components/chart/line/marker-line-chart.vue
  35. 8 8
      src/components/chart/line/multi-arrow-line-chart.vue
  36. 8 8
      src/components/chart/line/multiple-line-chart.vue
  37. 1 1
      src/components/chart/line/multiple-y-line-chart-normal.vue
  38. 20 763
      src/components/chart/line/multiple-y-line-chart.vue
  39. 8 8
      src/components/chart/line/normal-line-chart.vue
  40. 16 11
      src/components/chart/line/zoom-line-chart.vue
  41. 11 4
      src/components/chart/other/Dashboard2.vue
  42. 8 3
      src/components/chart/other/thermometer-v-chart.vue
  43. 25 10
      src/components/chart/pie/dual-pie-chart.vue
  44. 4 4
      src/components/chart/pie/normal-pie-chart.vue
  45. 8 3
      src/components/chart/radar/direction-radar-chart.vue
  46. 89 31
      src/components/chart/radar/normal-radar-chart.vue
  47. 63 34
      src/components/chart/radar/radar-chart.vue
  48. 156 133
      src/components/three/wave.vue
  49. 2 2
      src/helper/partten.js
  50. 2 2
      src/main.js
  51. 6 12
      src/router/index.js
  52. 18 3
      src/store/index.js
  53. 1 1
      src/views/Agc/components/agc-panel.vue
  54. 11 1
      src/views/Decision/Decision1Mx.vue
  55. 0 4
      src/views/Decision/Decision2.vue
  56. 0 3
      src/views/Decision/Decision3Db.vue
  57. 24 9
      src/views/Decision/dual-pie-chart.vue
  58. 2 2
      src/views/Demo.vue
  59. 1 1
      src/views/HealthControl/defect-elimination-tracking.vue
  60. 55 12
      src/views/Home/Home.vue
  61. 1 3
      src/views/Home/components/map.vue
  62. 0 1
      src/views/Home/components/map/XH_GDC.vue
  63. 49 2
      src/views/Home/components/map/svg-map-nx.vue
  64. 32 29
      src/views/MalfunctionWarning/components/detectionRecord.vue
  65. 1 1
      src/views/MalfunctionWarning/components/superviseDataClassify.vue
  66. 3 3
      src/views/MalfunctionWarning/supervised.vue
  67. 654 690
      src/views/NewPages/alarm-center-1.vue
  68. 23 21
      src/views/NewPages/alarm-center-2.vue
  69. 103 0
      src/views/NewPages/alarm-center-gzfx.vue
  70. 103 0
      src/views/NewPages/alarm-center-yjfx.vue
  71. 12 9
      src/views/NewPages/multiple-y-line-chart-normal.vue
  72. 29 41
      src/views/NewPages/znzhfx.vue
  73. 15 0
      src/views/WindSite/WindSite.vue
  74. 55 60
      src/views/WindSite/components/Windmill.vue
  75. 17 2
      src/views/WindSite/components/boosterstation/mhs.vue
  76. 6 8
      src/views/WindSite/components/boosterstation/sbq.vue
  77. 1 0
      src/views/WindSite/components/generalappearance/pl2.vue
  78. 8 5
      src/views/WindSite/pages/GeneralAppearance.vue
  79. 6 1
      src/views/WindSite/pages/Home/Station.vue
  80. 23 22
      src/views/WindSite/pages/Home/wind-site-weather.vue
  81. 33 23
      src/views/WindSite/pages/Info/Info.vue
  82. 6 6
      src/views/WindSite/pages/Info/StandAloneImg.vue
  83. 41 83
      src/views/WindSite/pages/Map.vue
  84. 3 0
      src/views/WindSite/pages/Tower.vue
  85. 207 33
      src/views/WindSite/pages/Tower/WindTower.vue
  86. 5 1
      src/views/alarmCenter/scadaAlarm.vue
  87. 16 5
      src/views/layout/Header.vue
  88. 6 10
      src/views/layout/Menu.vue
  89. 1 1
      src/views/malfunctionDiagnose/index.vue
  90. 0 450
      src/views/malfunctionRecall/components/fault-diagnosis.vue
  91. 1 1
      src/views/report/ExportExcel.vue
  92. 1 1
      src/views/sampleDatabase/performance/performanceEcharts.vue
  93. 368 0
      src/views/sampleDatabase/powerlineAnalysis/index.vue
  94. 810 0
      src/views/sampleDatabase/powerlineAnalysis/scatter-line-chart.vue
  95. 2 47
      src/views/singleAnalysis/index.vue
  96. 31 39
      src/views/singleAnalysis/znzhfx.vue
  97. 77 5
      src/views/warn/gfgj.vue
  98. 17 14
      src/views/warningRank/index.vue

+ 1 - 0
public/index.html

@@ -16,6 +16,7 @@
     }
   </script>
   <script src="./static/js/hlslib/hls.min.js"></script>
+  <script src="./static/config/modeConfig.js"></script>
   <style type="text/css">
     #ie_dialog {
       width: 350px;

+ 6 - 1
public/static/config/modeConfig.js

@@ -15,6 +15,9 @@ const tilesMaxLevel = 18;
 // 适配器地址
 const adapterUrl = "http://10.155.32.4:8011/";
 
+// 切换模块时是否提示当前模块名称(用于对内介绍项目时便捷显示模块名称)
+const showModuleName = 1;
+
 if (localTest) {
     // baseURL = "http://192.168.10.13:8082/" // 联机调试 - 石林
     // baseURL = "http://10.155.32.33:9001/" // 联机调试 - 谢生杰
@@ -23,6 +26,7 @@ if (localTest) {
     tilesUrl = "http://localhost:8080/static/cesium/Assets/Textures/NaturalEarthII";
 } else {
     baseURL = "http://10.155.32.4:8082/" // 正式环境
+    // baseURL = "http://192.168.1.103:8082/" // 正式环境
 
     tilesUrl = "http://10.155.32.4:8070/zhfx/new_tiles";
 }
@@ -34,5 +38,6 @@ window.__MODE__ = {
     websocketUrl,
     adapterUrl,
     tilesUrl,
-    tilesMaxLevel
+    tilesMaxLevel,
+    showModuleName
 };

+ 62 - 43
src/App.vue

@@ -241,7 +241,7 @@ l16.229-16.229l16.229,16.229l42.867-42.867C115.034,45.228,109.133,42.189,102.956
       :class="{ hover: isShowMenu }"
       @mouseenter="showMenu"
       @mouseleave="hideMenu"
-      v-if="$store.state.themeName === 'dark'"
+      v-show="$store.state.themeName === 'dark'"
     >
       <Menu :root="root" />
     </div>
@@ -249,49 +249,36 @@ l16.229-16.229l16.229,16.229l42.867-42.867C115.034,45.228,109.133,42.189,102.956
       <el-menu
         class="lightMenu"
         :class="$store.state.themeName === 'light' ? 'show' : 'hidden'"
-        default-active="2"
         :collapse="true"
         text-color="#ffffff"
         active-text-color="#6262a2"
         background-color="#36348e"
+        @select="selectMenu"
       >
-        <el-sub-menu index="1" title="菜单1">
-          <template #title>
-            <el-icon>
-              <SvgIcon svgid="svg-matrix" />
-            </el-icon>
-          </template>
-          <el-menu-item-group>
-            <template #title><span>Group One</span></template>
-            <el-menu-item index="1-1">item one</el-menu-item>
-            <el-menu-item index="1-2">item two</el-menu-item>
-          </el-menu-item-group>
-          <el-menu-item-group title="Group Two">
-            <el-menu-item index="1-3">item three</el-menu-item>
-          </el-menu-item-group>
-          <el-sub-menu index="1-4">
-            <template #title><span>item four</span></template>
-            <el-menu-item index="1-4-1">item one</el-menu-item>
-          </el-sub-menu>
-        </el-sub-menu>
-        <el-sub-menu index="2" title="菜单2">
+        <el-sub-menu
+          :index="index"
+          :title="item.text"
+          v-for="(item, index) in menuData"
+          :key="index"
+        >
           <template #title>
-            <el-icon>
-              <SvgIcon svgid="svg-matrix" />
-            </el-icon>
+            <router-link :to="item.path">
+              <el-icon>
+                <SvgIcon :svgid="item.icon" />
+              </el-icon>
+            </router-link>
           </template>
-          <el-menu-item-group>
-            <template #title><span>Group One</span></template>
-            <el-menu-item index="2-1">item one</el-menu-item>
-            <el-menu-item index="2-2">item two</el-menu-item>
+          <el-menu-item-group
+            v-for="(menu, idx) in item.children"
+            :index="idx"
+            :key="idx"
+          >
+            <router-link :to="menu.path">
+              <el-menu-item :index="index + '-' + idx">{{
+                menu.text
+              }}</el-menu-item>
+            </router-link>
           </el-menu-item-group>
-          <el-menu-item-group title="Group Two">
-            <el-menu-item index="2-3">item three</el-menu-item>
-          </el-menu-item-group>
-          <el-sub-menu index="2-4">
-            <template #title><span>item four</span></template>
-            <el-menu-item index="2-4-1">item one</el-menu-item>
-          </el-sub-menu>
         </el-sub-menu>
       </el-menu>
     </div>
@@ -316,9 +303,6 @@ l16.229-16.229l16.229,16.229l42.867-42.867C115.034,45.228,109.133,42.189,102.956
 // 导入header.vue文件
 import Menu from "@/views/layout/Menu.vue";
 import Header from "@/views/layout/Header.vue";
-
-import { mapMutations } from "vuex";
-
 import LoginPage from "./views/layout/login-page.vue";
 import sisView from "./views/sisView/index.vue";
 
@@ -342,12 +326,18 @@ export default {
       isLogined: true,
       showSisView: false,
       memuCloseTimeout: null,
+      menuData: [],
     };
   },
 
   created() {
     let that = this;
-    $("#appBody").attr("class", that.$store.state.themeName);
+    const themeName = that.$store.state.themeName;
+    $("#appBody").attr(
+      "class",
+      themeName === "dark" || themeName === "light" ? themeName : "dark"
+    );
+
     // that.$nextTick(() => {
     //   that.API.requestData({
     //     isMust: false, // 请求是否携带 token ,默认为 true ,可缺省
@@ -395,11 +385,40 @@ export default {
     login(params) {
       if (params.username && params.password) this.isLogined = true;
     },
+    selectMenu(menuIndex) {
+      this.menuIndex = menuIndex;
+    },
   },
 
   watch: {
     $route(res) {
       this.showSisView = res.fullPath === "/sisView";
+      let ActiveModule = null;
+      this.menuData.forEach((pEle) => {
+        if (pEle.path === res.fullPath) {
+          ActiveModule = pEle;
+        }
+        pEle?.children?.forEach((cEle) => {
+          if (cEle.path === res.fullPath) {
+            ActiveModule = cEle;
+          }
+        });
+      });
+      if (ActiveModule) {
+        this.$store.dispatch("changeModuleName", ActiveModule.text);
+      }
+    },
+    "$store.state.menuData"(res) {
+      this.menuData = res;
+    },
+    "$store.state.moudleName"(msg) {
+      if (window.__MODE__.showModuleName && msg) {
+        this.BASE.showMsg({
+          type: this.$store.state.themeName === "dark" ? "success" : "warning",
+          showClose: true,
+          msg,
+        });
+      }
     },
   },
 };
@@ -418,12 +437,12 @@ export default {
 
   &::-webkit-scrollbar-track-piece {
     background-color: rgba(255, 255, 255, 0.05);
-    -webkit-border-radius: 4px;
+    border-radius: 4px;
   }
 
   &::-webkit-scrollbar-thumb {
     background-color: fade(@gray, 75);
-    -webkit-border-radius: 4px;
+    border-radius: 4px;
     outline: none;
     outline-offset: 0px;
     border: none;
@@ -540,7 +559,7 @@ body {
 .el-tree-node__label {
   font-size: 18px !important;
 }
-.el-pagination.is-background .el-pager li:not(.disabled).active{
+.el-pagination.is-background .el-pager li:not(.disabled).active {
   background-color: #05bb4c !important;
 }
 </style>

File diff suppressed because it is too large
+ 1 - 1
src/assets/dataService/arcgis-nss-line.json


File diff suppressed because it is too large
+ 1 - 81
src/assets/dataService/arcgis-qs-line.json


File diff suppressed because it is too large
+ 173 - 1
src/assets/dataService/arcgis-sbq-line.json


+ 4 - 4
src/assets/dataService/arcgis-sbq.json

@@ -1489,8 +1489,8 @@
 		"spatialReference": {
 			"wkid": 4326
 		},
-		"x": 106.5236833,
-		"y": 37.77213333
+		"x": 106.5286833,
+		"y": 37.62013333
 	},
 	"symbol": null,
 	"attributes": {
@@ -1504,7 +1504,7 @@
 		"spatialReference": {
 			"wkid": 4326
 		},
-		"x": 106.2033167,
+		"x": 106.5013167,
 		"y": 37.62301667
 	},
 	"symbol": null,
@@ -1519,7 +1519,7 @@
 		"spatialReference": {
 			"wkid": 4326
 		},
-		"x": 106.5059833,
+		"x": 106.459833,
 		"y": 37.61241667
 	},
 	"symbol": null,

File diff suppressed because it is too large
+ 1 - 1
src/assets/dataService/arcgis-xs-line.json


+ 3 - 0
src/assets/styles/common/color.less

@@ -20,4 +20,7 @@
 @greenLinearRight: linear-gradient(to right, fade(@green, 50%), fade(@green, 0));
 @redLinearRight: linear-gradient(to right, fade(@red, 50%), fade(@red, 0));
 
+@deepblueLinearTop: linear-gradient(to top, fade(@deepblue, 50%), fade(@deepblue, 0));
+@deepblueLinearRight: linear-gradient(to right, fade(@deepblue, 50%), fade(@deepblue, 0));
+
 @font-color: #7a8385;

+ 5 - 0
src/assets/styles/common/common.less

@@ -21,5 +21,10 @@
 @import "../theme/light/light-sp.less"; // 沙盘
 @import "../theme/light/light-qt.less"; // 其他
 
+@import "../theme/light/jsc.less"; // 驾驶舱
+@import "../theme/light/jjyx.less"; // 经济运行
+@import "../theme/light/zhjx.less"; // 智慧检修	
+@import "../theme/light/aqgk.less"; // 安全管控
+
 // 暗色主题
 @import "../theme/dark/dark-jsc.less"; // 驾驶舱

+ 7 - 0
src/assets/styles/el-override/el-input.less

@@ -377,6 +377,13 @@ body {
       color: @green;
     }
   }
+  .el-time-panel__btn.confirm {
+    color: @green;
+  }
+  
+  .el-time-panel__btn.cancel {
+    color: @gray;
+  }
 }
 
 .el-popper__arrow::before {

+ 75 - 0
src/assets/styles/theme/light/aqgk.less

@@ -0,0 +1,75 @@
+//安全管控模块白色主题样式
+@import "./setting.less";
+#appBody.light {
+    .personnel .personnel-btn .i-btn:hover, .personnel .personnel-btn .i-btn.active{
+        border:1px solid rgba(75, 85, 174, 0.6);
+        background: rgba(75, 85, 174, 0.6);
+        color: @white;
+    }
+    .personnel .personnel-btn .i-btn{
+        background: rgb(220 221 223);
+        border: 1px solid @black;
+        color: @black;
+    }
+    //人员矩阵
+    .personnel .personnel-box .personnel-box-item{
+        background: @white;
+        border: 1px solid @black;
+    }
+    .personnel .personnel-box .personnel-box-item:hover{
+        border: 1px solid @deepblue;
+        background: @deepblue;
+    }
+    .personnel .personnel-box .personnel-box-item 
+        .personnel-box-item-h .personnel-box-item-form .personnel-box-item-group .personnel-box-item-label{
+            color: @black;
+            font-weight: bold;
+        }
+    .personnel .personnel-box .personnel-box-item:hover 
+        .personnel-box-item-h .personnel-box-item-form .personnel-box-item-group .personnel-box-item-label{
+            color: @white;
+        }
+    .personnel .personnel-box .personnel-box-item 
+        .personnel-box-item-h .personnel-box-item-form .personnel-box-item-group .personnel-box-item-value{
+            color: @black;
+            font-weight: bold;
+        }
+    .personnel .personnel-box .personnel-box-item:hover 
+        .personnel-box-item-h .personnel-box-item-form .personnel-box-item-group .personnel-box-item-value{
+            color: @white
+        }
+    .personnel .personnel-box .personnel-box-item .personnel-box-item-f .personnel-box-item-name{
+            color: @black;
+            font-weight: bold;
+        }
+    .personnel .personnel-box .personnel-box-item:hover .personnel-box-item-f .personnel-box-item-name{
+            color: @white
+        }
+    .personnel .personnel-box .personnel-box-item .personnel-box-item-f .personnel-box-item-icon{
+            color: @black;
+            font-weight: bold;
+        }
+        .personnel .personnel-box .personnel-box-item:hover .personnel-box-item-f .personnel-box-item-icon{
+            color: @white
+        }
+    .font-md{
+        color: @black;
+    }
+    .date-select.el-picker__popper.el-popper[role="tooltip"] .el-picker-panel .el-picker-panel__footer{
+        background: @deepblue;
+        border-color: @deepblue;
+    }
+    .el-picker-panel .el-picker-panel__footer .el-button--text{
+        color: @white;
+    }
+    .el-picker-panel .el-picker-panel__footer .el-button.is-plain{
+        background: @white;
+        border-color: @deepblue;
+        color: @black;
+    }
+    //视频监视
+    .iframe4 .el-dialog{
+        background: @white;
+
+    }
+}

+ 222 - 0
src/assets/styles/theme/light/jjyx.less

@@ -0,0 +1,222 @@
+// 对标管理
+@import "./setting.less";
+#appBody.light {
+	// 风机绩效榜
+    .com-table {
+		thead tr th{
+			color: @black;
+		}
+		
+		.el-scrollbar tr td {
+			color: @black;
+		}
+		
+		.el-scrollbar tr td.light span, .el-scrollbar tr td.light div{
+			color: @blue;
+		}
+	}
+	.btn.green,.btn:hover{
+		color: @deepblue;
+		border-color: @deepblue;
+		background: rgba(@deepblueBg, 0.2);
+	}
+	
+	.el-select__popper.select,.el-picker__popper{
+		background: @white;
+        border-color: @white;
+		.el-popper__arrow::before{
+			border: 1px solid @white !important;
+			background: @white !important;
+		}
+		.el-select-dropdown__item.selected,.el-select-dropdown__item:hover {
+		    color: @deepblue;
+			background:fade(@deepblue, 20);
+			border: 1px solid @deepblue;
+		}
+		.el-select-dropdown__item{
+			color:@black;
+		}
+	}
+	
+	.el-picker__popper.el-popper[role="tooltip"] {
+		background: @white !important;
+		border-color: @white !important;
+		.el-date-table{
+			th{
+				color:@black ;
+			}
+			td.current:not(.disabled) span{
+				color: @white;
+				background:@blue;
+			}
+			td.today span,span:hover {
+			    color: @blue;
+			}
+			td.prev-month,td.next-month{
+				background: fade(@black,20);
+			}
+			span{
+				color:@black;
+			}
+		}
+		.el-year-table{
+			td{
+				color: @black;
+			}
+			td.today .cell,td:hover{
+				color: @blue;
+			}
+		}
+	}
+	.el-input{
+		.el-input__inner{
+			background: @white;
+			color: @black;
+		}
+	}
+	.query-item .lable{
+		color:@black;
+	}
+	
+	// 风机绩效榜-明细
+	.main-body{
+		input[type="checkbox"]:checked{
+			background:@blue;
+			border-color: @blue;
+		}
+		input[type="checkbox"]{
+			background: @white;
+			border-color: @gray-l;
+		}
+	} 
+	
+	.decision-page-2,.decision-page-3,.decision-page-4{
+		.com-panel{
+			border-radius:0;
+			padding:0;
+		}
+	}
+	.action{
+		color: @blue;
+	}
+	
+	//线路对标
+	.el-select {
+	  .el-select__tags .el-tag {
+	    background-color: fade(@deepblue, 20);
+	    color: @deepblue;
+	
+	    .el-icon-close {
+	      background-color: fade(@deepblue, 50);
+	    }
+	  }
+	}
+	
+	//单机横向对比
+	.direction-info {
+	  .com-table {
+	    th,
+	    td {
+	      color: @black;
+	    }
+	  }
+	}
+	
+	// 状态转换率
+	.newspan {
+	  color: @black;
+	}
+	.newspan:hover {
+	  background: linear-gradient(to top,rgba(54,52,142, 0.5),rgba(54,52,142, 0));
+	  color: @deepblue;
+	}
+	.newspan:hover::after {
+	  border: 0.093vh solid @deepblue;
+	}
+	.active {
+	  background: linear-gradient(to top,rgba(54,52,142, 0.5),rgba(54,52,142, 0));
+	  color: @deepblue;
+	}
+	.active::after {
+	  border: 0.093vh solid @deepblue;
+	}
+	
+	.el-month-table td .cell:hover,
+	.el-date-picker__header-label.active,
+	.el-date-picker__header-label:hover{
+		color:@blue;
+	}
+	
+	// 综合分析
+	.ztfx {
+	  .table-complex {
+	    .table {
+	      tbody {
+	        tr:nth-child(2n) td {
+	          background-color: fade(@black, 20%);
+	          &.item {
+	            background-color: transparent;
+	          }
+	        }
+	      }
+	
+	      th {
+	        background: fade(@black, 40);
+	        color: @white;
+	      }
+	      td {
+	        color: @black;
+	      }
+	    }
+	  }
+	  .table-panel {
+	    .table {
+	      tbody {
+	        tr:nth-child(2n) td {
+	          background-color: fade(@black, 20%);
+	        }
+	      }
+	      th {
+	        background: fade(@black, 40);
+	        color: @white;
+	      }
+	      td {
+	        color: @black;
+	      }
+	    }
+	  }
+	}
+	
+  .action-bar {
+	.selections {
+	  .item {
+		color: @black;
+		&:hover,
+		&.active {
+		  background: fade(@deepblue, 20);
+		  border: 1px solid @deepblue;
+		  color: @deepblue;
+		}
+	  }
+	}
+  }
+
+  // 风场信息
+  .fc-info {
+	.fc-item {
+	  & > .title {
+		color: @black;
+	  }
+	  .tags {
+		.tag {
+		  .tag-title {
+			color: @black;
+		  }
+		  .tag-value {
+			color: @deepblue;
+		  }
+		}
+	  }
+	}
+  }
+}

+ 253 - 0
src/assets/styles/theme/light/jsc.less

@@ -0,0 +1,253 @@
+@import "./setting.less";
+
+#appBody.light {
+
+    // 基础矩阵白色主题样式
+    .panel-body {
+        background: @white;
+        transition: @transition;
+    }
+
+    .card-panel .card-left .tag {
+        color: @black;
+    }
+
+    .light-matrix .panel {
+        background-color: gainsboro;
+    }
+
+    .green[data-v-065abbc5] {
+        color: @green;
+    }
+
+    .green[data-v-6a0a9536] {
+        color: @green;
+    }
+
+    .light-matrix .panel-box .panel-title .panel-title-name[data-v-065abbc5] {
+        font-size: 1.296vh;
+        color: @deepblue;
+        font-weight: bold;
+    }
+
+    .svg-icon.svg-icon-green svg use {
+        fill: @deepblue;
+    }
+
+    //明细矩阵
+    .light-matrix .panel-box .panel-title .panel-title-name[data-v-e0caa1f6] {
+        color: @deepblue;
+        font-weight: bold;
+    }
+
+    //欠发矩阵
+    .light-matrix .panel-box .panel-title .panel-title-name[data-v-6a0a9536] {
+        color: @deepblue;
+        font-weight: bold;
+    }
+
+    //光伏矩阵
+    .light-matrix .panel-box .panel-title .panel-title-name[data-v-55c30df5] {
+        color: @deepblue;
+        font-weight: bold;
+    }
+
+    //驾驶舱模块-矩阵白色主题样式二级页面
+    //基本信息-日发电量1
+    .wind-site-base-info .generation {
+        background: @white;
+    }
+
+    //基本信息-日发电量2
+    .el-col-10 {
+        background: @white;
+    }
+
+    //基本信息-日发电量右侧
+    .wind-site-warning[data-v-40a70b04] {
+        background: @white;
+        transition: @transition;
+    }
+
+    //右侧导航栏第一个-天气
+    .wind-site-weather[data-v-ccb406f8] {
+        background: @white;
+        transition: @transition;
+    }
+
+    .wind-site-base-info .wind-site-name {
+        border: 1px solid @deepblue;
+    }
+
+    .title[data-v-2c3073c8] {
+        font-weight: bold;
+    }
+
+    //右侧导航栏第一个-最右侧
+    .light-matrix-small {
+        background: @white;
+        transition: @transition;
+    }
+
+    //最右侧导航
+    .wind-site .page-common-body .page-common-body-menu .page-common-body-menu-box[data-v-3b6e4be5] {
+        background-color: @white;
+        transition: @transition;
+    }
+
+    .wind-site .page-common-body .page-common-body-menu .page-common-body-menu-box .page-common-body-menu-item[data-v-3b6e4be5] {
+        border: 0.093vh solid @deepblue;
+    }
+
+    //右侧导航栏第二个底色
+    .df-table .custom-table.el-table {
+        background: @white;
+        transition: @transition;
+    }
+
+    .general-appearance-body {
+        background: @white;
+        transition: @transition;
+    }
+
+    .booster-station-body {
+        background: @white;
+        transition: @transition;
+    }
+
+    .Inverter-Info .box-main .Inverter-Info-body .Inverter-Info-title {
+        position: relative;
+        background: @white;
+        transition: @transition;
+    }
+
+    //场站监视
+    .Inverter-Info .box-main .Inverter-Info-body .Inverter-Info-title .title {
+        color: @deepblue;
+        font-weight: bold;
+    }
+
+    .Inverter-Info .box-main .Inverter-Info-body .Inverter-Info-title .title-tools-left {
+        color: @black;
+    }
+
+    table.table-form.mg-b-8 {
+        background: @white;
+        transition: @transition;
+    }
+
+    .Inverter-Info .box-main .Inverter-Info-body .inverter-datas .inverter-item .inverter-item-info .states {
+        background: @white;
+        transition: @transition;
+    }
+
+    .com-collapse .collapse-box .collapse-items .item.active {
+        color: @deepblue;
+        cursor: pointer;
+        font-weight: bold;
+    }
+
+    .matrix .panel-title .panel-title-name[data-v-2e858362] {
+        color: @deepblue;
+    }
+
+    .com-panel.line {
+        margin-left: 1px;
+        z-index: 1;
+    }
+
+    .wave {
+        z-index: 1;
+
+        .svg-icon.svg-icon-write svg use {
+            fill: @black;
+        }
+
+        .svg-icon.svg-icon-gray-l svg use {
+            fill: @black;
+        }
+
+        // 状态监视白色主题样式
+        .status-panel .status-com-panel .p-body .category-box[data-v-74094c42] {
+            width: 100%;
+            background-color: @white;
+            transition: @transition;
+            display: flex;
+            margin-bottom: 0.37vh;
+        }
+
+        .el-scrollbar__wrap {
+            background: @white;
+            transition: @transition;
+        }
+
+        .map-1 .btn-group-tabs[data-v-0ec6dd0b] {
+            display: flex;
+            flex-direction: row;
+            background: @white;
+            height: 50px;
+        }
+
+        .status-panel .status-com-panel .p-body .item-box .data-item.light[data-v-74094c42] {
+            background-color: @deepblue;
+            position: relative;
+        }
+
+        .status-panel .status-com-panel .p-body .category-box .score span[data-v-74094c42] {
+            color: @deepblue;
+        }
+
+        //驾驶舱模块-Agc白色主题样式
+        .com-panel2 .panel-header2 .panel-tools2 {
+            color: @black;
+            opacity: 0.3;
+        }
+
+        .panel-table .data-item .data-item-count {
+            color: @deepblue;
+        }
+
+        .com-panel2 .panel-header2 .panel-title2 {
+            color: @deepblue;
+        }
+
+        .com-panel2.green .panel-header2 .panel-title2 .panel-icon2 {
+            color: @black;
+        }
+
+        .com-panel2.green .panel-header2::after {
+            background-image: linear-gradient(to right, @white, rgba(5, 187, 76, 0));
+        }
+
+        // 风场
+        .station-tip {
+            background-color: @gray-l;
+            color: @black;
+        }
+
+        .el-table td.light,
+        .df-table .el-table td.light,
+        .main-body .custom-table.el-table td.light,
+        .df-table .custom-table.el-table td.light,
+        .main-body .el-table td.always-light,
+        .df-table .el-table td.always-light,
+        .main-body .custom-table.el-table td.always-light,
+        .df-table .custom-table.el-table td.always-light {
+            color: @deepblue  !important;
+            font-weight: bold;
+        }
+
+        // 升压站,总貌图svg
+        .svg {
+            #footer text {
+                fill: @black;
+            }
+
+            #data {
+                text {
+                    fill: @white;
+                }
+            }
+        }
+    }
+}

+ 14 - 3
src/assets/styles/theme/light/light-jsc.less

@@ -372,7 +372,18 @@
         color     : #fff;
         transition: @transition;
     }
-
+	
+	.el-popper.is-light.is-pure .el-menu--popup {
+	  padding:0;
+	  .el-menu-item-group__title{padding:0;}
+	  .el-menu-item{height: 46px;line-height: 46px;}
+	}
+	
+	.el-popper.is-light{
+		border:none;
+		.el-menu{border-radius: 0px;}
+	}
+	
     .com-panel-3 {
         border    : 0;
         transition: @transition;
@@ -401,11 +412,11 @@
 
     .name-box {
         .name-box-title {
-            color     : #000;
+            color     : @black;
             transition: @transition;
         }
     }
-
+	
     background: rgb(220, 221, 223);
     transition: @transition;
 }

+ 235 - 4
src/assets/styles/theme/light/light-qt.less

@@ -5,26 +5,257 @@
 #appBody.light {
 
     .sjcx-item {
-        color     : @black;
+        color: @black;
         transition: @transition;
     }
 
     .sjcx-item:hover {
-        color     : @deepblue;
+        color: @deepblue;
         transition: @transition;
     }
 
     .imgTitle {
-        color     : @black;
+        color: @black;
         transition: @transition;
     }
 
     .imgItem1:hover .imgTitle {
-        color     : @deepblue;
+        color: @deepblue;
         transition: @transition;
     }
 
     .el-carousel__item {
         border-radius: @borderRaduis;
     }
+
+    //统计分析
+    // .el-date-table td.end-date span, .el-date-table td.start-date span{
+    //     background-color: @deepblue;
+    // }
+
+    //原始数据查询-测点历史数据查询
+    .el-date-editor.is-active,
+    body .el-date-editor.is-active:hover,
+    body .el-date-editor.is-focus .el-input__inner {
+        border-color: @deepblue;
+    }
+
+    .el-date-editor .el-range__icon {
+        color: @black;
+    }
+
+    .el-date-editor .el-range__close-icon {
+        color: @black;
+    }
+
+    .el-picker-panel .el-picker-panel__footer {
+        background: @deepblue;
+        border-color: @deepblue;
+    }
+
+    .el-picker-panel .el-picker-panel__footer .el-button.is-plain {
+        color: @deepblue;
+    }
+
+    .el-date-editor.el-date-editor--datetimerange .el-range-input {
+        color: @black;
+    }
+
+    .el-date-editor.el-date-editor--datetimerange .el-range-separator {
+        color: @black;
+    }
+
+    .main-body .el-card .el-card__header {
+        color: @black;
+        background: @white;
+    }
+
+    .el-radio.is-bordered.el-radio--small .el-radio__label {
+        color: @black;
+    }
+
+    .el-radio.is-bordered.is-checked {
+        border-color: @deepblue;
+    }
+
+    .el-radio.is-checked .el-radio__inner {
+        background: @deepblue;
+        border-color: @deepblue;
+    }
+
+    .el-radio.is-checked .el-radio__label {
+        color: @deepblue;
+    }
+
+    .el-tree {
+        color: @black;
+        background: @white;
+    }
+
+    .el-tree-node__expand-icon {
+        color: @black;
+    }
+
+    .el-tree.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
+        color: @deepblue;
+    }
+
+    .el-tree .el-tree-node__content:hover,
+    body .el-tree .el-upload-list__item:hover {
+        color: @deepblue;
+        font-weight: bold;
+    }
+
+    .el-tree .el-checkbox__inner:hover {
+        border-color: @blue;
+    }
+
+    .el-picker-panel.el-date-range-picker .el-date-range-picker__content .el-date-table td.end-date span,
+    .el-picker-panel.el-date-range-picker .el-date-range-picker__content .el-date-table td.start-date span {
+        background: rgba(@deepblueBg, 0.2);
+    }
+
+    //原始数据查询-测点数据查询
+    .com-table tbody tr:nth-child(2n){
+        background: @white;
+    }
+    // 原始数据查询-数据导出
+    .com-table td {
+        color: @black  !important;
+    }
+
+    .el-input__prefix {
+        color: @black;
+    }
+
+    .el-input__suffix {
+        color: @black;
+    }
+    .el-popper.el-select__popper[role="tooltip"]{
+        background: @white;
+    }
+    .el-popper__arrow::before{
+        background: @white !important;
+        border: 1px solid @white !important;
+    }
+    .el-popper.el-select__popper[role="tooltip"] .el-select-dropdown__item.selected {
+        color: @deepblue;
+    }
+
+    .el-popper.el-select__popper[role="tooltip"] .el-select-dropdown__item.hover {
+        background: @deepblue;
+        color: @white;
+    }
+
+    .el-popper.el-select__popper[role="tooltip"] .el-select-dropdown__item:hover {
+        background: @deepblue;
+        color: @white;
+    }
+
+    .el-select .el-input .el-select__caret {
+        color: @black;
+    }
+
+    //设备管理
+    .el-tabs--card>.el-tabs__header .el-tabs__nav {
+        border: 1px solid @deepblue;
+        background: rgba(@deepblueBg, 0.2);
+    }
+
+    .tab .el-tabs__item.is-active {
+        color: @deepblue;
+        font-weight: bold;
+    }
+
+    .el-tabs--card>.el-tabs__header .el-tabs__item {
+        border-bottom: 1px solid @deepblue;
+    }
+
+    .tab .el-tabs__item {
+        color: @black;
+    }
+
+    .el-pagination .btn-next .el-icon,
+    .el-pagination .btn-prev .el-icon {
+        color: @black;
+    }
+
+    .el-pagination.is-background .el-pager li:not(.disabled).active {
+        background: linear-gradient(to top, #4b55ae, #36348e);
+        color: @white;
+    }
+
+    .el-table__row {
+        background: @white;
+    }
+
+    .el-popper.el-cascader__dropdown[role="tooltip"] .el-cascader-node.is-selectable.in-checked-path {
+        color: @black;
+    }
+
+    .el-popper.el-cascader__dropdown[role="tooltip"] .el-cascader-node:not(.is-disabled):hover {
+        color: @deepblue;
+    }
+
+    //预警记录-预警管理
+    .alarm-center .fj .fj-item .fj-title {
+        color: @black;
+    }
+
+    .action-bar .selections .item {
+        background: @white;
+    }
+
+    //预警记录-升压站报警
+    .number {
+        background: @white;
+        color: @black;
+    }
+
+    //预警记录-自定义报警记录
+    .custom-report-items .title {
+        background: @white;
+        color: @black;
+    }
+
+    .el-pagination .el-pager li {
+        color: @black;
+    }
+
+    .title {
+        background: @white;
+    }
+
+    //专家知识-故障知识列表
+    .know-info .table-card tr[data-v-68c7e6e4] {
+        font-size: 12px;
+        color: @black;
+    }
+
+    //样本库-故障训练样本库
+    .mg-b-8 {
+        background: @gray-2;
+    }
+
+    .mg-b-8[data-v-85e4c29a] {
+        width: 150vh;
+    }
+
+    .main-body .query .query-items[data-v-2fab00f5] {
+        padding-bottom: 1vh;
+    }
+
+    .main-body .query .query-items[data-v-2d26d8fa] {
+        padding-bottom: 1vh;
+    }
+
+    //样本库-知识库
+    .el-table th.el-table__cell>.cell {
+        color: @black;
+        height: 3.8vh;
+        padding-top: 0.6vh;
+    }
+    .swiperBox .imageBox1 .imgItem1 .img1[data-v-247ee960]:hover, .itemBox .imageBox1 .imgItem1 .img1[data-v-247ee960]:hover{
+        border: 3px solid @deepblue;
+    }
 }

+ 2 - 2
src/assets/styles/theme/light/light-sp.less

@@ -110,8 +110,8 @@
             }
 
             .el-input__inner {
-                background   : rgba(0, 0, 0, 0.5);
-                border-color : rgba(0, 0, 0, 0.5);
+                // background   : rgba(0, 0, 0, 0.5);
+                border :1px solid rgba(0, 0, 0, 0.5);
                 border-radius: @borderRaduis;
                 transition   : @transition;
             }

+ 8 - 1
src/assets/styles/theme/light/setting.less

@@ -3,4 +3,11 @@
 @black      : #000;
 @transition : 0.25s;
 @deepblue   : #36348e;
-@borderRaduis: 12px;
+@borderRaduis: 12px;
+@blue : #159AFA;
+@white : #ffffff;
+@gray-l     : #B3BDC0;
+@darkgray-1 : #7b7d7e;
+@green      : #05bb4c;
+@deepblueBg : 54, 52, 142;
+@gray-2:#dcdddf;

+ 445 - 0
src/assets/styles/theme/light/zhjx.less

@@ -0,0 +1,445 @@
+@import "./setting.less";
+#appBody.light {
+	// 故障诊断
+	.el-table{
+		th{
+			color:@black;
+		}
+		
+		.el-table__body tr.hover-row.current-row > td,
+		.el-table__body tr.hover-row.el-table__row--striped.current-row > td,
+		.el-table__body tr.hover-row.el-table__row--striped > td,
+		.el-table__body tr.hover-row > td {
+		  color: @blue;
+		}
+		
+		.ascending .sort-caret.ascending {
+		  border-bottom-color: @deepblue;
+		}
+		
+		.descending .sort-caret.descending {
+		  border-top-color: @deepblue;
+		}
+	} 
+	
+	
+	// 故障回溯
+	.el-checkbox {
+	  color: @black;
+	
+	  &.is-bordered {
+	    &.is-checked {
+	      border-color: @deepblue;
+	    }
+	  }
+	
+	  .el-checkbox__input.is-checked + .el-checkbox__label {
+	    color: @deepblue;
+	  }
+	  .el-checkbox__input.is-disabled+span.el-checkbox__label{
+		  color: @black;
+	  }
+	  .el-checkbox__input.is-checked .el-checkbox__inner,
+	  .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+	    background-color: @deepblue;
+	    border-color: @deepblue;
+	  }
+	
+	  .el-checkbox__input.is-focus .el-checkbox__inner {
+	    border-color: @deepblue;
+	  }
+	}
+	
+	.time-axis-box {
+	    .time-axis-progress-box {
+	        .time-axis-progress {
+	            background: fade(@deepblue, 60);
+	        }
+	        .time-axis-progress-scale {
+	            border: 1px solid @deepblue;
+	        }
+	    }
+	}
+	
+	.fdp-sub-title {
+	    color: @deepblue;
+	}
+	
+	// 健康推荐
+  .selections {
+	.item {
+	  color: @black;
+	  background: fade(@black, 20);
+	  border: 1px solid fade(@black, 20);
+
+	  &:hover,
+	  &.active {
+		background: fade(@deepblue, 20);
+		border: 1px solid @deepblue;
+		color: @deepblue;
+	  }
+	}
+  }
+
+  .power-info {
+
+	.info-tab {
+	  .tab {
+		color: @black;
+		background: fade(@black, 20);
+		border: 1px solid fade(@black, 20);
+		i {
+		  svg use {
+			fill: @black;
+		  }
+		}
+
+		&:hover,
+		&.active {
+		  background: fade(@deepblue, 20);
+		  border: 1px solid @deepblue;
+		  color: @deepblue;
+
+		  i svg use {
+			fill: @deepblue;
+		  }
+		}
+
+		&.active::after {
+		  border-bottom: 9px solid @deepblue;
+		}
+
+		&.active::before {
+		  border-bottom: 9px solid #063319;
+		}
+	  }
+
+	}
+  }
+
+  .health-report {
+	// 健康报告 按钮样式
+	.actions {
+		.active{
+			border: 1px solid @deepblue;
+		}
+	  .item {
+		color: fade(@white, 75);
+		&.green {
+		  background: @deepblue;
+		}
+
+		&.purple {
+		  background: @purple;
+		}
+
+		&.gray {
+		  background: @black;
+		}
+	  }
+	}
+
+	.report-items {
+
+	  .item {
+		.title {
+		  background: fade(@black, 40);
+		  color: @black;
+		}
+
+		.info {
+		  background: fade(@black, 20);
+		  color: @font-color;
+		  .actions {
+			.success {
+			  border-color:@deepblue;
+			  color: @deepblue;
+			  background: fade(@deepblue,20);
+			}
+		  }
+		}
+	  }
+	}
+  }
+  
+  // 健康推荐-已分配任务
+  .track-info {
+    .form-info {
+      .work-flow {
+        background: fade(@gray, 20);
+        .work-flow-line {
+          background: @deepblue;
+        }
+  
+        .work-flow-item {
+          &.active {
+			  background: none;
+            .work-flow-icon-item {
+              .work-flow-icon-o {
+                  border: 1px solid @deepblue;
+                }
+  
+                .work-flow-icon-i {
+                  border: 2px solid @deepblue;
+                  background: linear-gradient(to bottom, @gray-l 0%,@gray-l 20%,@deepblue 100%);
+                }
+  
+                .svg-icon {
+                  svg {
+                    use {
+                      fill: @deepblue;
+                    }
+                  }
+                }
+            }
+  
+            .work-flow-text {
+              color: @deepblue;
+            }
+          }
+  
+          .work-flow-icon-item {
+            .work-flow-icon-o {
+              border: 1px solid #B3BDC0;
+            }
+  
+            .work-flow-icon-m {
+              border: 4px solid #212b2b;
+            }
+  
+            .work-flow-icon-i {
+              border: 2px solid @gray-l;
+              background: linear-gradient(to bottom, @gray 0%,@gray 20%,@gray-l 100%);
+            }
+  
+            .svg-icon {
+              svg {
+                use {
+                  fill: @gray-l;
+                }
+              }
+            }
+          }
+          .work-flow-text {
+              color: @black;
+            }
+        }
+      }
+    }
+  
+    .evaluate {
+  
+      .evaluate-item {
+        .evaluate-label,
+        .evaluate-unit {
+          color: @black;
+        }
+      }
+    }
+    .tabs {
+      border-left: 1px solid #53626833;
+  
+      .tab-box {
+  
+      .tab-item {
+        &.active {
+          color: @deepblue;
+          background-image: @deepblueLinearTop;
+  
+          &::after {
+            border: 1px solid @deepblue;
+          }
+        }
+      }
+    }
+    }
+  }
+  
+  .el-textarea {
+    .el-textarea__inner {
+      color: @black;
+	  background: fade(@gray-l, 20);
+    }
+  }
+  
+  .defect-elimination-tracking {
+	  background: fade(@white, 95);
+	  border: 1px solid fade(@deepblue, 50);
+	  
+    .defect-elimination-tracking-close {
+      &:hover {
+        i {
+          color: @blue;
+        }
+      }
+    }
+  
+    .header-tile-box {
+      .header-tile {
+  
+        .info-form-box {
+          .info-form {
+            .info-form-label {
+              color: @gray;
+            }
+            .info-form-value {
+              color: @black;
+            }
+          }
+        }
+      }
+    }
+    .det-chart-title {
+      color: @black;
+    }
+  
+    .det-chart-sub-title {
+      color: @black;
+    }
+  
+    .det-chart-sub-title-big {
+      color: @black;
+    }
+  }
+  
+  .health-2 {
+    // 电量健康情况
+    .power-info {
+      .info-tab {
+  
+        .tab {
+          color: @black;
+  
+          &:hover,
+          &.active {
+            background: fade(@deepblue, 20);
+            border: 1px solid @deepblue;
+            color: @deepblue;
+            i {
+              svg use {
+                fill: @deepblue;
+              }
+            }
+          }
+  
+          &.active::after {
+            border-bottom: 9px solid @deepblue;
+          }
+        }
+      }
+  
+    }
+    // 风场信息
+    .fc-info {
+      .fc-item {
+  
+        & > .title {
+          color: fade(@black, 75);
+        }
+  
+  
+        .tags {
+          .tag {
+            .tag-title {
+              color: @black;
+            }
+  
+            .tag-value {
+              color: @deepblue;
+              .unit {
+                color: @gray;
+              }
+            }
+          }
+        }
+        .health-info {
+          .title {
+            color: @black;
+            .actions {
+              .action {
+				  color: @gray;
+				  svg use {
+				    fill: @gray;
+				  }
+                &.active,
+                &:hover {
+					background: none;
+                  color: @deepblue;
+                  svg use {
+                    fill: @deepblue;
+                  }
+                }
+              }
+            }
+          }
+  
+          .info-body {
+            .device-list {
+              .item {
+                color: @black;
+                &.green {
+                  color: @green;
+                  background: fade(@green, 20);
+                  border-color: @green;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  .health-3{
+	  .com-panel{
+		  .green{
+		  		color:@green;
+				&.lengend{
+					background:@blue;
+				}
+		  }
+	  }
+  }
+  .el-time-panel__btn.confirm {
+    color: @deepblue;
+  }
+  
+  // .el-time-panel__btn.cancel {
+  //   color: @gray;
+  // }
+  .health-6 .header-info .selections .item:hover i svg use, .health-6 .header-info .selections .item.active i svg use {
+      fill: @deepblue;
+  }
+  .health-matrix{
+	  .green{
+		  color:@green;
+	  }
+	  .health-matrix-panel {
+		  .header{
+			  .svg-icon svg use{
+				  fill:@black;
+			  }
+			  .tools .tool-block .legend-value{
+			  		color: @black;
+			  }
+		  } 
+	  }
+  }
+  
+  .wind-site .page-common-body .page-common-body-menu .page-common-body-menu-box {
+	  .page-common-body-menu-item{
+	  	  border: 0.093vh solid rgba(@deepblue, 0.4);
+		  &.active{
+			  background:transparent;
+			  border: 0.093vh solid #edbf03;
+			  &::after{
+				border: 0.093vh solid #edbf03;
+			  }
+		  }
+	  }
+  }
+  .main-body input{
+	  color:@black;
+	  background:@white;
+  }
+}

+ 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>

File diff suppressed because it is too large
+ 660 - 0
src/components/arcgis/HZJ_GDC.vue


File diff suppressed because it is too large
+ 662 - 0
src/components/arcgis/MCH_GDC.vue


+ 0 - 1
src/components/arcgis/NSS_FDC.vue

@@ -247,7 +247,6 @@ export default {
             item.attributes.dur = 8;
             break;
         }
-		console.log(item.geometry.x)
         this.$refs.arcgis.addHtmlPoint(
           [item.geometry.x, item.geometry.y],
           item.attributes.code,

+ 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: {

+ 494 - 436
src/components/arcgis/QS_FDC.vue

@@ -1,444 +1,502 @@
 <template>
-	<div style="width: 100%; height: 100%">
-		<arcgis class="arcgis-layer" @when="when" ref="arcgis" :data="arcgisData" @clickMap="clickMap">
-			<template v-for="(fan, index) of fans" :key="index" v-slot:[fan.attributes.code]>
-				<svg v-if="fan.attributes.code != '升压站'" @click="clickFan(fan.attributes.code)"
-					class="can-click esri-component" version="1.1" xmlns="http://www.w3.org/2000/svg"
-					xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 200 240" enable-background="new 0 0 200 240"
-					xml:space="preserve" width="66" height="66">
-					<!-- 底座 -->
-					<g>
-						<path fill-rule="evenodd" clip-rule="evenodd" :fill="colors[fan.attributes.state][2]"
-							d="M100.681,156.137c24.579,0,44.505,8.548,44.505,19.094
-                            c0,10.545-19.926,19.093-44.505,19.093c-24.577,0-42.878-8.548-42.878-19.093C57.803,164.685,76.104,156.137,100.681,156.137z" />
-					</g>
-					<!-- 后面的脑袋 -->
-					<g>
-						<path fill-rule="evenodd" clip-rule="evenodd" :fill="colors[fan.attributes.state][0]" d="M92.875,76.372l27.897-18.417c0,0,4.108-0.096,7.891,2.681
-                                c4.305,3.156,1.86,9.235,1.86,9.235l-24.374,23.292L92.875,76.372z" />
-					</g>
-					<!-- 柱 -->
-					<g>
-						<path fill-rule="evenodd" clip-rule="evenodd" :fill="colors[fan.attributes.state][0]"
-							d="M92.152,175.229h18.689l-4.876-94.254H97.84L92.152,175.229z" />
-					</g>
-					<!-- 风扇 -->
-					<g>
-						<path fill-rule="evenodd" clip-rule="evenodd" :fill="colors[fan.attributes.state][1]"
-							d="M109.007,85.525l-16.061,0.268l7.396-83.773L109.007,85.525z" />
-						<path fill-rule="evenodd" clip-rule="evenodd" :fill="colors[fan.attributes.state][1]" d="M95.219,75.597l8.265,13.771l-76.25,35.483L95.219,75.597z
-                            M99.108,89.634l7.795-14.04l68.854,48.291L99.108,89.634z" />
-						<animateTransform v-if="fan.attributes.rotate" attributeName="transform" attributeType="XML"
-							type="rotate" from="0 100 82" to="359 100 82" :dur="fan.attributes.dur + 's'"
-							repeatCount="indefinite" />
-					</g>
-					<!-- 前面的尖 -->
-					<g>
-						<path fill-rule="evenodd" clip-rule="evenodd" :fill="colors[fan.attributes.state][2]" d="M92.863,72.903c0,0,13.912-0.343,17.098,4.352
-                            c2.984,4.397-2.58,15.473-2.58,15.473l-24.376,0.436L92.863,72.903z" />
-					</g>
-					<!-- 文字 -->
-					<g>
-						<text x="100" y="240" fill="#ffffff" font-size="40" text-anchor="middle"
-							alignment-baseline="baseline">
-							{{ fan.attributes.code }}
-						</text>
-					</g>
-				</svg>
-				<div v-if="fan.attributes.code == '升压站'">
-					<div class="syz-img">
-						<img :src="syzImg" />
-					</div>
-					<div class="white font-sm mr-t-8" style="text-align: center">
-						{{ fan.attributes.code }}
-					</div>
-				</div>
-			</template>
-		</arcgis>
-	</div>
+  <div style="width: 100%; height: 100%">
+    <arcgis
+      class="arcgis-layer"
+      @when="when"
+      ref="arcgis"
+      :data="arcgisData"
+      @clickMap="clickMap"
+    >
+      <template
+        v-for="(fan, index) of fans"
+        :key="index"
+        v-slot:[fan.attributes.code]
+      >
+        <svg
+          v-if="fan.attributes.code != '升压站'"
+          @click="clickFan(fan.attributes.code)"
+          class="can-click esri-component"
+          version="1.1"
+          xmlns="http://www.w3.org/2000/svg"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          viewBox="0 0 200 240"
+          enable-background="new 0 0 200 240"
+          xml:space="preserve"
+          width="66"
+          height="66"
+        >
+          <!-- 底座 -->
+          <g>
+            <path
+              fill-rule="evenodd"
+              clip-rule="evenodd"
+              :fill="colors[fan.attributes.state][2]"
+              d="M100.681,156.137c24.579,0,44.505,8.548,44.505,19.094
+                            c0,10.545-19.926,19.093-44.505,19.093c-24.577,0-42.878-8.548-42.878-19.093C57.803,164.685,76.104,156.137,100.681,156.137z"
+            />
+          </g>
+          <!-- 后面的脑袋 -->
+          <g>
+            <path
+              fill-rule="evenodd"
+              clip-rule="evenodd"
+              :fill="colors[fan.attributes.state][0]"
+              d="M92.875,76.372l27.897-18.417c0,0,4.108-0.096,7.891,2.681
+                                c4.305,3.156,1.86,9.235,1.86,9.235l-24.374,23.292L92.875,76.372z"
+            />
+          </g>
+          <!-- 柱 -->
+          <g>
+            <path
+              fill-rule="evenodd"
+              clip-rule="evenodd"
+              :fill="colors[fan.attributes.state][0]"
+              d="M92.152,175.229h18.689l-4.876-94.254H97.84L92.152,175.229z"
+            />
+          </g>
+          <!-- 风扇 -->
+          <g>
+            <path
+              fill-rule="evenodd"
+              clip-rule="evenodd"
+              :fill="colors[fan.attributes.state][1]"
+              d="M109.007,85.525l-16.061,0.268l7.396-83.773L109.007,85.525z"
+            />
+            <path
+              fill-rule="evenodd"
+              clip-rule="evenodd"
+              :fill="colors[fan.attributes.state][1]"
+              d="M95.219,75.597l8.265,13.771l-76.25,35.483L95.219,75.597z
+                            M99.108,89.634l7.795-14.04l68.854,48.291L99.108,89.634z"
+            />
+            <animateTransform
+              v-if="fan.attributes.rotate"
+              attributeName="transform"
+              attributeType="XML"
+              type="rotate"
+              from="0 100 82"
+              to="359 100 82"
+              :dur="fan.attributes.dur + 's'"
+              repeatCount="indefinite"
+            />
+          </g>
+          <!-- 前面的尖 -->
+          <g>
+            <path
+              fill-rule="evenodd"
+              clip-rule="evenodd"
+              :fill="colors[fan.attributes.state][2]"
+              d="M92.863,72.903c0,0,13.912-0.343,17.098,4.352
+                            c2.984,4.397-2.58,15.473-2.58,15.473l-24.376,0.436L92.863,72.903z"
+            />
+          </g>
+          <!-- 文字 -->
+          <g>
+            <text
+              x="100"
+              y="240"
+              fill="#ffffff"
+              font-size="40"
+              text-anchor="middle"
+              alignment-baseline="baseline"
+            >
+              {{ fan.attributes.code }}
+            </text>
+          </g>
+        </svg>
+        <div v-if="fan.attributes.code == '升压站'">
+          <div class="syz-img">
+            <img :src="syzImg" />
+          </div>
+          <div class="white font-sm mr-t-8" style="text-align: center">
+            {{ fan.attributes.code }}
+          </div>
+        </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: [107.217636108398, 37.5134917819943], // 初始中心点 106.230909, 38.487193
-					height: 654, // 3D地图初始相机高度
-					tilt: 65, // 俯视角
-					scale: 55000,
-					rotation: -45,
-					ox: -600,
-					oy: -50,
-				},
-				showPopup: false,
-				mapToolIndex: 0,
-				fans: [],
-				colors: {
-					0: ["#05bb4c", "#4ad476", "#9fedb2"],
-					1: ["#4b55ae", "#959dc7", "#d3d6e0"],
-					2: ["#BA3237", "#d4807d", "#eddad8"],
-					3: ["#606769", "#757575", "#AFAFAF"],
-					4: ["#e17e23", "#fabf78", "#ffebcc"],
-					5: ["#c531c7", "#e080dc", "#fadef7"],
-					6: ["#c531c7", "#e080dc", "#fadef7"],
-				},
-				syzImg: require("@assets/png/booster-station.png"),
-			};
-		},
-		created() {
-			let that = this;
-			that.sourceId = this.wpId;
-			that.$nextTick(() => {
-				that.requestData();
-			});
-		},
-		// 函数
-		methods: {
-			select(res) {
-				this.$router.replace({
-					path: `/monitor/windsite/map/${res.code}`,
-				});
-			},
-			// 风机状态监视
-			requestData() {
-				let that = this;
-				that.API.requestData({
-					method: "POST",
-					subUrl: "monitor/findGeneralAppearance",
-					data: {
-						wpId: that.wpId,
-					},
-					success(res) {
-						if (res.code == 200) {
-							that.wpnumMap = res.data.fczbmap.jczbmap;
-							that.wpInfoMap = res.data.wxssmap;
-							that.fjmap = res.data.fjmap[0];
-							that.when();
-						}
-					},
-				});
-			},
-			when: function() {
-				let jsonObj = dataService.get("arcgis-qs");
-				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-qs-line");
-				this.$refs.arcgis.addFanByJson(jsonObj, lineJsonObj);
-			},
-			clickMap: function(info) {
-				console.log(info);
-			},
-			clickFan: function(code) {
-				let wtId = code.replace("G", "G01_");
-				this.$router.push(`/monitor/windsite/info/${this.wpId}/${wtId}`);
-			},
-			popupBack: function() {
-				this.showPopup = false;
-			},
-			clickMapTool: function(index) {
-				//   this.mapToolIndex = index;
-				this.showPopup = !this.showPopup;
-			},
-		},
-		watch: {
-			wpId(res) {
-				this.sourceId = res;
-				if (res) {
-					this.requestData();
-				}
-			},
-		},
-	};
+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: [107.217636108398, 37.5134917819943], // 初始中心点 106.230909, 38.487193
+        height: 654, // 3D地图初始相机高度
+        tilt: 65, // 俯视角
+        scale: 55000,
+        rotation: -45,
+        ox: -600,
+        oy: -50,
+      },
+      showPopup: false,
+      mapToolIndex: 0,
+      fans: [],
+      colors: {
+        0: ["#05bb4c", "#4ad476", "#9fedb2"],
+        1: ["#4b55ae", "#959dc7", "#d3d6e0"],
+        2: ["#BA3237", "#d4807d", "#eddad8"],
+        3: ["#606769", "#757575", "#AFAFAF"],
+        4: ["#e17e23", "#fabf78", "#ffebcc"],
+        5: ["#c531c7", "#e080dc", "#fadef7"],
+        6: ["#c531c7", "#e080dc", "#fadef7"],
+      },
+      syzImg: require("@assets/png/booster-station.png"),
+    };
+  },
+  created() {
+    let that = this;
+    that.sourceId = this.wpId;
+    that.$nextTick(() => {
+      that.requestData();
+    });
+  },
+  // 函数
+  methods: {
+    select(res) {
+      this.$router.replace({
+        path: `/monitor/windsite/map/${res.code}`,
+      });
+    },
+    // 风机状态监视
+    requestData() {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        subUrl: "monitor/findGeneralAppearance",
+        data: {
+          wpId: that.wpId,
+        },
+        success(res) {
+          if (res.code == 200) {
+            that.wpnumMap = res.data.fczbmap.jczbmap;
+            that.wpInfoMap = res.data.wxssmap;
+            that.fjmap = res.data.fjmap[0];
+			that.when();
+          }
+        },
+      });
+    },
+    when: function () {
+      let jsonObj = dataService.get("arcgis-qs");
+      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-qs-line");
+      this.$refs.arcgis.addFanByJson(jsonObj, lineJsonObj);
+    },
+    clickMap: function (info) {
+      console.log(info);
+    },
+    clickFan: function (code) {
+      let wtId = code.replace("G", "G01_");
+      this.$router.push(`/monitor/windsite/info/${this.wpId}/${wtId}`);
+    },
+    popupBack: function () {
+      this.showPopup = false;
+    },
+    clickMapTool: function (index) {
+      //   this.mapToolIndex = index;
+      this.showPopup = !this.showPopup;
+    },
+  },
+  watch: {
+    wpId(res) {
+      this.sourceId = res;
+      if (res) {
+        this.requestData();
+      }
+    },
+  },
+};
 </script>
 
 <style lang="less" scoped>
-	@titleHeight: 40px;
-
-	.map-1 {
-		width: 100%;
-		height: calc(100vh - 90px);
-		display: flex;
-		flex-direction: column;
-
-		.btn-group-tabs {
-			display: flex;
-			flex-direction: row;
-		}
-
-		.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;
-					}
-				}
-			}
-		}
-	}
+@titleHeight: 40px;
+
+.map-1 {
+  width: 100%;
+  height: calc(100vh - 90px);
+  display: flex;
+  flex-direction: column;
+
+  .btn-group-tabs {
+    display: flex;
+    flex-direction: row;
+  }
+
+  .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>

File diff suppressed because it is too large
+ 659 - 0
src/components/arcgis/XH_GDC.vue


+ 13 - 0
src/components/arcgis/arcgis.vue

@@ -455,6 +455,19 @@
         },
         mounted() {
             // 渲染后
+			basemap = null;
+            map = null;
+            view = null;
+            point_graphicsLayer = null;
+            line_graphicsLayer = null;
+            text_graphicsLayer = null;
+            img_graphicsLayer = null;
+            html_graphicsLayer = null;
+            point_graphics = [];
+            line_graphics = [];
+            text_graphics = [];
+            img_graphics = [];
+            html_graphics = [];
             this.initMap();
         },
         beforeUpdate() {

+ 5 - 6
src/components/chart/bar/percent-bar.vue

@@ -103,17 +103,16 @@ export default {
             backgroundStyle: {
               color:
                 this.$store.state.themeName === "dark"
-                  ? partten.getColor(this.colors) + "30"
-                  : "#fff",
+                    ? partten.getColor(this.colors)
+                    : "rgb(57, 54, 143)",
             },
             data: [this.value],
             coordinateSystem: "polar",
             itemStyle: {
               normal: {
-                color:
-                  this.$store.state.themeName === "dark"
-                    ? partten.getColor(this.colors)
-                    : "rgb(57, 54, 143)",
+                color:this.$store.state.themeName === "dark"
+                  ? 'black'
+                  : "#fff",
                 //    new echarts.graphic.LinearGradient(1, 0, 0, 0, [
                 //     {
                 //       offset: 0,

+ 14 - 9
src/components/chart/combination/area-line-chart.vue

@@ -311,10 +311,10 @@ export default {
           axisPointer: {
             type: "cross",
           },
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: 14,
           },
         },
@@ -325,9 +325,9 @@ export default {
           icon: "ract",
           itemWidth: 8,
           itemHeight: 8,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
             fontSize: 12,
           },
         },
@@ -335,7 +335,7 @@ export default {
           {
             type: "category",
             axisLabel: {
-              color: partten.getColor("gray"),
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
             },
             axisLine: {
               show: false,
@@ -363,12 +363,12 @@ export default {
             name: this.units[0],
             axisLabel: {
               formatter: "{value} ",
-              color: partten.getColor("gray"),
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
             },
             axisLine: {
               type: "dashed",
               lineStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
               width: 5,
             },
@@ -379,7 +379,7 @@ export default {
               lineStyle: {
                 type: "dashed",
                 dashOffset: 10,
-                color: partten.getColor("gray") + 80,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000" + 80,
               },
             },
           },
@@ -463,6 +463,11 @@ export default {
       this.initChart();
     });
   },
+  watch: {
+      "$store.state.themeName"() {
+        this.initChart();
+      },
+    },
 };
 </script>
 

+ 41 - 14
src/components/chart/combination/bar-line-chart.vue

@@ -123,18 +123,26 @@ export default {
           icon: "ract",
           itemWidth: 8,
           itemHeight: 8,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: this.$store.state.themeName === "dark"
+              ? partten.getColor("grayl")
+              : "#000",
             fontSize: 12,
           },
         },
         tooltip: {
           trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark"
+              ? "rgba(0,0,0,0.4)"
+              : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
           textStyle: {
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: util.vh(16),
           },
         },
@@ -153,7 +161,9 @@ export default {
             backgroundColor: "transparent",
             // handleIcon: "path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z",
             handleStyle: {
-              color: partten.getColor("green"),
+              color: this.$store.state.themeName === "dark"
+              ? partten.getColor("green")
+              : partten.getColor("blue"),
             },
             moveHandleSize: 0,
             // dataBackground: {
@@ -174,9 +184,13 @@ export default {
             // },
             fillerColor: "transparent",
             textStyle: {
-              color: partten.getColor("grayl"),
+              color: this.$store.state.themeName === "dark"
+              ? partten.getColor("grayl")
+              : "#000",
             },
-            borderColor: partten.getColor("gray"),
+            borderColor: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
             brushSelect: false,
           },
         ],
@@ -184,7 +198,9 @@ export default {
           {
             type: "category",
             axisLabel: {
-              color: partten.getColor("gray"),
+              color: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
             },
             inverse: true,
             // minInterval: 10,
@@ -202,12 +218,16 @@ export default {
           {
             type: "value",
             axisLabel: {
-              color: partten.getColor("gray"),
+              color: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
             },
             axisLine: {
               type: "dashed",
               lineStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
               },
               width: 5,
             },
@@ -218,7 +238,7 @@ export default {
               lineStyle: {
                 type: "dashed",
                 dashOffset: 10,
-                color: partten.getColor("gray") + 80,
+                color: this.$store.state.themeName === "dark" ? "#5a6162" : "#000" + 80,
               },
             },
           },
@@ -269,10 +289,14 @@ export default {
           smooth: false, //平滑展示
           xAxisIndex: 1,
           lineStyle: {
-            color: partten.getColor("green"),
+            color: this.$store.state.themeName === "dark"
+              ? partten.getColor("green")
+              : partten.getColor("blue"),
           },
           itemStyle: {
-            color: partten.getColor("green"),
+            color: this.$store.state.themeName === "dark"
+              ? partten.getColor("green")
+              : partten.getColor("blue"),
           },
         });
       }
@@ -315,6 +339,9 @@ export default {
         }
       }
     },
+	"$store.state.themeName"() {
+	  this.initChart();
+	},
   },
 };
 </script>

+ 10 - 7
src/components/chart/combination/multiple-bar-line-chart.vue

@@ -222,6 +222,9 @@ export default {
       },
       deep: true,
     },
+	"$store.state.themeName"() {
+	  this.initChart();
+	},
   },
   computed: {
     legend() {
@@ -310,10 +313,10 @@ export default {
         color: this.color,
         tooltip: {
           trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: 12,
           },
         },
@@ -324,9 +327,9 @@ export default {
           icon: "ract",
           itemWidth: 8,
           itemHeight: 8,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
             fontSize: 12,
           },
         },
@@ -359,7 +362,7 @@ export default {
           name: this.newlineData.name,
           axisLabel: {
             formatter: "{value} ",
-            color: partten.getColor("gray"),
+            color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           },
           axisLine: {
             show: false,
@@ -372,7 +375,7 @@ export default {
             lineStyle: {
               type: "dashed",
               dashOffset: 10,
-              color: partten.getColor("gray") + 80,
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000" + 80,
             },
           },
         });

+ 13 - 7
src/components/chart/combination/scatter-line-chart.vue

@@ -588,14 +588,14 @@ export default {
                 type: "max",
                 name: "最大值",
                 label: {
-                  color: partten.getColor("gray"),
+                  color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
                 },
               },
               {
                 type: "min",
                 name: "最小值",
                 label: {
-                  color: partten.getColor("gray"),
+                  color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
                 },
               },
             ],
@@ -645,11 +645,11 @@ export default {
         tooltip: {
           trigger: "item",
           showDelay: 0,
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
             fontSize: util.vh(16),
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
           },
           formatter(params) {
             if (params.componentType == "markLine") {
@@ -677,9 +677,9 @@ export default {
           right: "40",
           icon: "circle",
           itemWidth: 6,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
             fontSize: 12,
           },
         },
@@ -698,6 +698,7 @@ export default {
         ],
         yAxis: [
           {
+            min: 0,
             type: "value",
             name: this.yTitle,
             scale: true,
@@ -786,6 +787,11 @@ export default {
   unmounted() {
     window.removeEventListener("resize", this.resize);
   },
+  watch: {
+      "$store.state.themeName"() {
+        this.initChart();
+      },
+    },
 };
 </script>
 

+ 13 - 10
src/components/chart/combination/vertival-bar-line-chart.vue

@@ -75,6 +75,9 @@ export default {
       },
       deep: true,
     },
+	"$store.state.themeName"() {
+	  this.initChart();
+	},
   },
   computed: {
     legend() {
@@ -95,10 +98,10 @@ export default {
         },
         tooltip: {
           trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: 14,
           },
         },
@@ -109,9 +112,9 @@ export default {
           icon: "ract",
           itemWidth: 8,
           itemHeight: 8,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
             fontSize: 12,
           },
         },
@@ -119,7 +122,7 @@ export default {
           {
             type: "category",
             axisLabel: {
-              color: partten.getColor("gray"),
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
             },
             axisLine: {
               show: false,
@@ -136,12 +139,12 @@ export default {
             name: this.units[0],
             axisLabel: {
               formatter: "{value} ",
-              color: partten.getColor("gray"),
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
             },
             axisLine: {
               type: "dashed",
               lineStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
               width: 5,
             },
@@ -152,7 +155,7 @@ export default {
               lineStyle: {
                 type: "dashed",
                 dashOffset: 10,
-                color: partten.getColor("gray") + 80,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000" + 80,
               },
             },
           },
@@ -161,7 +164,7 @@ export default {
             name: this.units[1],
             axisLabel: {
               formatter: "{value} ",
-              color: partten.getColor("gray"),
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               align: "left",
             },
             axisLine: {

+ 4 - 1
src/components/chart/line/marker-line-chart.vue

@@ -120,6 +120,9 @@ export default {
       type: Boolean,
       default: false,
     },
+	myUnit: {
+      type: String,
+    },
   },
   data() {
     return {
@@ -259,7 +262,7 @@ export default {
           },
         },
         grid: {
-          top: 16,
+          top: this.myUnit === 'MW' ? 32 : 16,
           left: 32,
           right: 8,
           bottom: 24,

+ 8 - 8
src/components/chart/line/multi-arrow-line-chart.vue

@@ -128,7 +128,7 @@ export default {
           //分格线
           splitLine: {
             lineStyle: {
-              color: partten.getColor("gray") + 55,
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000" + 55,
               type: "dashed",
             },
           },
@@ -182,10 +182,10 @@ export default {
         color: this.color,
         tooltip: {
           trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
-          textStyle: {
-            color: "#fff",
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+			borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
+			textStyle: {
+			  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: util.vh(16),
           },
         },
@@ -195,9 +195,9 @@ export default {
           right: 56,
           icon: "circle",
           itemWidth: 6,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
             fontSize: 12,
           },
         },
@@ -215,7 +215,7 @@ export default {
               formatter: "{value}",
               fontSize: util.vh(14),
               textStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
             },
             data: this.xdata,

+ 8 - 8
src/components/chart/line/multiple-line-chart.vue

@@ -263,7 +263,7 @@ export default {
           zlevel: index,
           lineStyle: {
             normal: {
-              // color: index != 0 ? partten.getColor("gray") : this.color[index],
+              // color: index != 0 ? this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000" : this.color[index],
               color: this.color[index],
               width: 1,
             },
@@ -348,7 +348,7 @@ export default {
           splitLine: {
             show: index == 0,
             lineStyle: {
-              color: partten.getColor("gray"),
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               type: "dashed",
             },
           },
@@ -383,11 +383,11 @@ export default {
                   type: "cross",
                 }
               : {},
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
             fontSize: util.vh(16),
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
           },
         },
         legend: {
@@ -396,9 +396,9 @@ export default {
           right: 56,
           icon: "circle",
           itemWidth: 6,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
             fontSize: 12,
           },
         },
@@ -417,7 +417,7 @@ export default {
               formatter: "{value}",
               fontSize: util.vh(14),
               textStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
             },
             axisLine: {

+ 1 - 1
src/components/chart/line/multiple-y-line-chart-normal.vue

@@ -311,7 +311,7 @@ export default {
           min: item.min,
           max: item.max,
           position: item.position,
-          offset: p[item.position] * 50,
+          offset: -15,
           axisLabel: {
             formatter: "{value}",
             fontSize: 12,

+ 20 - 763
src/components/chart/line/multiple-y-line-chart.vue

@@ -32,156 +32,6 @@
                             ["2021/07/01 10:00:00", 69],
                             ["2021/07/01 15:00:00", 134],
                             ["2021/07/01 20:00:00", 262],
-                            ["2021/07/02 00:00:00", 181],
-                            ["2021/07/02 05:00:00", 72],
-                            ["2021/07/02 10:00:00", 221],
-                            ["2021/07/02 15:00:00", 184],
-                            ["2021/07/02 20:00:00", 319],
-                            ["2021/07/03 00:00:00", 283],
-                            ["2021/07/03 05:00:00", 156],
-                            ["2021/07/03 10:00:00", 308],
-                            ["2021/07/03 15:00:00", 153],
-                            ["2021/07/03 20:00:00", 67],
-                            ["2021/07/04 00:00:00", 289],
-                            ["2021/07/04 05:00:00", 194],
-                            ["2021/07/04 10:00:00", 358],
-                            ["2021/07/04 15:00:00", 325],
-                            ["2021/07/04 20:00:00", 345],
-                            ["2021/07/05 00:00:00", 242],
-                            ["2021/07/05 05:00:00", 100],
-                            ["2021/07/05 10:00:00", 225],
-                            ["2021/07/05 15:00:00", 230],
-                            ["2021/07/05 20:00:00", 162],
-                            ["2021/07/06 00:00:00", 235],
-                            ["2021/07/06 05:00:00", 237],
-                            ["2021/07/06 10:00:00", 248],
-                            ["2021/07/06 15:00:00", 350],
-                            ["2021/07/06 20:00:00", 298],
-                            ["2021/07/07 00:00:00", 295],
-                            ["2021/07/07 05:00:00", 192],
-                            ["2021/07/07 10:00:00", 54],
-                            ["2021/07/07 15:00:00", 321],
-                            ["2021/07/07 20:00:00", 104],
-                            ["2021/07/08 00:00:00", 163],
-                            ["2021/07/08 05:00:00", 177],
-                            ["2021/07/08 10:00:00", 185],
-                            ["2021/07/08 15:00:00", 120],
-                            ["2021/07/08 20:00:00", 61],
-                            ["2021/07/09 00:00:00", 104],
-                            ["2021/07/09 05:00:00", 178],
-                            ["2021/07/09 10:00:00", 90],
-                            ["2021/07/09 15:00:00", 331],
-                            ["2021/07/09 20:00:00", 217],
-                            ["2021/07/10 00:00:00", 338],
-                            ["2021/07/10 05:00:00", 155],
-                            ["2021/07/10 10:00:00", 99],
-                            ["2021/07/10 15:00:00", 109],
-                            ["2021/07/10 20:00:00", 221],
-                            ["2021/07/11 00:00:00", 281],
-                            ["2021/07/11 05:00:00", 306],
-                            ["2021/07/11 10:00:00", 246],
-                            ["2021/07/11 15:00:00", 176],
-                            ["2021/07/11 20:00:00", 348],
-                            ["2021/07/12 00:00:00", 94],
-                            ["2021/07/12 05:00:00", 100],
-                            ["2021/07/12 10:00:00", 53],
-                            ["2021/07/12 15:00:00", 269],
-                            ["2021/07/12 20:00:00", 93],
-                            ["2021/07/13 00:00:00", 178],
-                            ["2021/07/13 05:00:00", 100],
-                            ["2021/07/13 10:00:00", 53],
-                            ["2021/07/13 15:00:00", 260],
-                            ["2021/07/13 20:00:00", 114],
-                            ["2021/07/14 00:00:00", 251],
-                            ["2021/07/14 05:00:00", 250],
-                            ["2021/07/14 10:00:00", 97],
-                            ["2021/07/14 15:00:00", 283],
-                            ["2021/07/14 20:00:00", 231],
-                            ["2021/07/15 00:00:00", 359],
-                            ["2021/07/15 05:00:00", 105],
-                            ["2021/07/15 10:00:00", 229],
-                            ["2021/07/15 15:00:00", 81],
-                            ["2021/07/15 20:00:00", 353],
-                            ["2021/07/16 00:00:00", 244],
-                            ["2021/07/16 05:00:00", 231],
-                            ["2021/07/16 10:00:00", 275],
-                            ["2021/07/16 15:00:00", 273],
-                            ["2021/07/16 20:00:00", 199],
-                            ["2021/07/17 00:00:00", 124],
-                            ["2021/07/17 05:00:00", 176],
-                            ["2021/07/17 10:00:00", 149],
-                            ["2021/07/17 15:00:00", 77],
-                            ["2021/07/17 20:00:00", 168],
-                            ["2021/07/18 00:00:00", 256],
-                            ["2021/07/18 05:00:00", 138],
-                            ["2021/07/18 10:00:00", 95],
-                            ["2021/07/18 15:00:00", 313],
-                            ["2021/07/18 20:00:00", 244],
-                            ["2021/07/19 00:00:00", 169],
-                            ["2021/07/19 05:00:00", 199],
-                            ["2021/07/19 10:00:00", 91],
-                            ["2021/07/19 15:00:00", 241],
-                            ["2021/07/19 20:00:00", 344],
-                            ["2021/07/20 00:00:00", 85],
-                            ["2021/07/20 05:00:00", 332],
-                            ["2021/07/20 10:00:00", 189],
-                            ["2021/07/20 15:00:00", 81],
-                            ["2021/07/20 20:00:00", 290],
-                            ["2021/07/21 00:00:00", 214],
-                            ["2021/07/21 05:00:00", 61],
-                            ["2021/07/21 10:00:00", 339],
-                            ["2021/07/21 15:00:00", 286],
-                            ["2021/07/21 20:00:00", 89],
-                            ["2021/07/22 00:00:00", 279],
-                            ["2021/07/22 05:00:00", 229],
-                            ["2021/07/22 10:00:00", 238],
-                            ["2021/07/22 15:00:00", 86],
-                            ["2021/07/22 20:00:00", 163],
-                            ["2021/07/23 00:00:00", 140],
-                            ["2021/07/23 05:00:00", 312],
-                            ["2021/07/23 10:00:00", 134],
-                            ["2021/07/23 15:00:00", 53],
-                            ["2021/07/23 20:00:00", 235],
-                            ["2021/07/24 00:00:00", 97],
-                            ["2021/07/24 05:00:00", 309],
-                            ["2021/07/24 10:00:00", 147],
-                            ["2021/07/24 15:00:00", 258],
-                            ["2021/07/24 20:00:00", 192],
-                            ["2021/07/25 00:00:00", 305],
-                            ["2021/07/25 05:00:00", 282],
-                            ["2021/07/25 10:00:00", 72],
-                            ["2021/07/25 15:00:00", 258],
-                            ["2021/07/25 20:00:00", 312],
-                            ["2021/07/26 00:00:00", 259],
-                            ["2021/07/26 05:00:00", 146],
-                            ["2021/07/26 10:00:00", 93],
-                            ["2021/07/26 15:00:00", 158],
-                            ["2021/07/26 20:00:00", 156],
-                            ["2021/07/27 00:00:00", 362],
-                            ["2021/07/27 05:00:00", 193],
-                            ["2021/07/27 10:00:00", 177],
-                            ["2021/07/27 15:00:00", 313],
-                            ["2021/07/27 20:00:00", 60],
-                            ["2021/07/28 00:00:00", 119],
-                            ["2021/07/28 05:00:00", 142],
-                            ["2021/07/28 10:00:00", 283],
-                            ["2021/07/28 15:00:00", 105],
-                            ["2021/07/28 20:00:00", 121],
-                            ["2021/07/29 00:00:00", 304],
-                            ["2021/07/29 05:00:00", 82],
-                            ["2021/07/29 10:00:00", 326],
-                            ["2021/07/29 15:00:00", 216],
-                            ["2021/07/29 20:00:00", 223],
-                            ["2021/07/30 00:00:00", 218],
-                            ["2021/07/30 05:00:00", 313],
-                            ["2021/07/30 10:00:00", 339],
-                            ["2021/07/30 15:00:00", 125],
-                            ["2021/07/30 20:00:00", 244],
-                            ["2021/07/31 00:00:00", 179],
-                            ["2021/07/31 05:00:00", 360],
-                            ["2021/07/31 10:00:00", 267],
-                            ["2021/07/31 15:00:00", 85],
-                            ["2021/07/31 20:00:00", 309]
                         ],
                     },
                     {
@@ -193,156 +43,6 @@
                             ["2021/07/01 10:00:00", 290],
                             ["2021/07/01 15:00:00", 140],
                             ["2021/07/01 20:00:00", 203],
-                            ["2021/07/02 00:00:00", 280],
-                            ["2021/07/02 05:00:00", 283],
-                            ["2021/07/02 10:00:00", 252],
-                            ["2021/07/02 15:00:00", 155],
-                            ["2021/07/02 20:00:00", 133],
-                            ["2021/07/03 00:00:00", 94],
-                            ["2021/07/03 05:00:00", 191],
-                            ["2021/07/03 10:00:00", 193],
-                            ["2021/07/03 15:00:00", 205],
-                            ["2021/07/03 20:00:00", 301],
-                            ["2021/07/04 00:00:00", 101],
-                            ["2021/07/04 05:00:00", 257],
-                            ["2021/07/04 10:00:00", 82],
-                            ["2021/07/04 15:00:00", 75],
-                            ["2021/07/04 20:00:00", 254],
-                            ["2021/07/05 00:00:00", 184],
-                            ["2021/07/05 05:00:00", 146],
-                            ["2021/07/05 10:00:00", 272],
-                            ["2021/07/05 15:00:00", 100],
-                            ["2021/07/05 20:00:00", 118],
-                            ["2021/07/06 00:00:00", 125],
-                            ["2021/07/06 05:00:00", 80],
-                            ["2021/07/06 10:00:00", 144],
-                            ["2021/07/06 15:00:00", 100],
-                            ["2021/07/06 20:00:00", 232],
-                            ["2021/07/07 00:00:00", 139],
-                            ["2021/07/07 05:00:00", 311],
-                            ["2021/07/07 10:00:00", 152],
-                            ["2021/07/07 15:00:00", 182],
-                            ["2021/07/07 20:00:00", 162],
-                            ["2021/07/08 00:00:00", 175],
-                            ["2021/07/08 05:00:00", 95],
-                            ["2021/07/08 10:00:00", 300],
-                            ["2021/07/08 15:00:00", 290],
-                            ["2021/07/08 20:00:00", 218],
-                            ["2021/07/09 00:00:00", 106],
-                            ["2021/07/09 05:00:00", 301],
-                            ["2021/07/09 10:00:00", 221],
-                            ["2021/07/09 15:00:00", 126],
-                            ["2021/07/09 20:00:00", 149],
-                            ["2021/07/10 00:00:00", 308],
-                            ["2021/07/10 05:00:00", 187],
-                            ["2021/07/10 10:00:00", 164],
-                            ["2021/07/10 15:00:00", 139],
-                            ["2021/07/10 20:00:00", 199],
-                            ["2021/07/11 00:00:00", 71],
-                            ["2021/07/11 05:00:00", 198],
-                            ["2021/07/11 10:00:00", 121],
-                            ["2021/07/11 15:00:00", 242],
-                            ["2021/07/11 20:00:00", 286],
-                            ["2021/07/12 00:00:00", 198],
-                            ["2021/07/12 05:00:00", 275],
-                            ["2021/07/12 10:00:00", 63],
-                            ["2021/07/12 15:00:00", 229],
-                            ["2021/07/12 20:00:00", 272],
-                            ["2021/07/13 00:00:00", 266],
-                            ["2021/07/13 05:00:00", 305],
-                            ["2021/07/13 10:00:00", 218],
-                            ["2021/07/13 15:00:00", 273],
-                            ["2021/07/13 20:00:00", 112],
-                            ["2021/07/14 00:00:00", 243],
-                            ["2021/07/14 05:00:00", 105],
-                            ["2021/07/14 10:00:00", 147],
-                            ["2021/07/14 15:00:00", 301],
-                            ["2021/07/14 20:00:00", 145],
-                            ["2021/07/15 00:00:00", 136],
-                            ["2021/07/15 05:00:00", 153],
-                            ["2021/07/15 10:00:00", 251],
-                            ["2021/07/15 15:00:00", 76],
-                            ["2021/07/15 20:00:00", 296],
-                            ["2021/07/16 00:00:00", 128],
-                            ["2021/07/16 05:00:00", 94],
-                            ["2021/07/16 10:00:00", 236],
-                            ["2021/07/16 15:00:00", 202],
-                            ["2021/07/16 20:00:00", 94],
-                            ["2021/07/17 00:00:00", 169],
-                            ["2021/07/17 05:00:00", 93],
-                            ["2021/07/17 10:00:00", 297],
-                            ["2021/07/17 15:00:00", 110],
-                            ["2021/07/17 20:00:00", 271],
-                            ["2021/07/18 00:00:00", 98],
-                            ["2021/07/18 05:00:00", 169],
-                            ["2021/07/18 10:00:00", 114],
-                            ["2021/07/18 15:00:00", 190],
-                            ["2021/07/18 20:00:00", 62],
-                            ["2021/07/19 00:00:00", 151],
-                            ["2021/07/19 05:00:00", 239],
-                            ["2021/07/19 10:00:00", 135],
-                            ["2021/07/19 15:00:00", 281],
-                            ["2021/07/19 20:00:00", 190],
-                            ["2021/07/20 00:00:00", 65],
-                            ["2021/07/20 05:00:00", 207],
-                            ["2021/07/20 10:00:00", 140],
-                            ["2021/07/20 15:00:00", 272],
-                            ["2021/07/20 20:00:00", 195],
-                            ["2021/07/21 00:00:00", 66],
-                            ["2021/07/21 05:00:00", 163],
-                            ["2021/07/21 10:00:00", 306],
-                            ["2021/07/21 15:00:00", 213],
-                            ["2021/07/21 20:00:00", 154],
-                            ["2021/07/22 00:00:00", 305],
-                            ["2021/07/22 05:00:00", 223],
-                            ["2021/07/22 10:00:00", 201],
-                            ["2021/07/22 15:00:00", 224],
-                            ["2021/07/22 20:00:00", 63],
-                            ["2021/07/23 00:00:00", 226],
-                            ["2021/07/23 05:00:00", 75],
-                            ["2021/07/23 10:00:00", 309],
-                            ["2021/07/23 15:00:00", 191],
-                            ["2021/07/23 20:00:00", 219],
-                            ["2021/07/24 00:00:00", 142],
-                            ["2021/07/24 05:00:00", 162],
-                            ["2021/07/24 10:00:00", 260],
-                            ["2021/07/24 15:00:00", 260],
-                            ["2021/07/24 20:00:00", 249],
-                            ["2021/07/25 00:00:00", 278],
-                            ["2021/07/25 05:00:00", 187],
-                            ["2021/07/25 10:00:00", 101],
-                            ["2021/07/25 15:00:00", 200],
-                            ["2021/07/25 20:00:00", 261],
-                            ["2021/07/26 00:00:00", 161],
-                            ["2021/07/26 05:00:00", 227],
-                            ["2021/07/26 10:00:00", 289],
-                            ["2021/07/26 15:00:00", 85],
-                            ["2021/07/26 20:00:00", 88],
-                            ["2021/07/27 00:00:00", 237],
-                            ["2021/07/27 05:00:00", 198],
-                            ["2021/07/27 10:00:00", 260],
-                            ["2021/07/27 15:00:00", 146],
-                            ["2021/07/27 20:00:00", 288],
-                            ["2021/07/28 00:00:00", 213],
-                            ["2021/07/28 05:00:00", 250],
-                            ["2021/07/28 10:00:00", 77],
-                            ["2021/07/28 15:00:00", 75],
-                            ["2021/07/28 20:00:00", 153],
-                            ["2021/07/29 00:00:00", 263],
-                            ["2021/07/29 05:00:00", 173],
-                            ["2021/07/29 10:00:00", 105],
-                            ["2021/07/29 15:00:00", 239],
-                            ["2021/07/29 20:00:00", 69],
-                            ["2021/07/30 00:00:00", 126],
-                            ["2021/07/30 05:00:00", 238],
-                            ["2021/07/30 10:00:00", 62],
-                            ["2021/07/30 15:00:00", 277],
-                            ["2021/07/30 20:00:00", 61],
-                            ["2021/07/31 00:00:00", 91],
-                            ["2021/07/31 05:00:00", 201],
-                            ["2021/07/31 10:00:00", 238],
-                            ["2021/07/31 15:00:00", 307],
-                            ["2021/07/31 20:00:00", 86]
                         ],
                     },
                     {
@@ -354,156 +54,6 @@
                             ["2021/07/01 10:00:00", 231],
                             ["2021/07/01 15:00:00", 305],
                             ["2021/07/01 20:00:00", 230],
-                            ["2021/07/02 00:00:00", 248],
-                            ["2021/07/02 05:00:00", 295],
-                            ["2021/07/02 10:00:00", 147],
-                            ["2021/07/02 15:00:00", 242],
-                            ["2021/07/02 20:00:00", 317],
-                            ["2021/07/03 00:00:00", 218],
-                            ["2021/07/03 05:00:00", 217],
-                            ["2021/07/03 10:00:00", 274],
-                            ["2021/07/03 15:00:00", 329],
-                            ["2021/07/03 20:00:00", 148],
-                            ["2021/07/04 00:00:00", 316],
-                            ["2021/07/04 05:00:00", 270],
-                            ["2021/07/04 10:00:00", 173],
-                            ["2021/07/04 15:00:00", 318],
-                            ["2021/07/04 20:00:00", 297],
-                            ["2021/07/05 00:00:00", 322],
-                            ["2021/07/05 05:00:00", 182],
-                            ["2021/07/05 10:00:00", 170],
-                            ["2021/07/05 15:00:00", 199],
-                            ["2021/07/05 20:00:00", 258],
-                            ["2021/07/06 00:00:00", 128],
-                            ["2021/07/06 05:00:00", 323],
-                            ["2021/07/06 10:00:00", 142],
-                            ["2021/07/06 15:00:00", 312],
-                            ["2021/07/06 20:00:00", 174],
-                            ["2021/07/07 00:00:00", 158],
-                            ["2021/07/07 05:00:00", 317],
-                            ["2021/07/07 10:00:00", 154],
-                            ["2021/07/07 15:00:00", 262],
-                            ["2021/07/07 20:00:00", 180],
-                            ["2021/07/08 00:00:00", 204],
-                            ["2021/07/08 05:00:00", 307],
-                            ["2021/07/08 10:00:00", 232],
-                            ["2021/07/08 15:00:00", 124],
-                            ["2021/07/08 20:00:00", 126],
-                            ["2021/07/09 00:00:00", 300],
-                            ["2021/07/09 05:00:00", 289],
-                            ["2021/07/09 10:00:00", 278],
-                            ["2021/07/09 15:00:00", 211],
-                            ["2021/07/09 20:00:00", 116],
-                            ["2021/07/10 00:00:00", 271],
-                            ["2021/07/10 05:00:00", 197],
-                            ["2021/07/10 10:00:00", 296],
-                            ["2021/07/10 15:00:00", 107],
-                            ["2021/07/10 20:00:00", 153],
-                            ["2021/07/11 00:00:00", 221],
-                            ["2021/07/11 05:00:00", 196],
-                            ["2021/07/11 10:00:00", 108],
-                            ["2021/07/11 15:00:00", 190],
-                            ["2021/07/11 20:00:00", 141],
-                            ["2021/07/12 00:00:00", 98],
-                            ["2021/07/12 05:00:00", 192],
-                            ["2021/07/12 10:00:00", 190],
-                            ["2021/07/12 15:00:00", 327],
-                            ["2021/07/12 20:00:00", 260],
-                            ["2021/07/13 00:00:00", 221],
-                            ["2021/07/13 05:00:00", 240],
-                            ["2021/07/13 10:00:00", 280],
-                            ["2021/07/13 15:00:00", 234],
-                            ["2021/07/13 20:00:00", 326],
-                            ["2021/07/14 00:00:00", 143],
-                            ["2021/07/14 05:00:00", 329],
-                            ["2021/07/14 10:00:00", 156],
-                            ["2021/07/14 15:00:00", 152],
-                            ["2021/07/14 20:00:00", 316],
-                            ["2021/07/15 00:00:00", 125],
-                            ["2021/07/15 05:00:00", 322],
-                            ["2021/07/15 10:00:00", 174],
-                            ["2021/07/15 15:00:00", 286],
-                            ["2021/07/15 20:00:00", 122],
-                            ["2021/07/16 00:00:00", 145],
-                            ["2021/07/16 05:00:00", 122],
-                            ["2021/07/16 10:00:00", 313],
-                            ["2021/07/16 15:00:00", 144],
-                            ["2021/07/16 20:00:00", 150],
-                            ["2021/07/17 00:00:00", 322],
-                            ["2021/07/17 05:00:00", 130],
-                            ["2021/07/17 10:00:00", 189],
-                            ["2021/07/17 15:00:00", 99],
-                            ["2021/07/17 20:00:00", 165],
-                            ["2021/07/18 00:00:00", 235],
-                            ["2021/07/18 05:00:00", 127],
-                            ["2021/07/18 10:00:00", 104],
-                            ["2021/07/18 15:00:00", 233],
-                            ["2021/07/18 20:00:00", 178],
-                            ["2021/07/19 00:00:00", 171],
-                            ["2021/07/19 05:00:00", 123],
-                            ["2021/07/19 10:00:00", 305],
-                            ["2021/07/19 15:00:00", 113],
-                            ["2021/07/19 20:00:00", 299],
-                            ["2021/07/20 00:00:00", 157],
-                            ["2021/07/20 05:00:00", 165],
-                            ["2021/07/20 10:00:00", 147],
-                            ["2021/07/20 15:00:00", 181],
-                            ["2021/07/20 20:00:00", 261],
-                            ["2021/07/21 00:00:00", 123],
-                            ["2021/07/21 05:00:00", 317],
-                            ["2021/07/21 10:00:00", 203],
-                            ["2021/07/21 15:00:00", 284],
-                            ["2021/07/21 20:00:00", 232],
-                            ["2021/07/22 00:00:00", 124],
-                            ["2021/07/22 05:00:00", 106],
-                            ["2021/07/22 10:00:00", 233],
-                            ["2021/07/22 15:00:00", 169],
-                            ["2021/07/22 20:00:00", 214],
-                            ["2021/07/23 00:00:00", 122],
-                            ["2021/07/23 05:00:00", 145],
-                            ["2021/07/23 10:00:00", 160],
-                            ["2021/07/23 15:00:00", 260],
-                            ["2021/07/23 20:00:00", 310],
-                            ["2021/07/24 00:00:00", 234],
-                            ["2021/07/24 05:00:00", 130],
-                            ["2021/07/24 10:00:00", 248],
-                            ["2021/07/24 15:00:00", 257],
-                            ["2021/07/24 20:00:00", 178],
-                            ["2021/07/25 00:00:00", 239],
-                            ["2021/07/25 05:00:00", 111],
-                            ["2021/07/25 10:00:00", 159],
-                            ["2021/07/25 15:00:00", 101],
-                            ["2021/07/25 20:00:00", 237],
-                            ["2021/07/26 00:00:00", 299],
-                            ["2021/07/26 05:00:00", 319],
-                            ["2021/07/26 10:00:00", 135],
-                            ["2021/07/26 15:00:00", 250],
-                            ["2021/07/26 20:00:00", 308],
-                            ["2021/07/27 00:00:00", 208],
-                            ["2021/07/27 05:00:00", 208],
-                            ["2021/07/27 10:00:00", 324],
-                            ["2021/07/27 15:00:00", 122],
-                            ["2021/07/27 20:00:00", 117],
-                            ["2021/07/28 00:00:00", 129],
-                            ["2021/07/28 05:00:00", 121],
-                            ["2021/07/28 10:00:00", 166],
-                            ["2021/07/28 15:00:00", 303],
-                            ["2021/07/28 20:00:00", 262],
-                            ["2021/07/29 00:00:00", 200],
-                            ["2021/07/29 05:00:00", 229],
-                            ["2021/07/29 10:00:00", 122],
-                            ["2021/07/29 15:00:00", 122],
-                            ["2021/07/29 20:00:00", 225],
-                            ["2021/07/30 00:00:00", 227],
-                            ["2021/07/30 05:00:00", 247],
-                            ["2021/07/30 10:00:00", 102],
-                            ["2021/07/30 15:00:00", 285],
-                            ["2021/07/30 20:00:00", 167],
-                            ["2021/07/31 00:00:00", 119],
-                            ["2021/07/31 05:00:00", 212],
-                            ["2021/07/31 10:00:00", 277],
-                            ["2021/07/31 15:00:00", 159],
-                            ["2021/07/31 20:00:00", 179]
                         ],
                     },
                     {
@@ -515,156 +65,6 @@
                             ["2021/07/01 10:00:00", 296],
                             ["2021/07/01 15:00:00", 87],
                             ["2021/07/01 20:00:00", 273],
-                            ["2021/07/02 00:00:00", 129],
-                            ["2021/07/02 05:00:00", 121],
-                            ["2021/07/02 10:00:00", 65],
-                            ["2021/07/02 15:00:00", 215],
-                            ["2021/07/02 20:00:00", 245],
-                            ["2021/07/03 00:00:00", 288],
-                            ["2021/07/03 05:00:00", 256],
-                            ["2021/07/03 10:00:00", 47],
-                            ["2021/07/03 15:00:00", 207],
-                            ["2021/07/03 20:00:00", 237],
-                            ["2021/07/04 00:00:00", 68],
-                            ["2021/07/04 05:00:00", 186],
-                            ["2021/07/04 10:00:00", 126],
-                            ["2021/07/04 15:00:00", 207],
-                            ["2021/07/04 20:00:00", 59],
-                            ["2021/07/05 00:00:00", 328],
-                            ["2021/07/05 05:00:00", 72],
-                            ["2021/07/05 10:00:00", 54],
-                            ["2021/07/05 15:00:00", 114],
-                            ["2021/07/05 20:00:00", 167],
-                            ["2021/07/06 00:00:00", 164],
-                            ["2021/07/06 05:00:00", 176],
-                            ["2021/07/06 10:00:00", 59],
-                            ["2021/07/06 15:00:00", 196],
-                            ["2021/07/06 20:00:00", 208],
-                            ["2021/07/07 00:00:00", 80],
-                            ["2021/07/07 05:00:00", 119],
-                            ["2021/07/07 10:00:00", 228],
-                            ["2021/07/07 15:00:00", 80],
-                            ["2021/07/07 20:00:00", 182],
-                            ["2021/07/08 00:00:00", 152],
-                            ["2021/07/08 05:00:00", 119],
-                            ["2021/07/08 10:00:00", 236],
-                            ["2021/07/08 15:00:00", 45],
-                            ["2021/07/08 20:00:00", 36],
-                            ["2021/07/09 00:00:00", 34],
-                            ["2021/07/09 05:00:00", 280],
-                            ["2021/07/09 10:00:00", 63],
-                            ["2021/07/09 15:00:00", 53],
-                            ["2021/07/09 20:00:00", 226],
-                            ["2021/07/10 00:00:00", 56],
-                            ["2021/07/10 05:00:00", 234],
-                            ["2021/07/10 10:00:00", 301],
-                            ["2021/07/10 15:00:00", 106],
-                            ["2021/07/10 20:00:00", 80],
-                            ["2021/07/11 00:00:00", 280],
-                            ["2021/07/11 05:00:00", 277],
-                            ["2021/07/11 10:00:00", 104],
-                            ["2021/07/11 15:00:00", 76],
-                            ["2021/07/11 20:00:00", 321],
-                            ["2021/07/12 00:00:00", 93],
-                            ["2021/07/12 05:00:00", 109],
-                            ["2021/07/12 10:00:00", 100],
-                            ["2021/07/12 15:00:00", 128],
-                            ["2021/07/12 20:00:00", 87],
-                            ["2021/07/13 00:00:00", 179],
-                            ["2021/07/13 05:00:00", 189],
-                            ["2021/07/13 10:00:00", 140],
-                            ["2021/07/13 15:00:00", 109],
-                            ["2021/07/13 20:00:00", 156],
-                            ["2021/07/14 00:00:00", 173],
-                            ["2021/07/14 05:00:00", 213],
-                            ["2021/07/14 10:00:00", 331],
-                            ["2021/07/14 15:00:00", 84],
-                            ["2021/07/14 20:00:00", 339],
-                            ["2021/07/15 00:00:00", 157],
-                            ["2021/07/15 05:00:00", 225],
-                            ["2021/07/15 10:00:00", 198],
-                            ["2021/07/15 15:00:00", 46],
-                            ["2021/07/15 20:00:00", 62],
-                            ["2021/07/16 00:00:00", 189],
-                            ["2021/07/16 05:00:00", 159],
-                            ["2021/07/16 10:00:00", 295],
-                            ["2021/07/16 15:00:00", 52],
-                            ["2021/07/16 20:00:00", 238],
-                            ["2021/07/17 00:00:00", 341],
-                            ["2021/07/17 05:00:00", 269],
-                            ["2021/07/17 10:00:00", 126],
-                            ["2021/07/17 15:00:00", 275],
-                            ["2021/07/17 20:00:00", 101],
-                            ["2021/07/18 00:00:00", 348],
-                            ["2021/07/18 05:00:00", 83],
-                            ["2021/07/18 10:00:00", 225],
-                            ["2021/07/18 15:00:00", 42],
-                            ["2021/07/18 20:00:00", 234],
-                            ["2021/07/19 00:00:00", 239],
-                            ["2021/07/19 05:00:00", 265],
-                            ["2021/07/19 10:00:00", 213],
-                            ["2021/07/19 15:00:00", 219],
-                            ["2021/07/19 20:00:00", 52],
-                            ["2021/07/20 00:00:00", 79],
-                            ["2021/07/20 05:00:00", 287],
-                            ["2021/07/20 10:00:00", 340],
-                            ["2021/07/20 15:00:00", 267],
-                            ["2021/07/20 20:00:00", 321],
-                            ["2021/07/21 00:00:00", 176],
-                            ["2021/07/21 05:00:00", 222],
-                            ["2021/07/21 10:00:00", 311],
-                            ["2021/07/21 15:00:00", 82],
-                            ["2021/07/21 20:00:00", 58],
-                            ["2021/07/22 00:00:00", 186],
-                            ["2021/07/22 05:00:00", 186],
-                            ["2021/07/22 10:00:00", 312],
-                            ["2021/07/22 15:00:00", 62],
-                            ["2021/07/22 20:00:00", 40],
-                            ["2021/07/23 00:00:00", 119],
-                            ["2021/07/23 05:00:00", 314],
-                            ["2021/07/23 10:00:00", 45],
-                            ["2021/07/23 15:00:00", 308],
-                            ["2021/07/23 20:00:00", 227],
-                            ["2021/07/24 00:00:00", 54],
-                            ["2021/07/24 05:00:00", 165],
-                            ["2021/07/24 10:00:00", 337],
-                            ["2021/07/24 15:00:00", 278],
-                            ["2021/07/24 20:00:00", 35],
-                            ["2021/07/25 00:00:00", 169],
-                            ["2021/07/25 05:00:00", 344],
-                            ["2021/07/25 10:00:00", 223],
-                            ["2021/07/25 15:00:00", 309],
-                            ["2021/07/25 20:00:00", 227],
-                            ["2021/07/26 00:00:00", 303],
-                            ["2021/07/26 05:00:00", 102],
-                            ["2021/07/26 10:00:00", 238],
-                            ["2021/07/26 15:00:00", 210],
-                            ["2021/07/26 20:00:00", 198],
-                            ["2021/07/27 00:00:00", 180],
-                            ["2021/07/27 05:00:00", 168],
-                            ["2021/07/27 10:00:00", 310],
-                            ["2021/07/27 15:00:00", 210],
-                            ["2021/07/27 20:00:00", 257],
-                            ["2021/07/28 00:00:00", 316],
-                            ["2021/07/28 05:00:00", 52],
-                            ["2021/07/28 10:00:00", 202],
-                            ["2021/07/28 15:00:00", 201],
-                            ["2021/07/28 20:00:00", 150],
-                            ["2021/07/29 00:00:00", 84],
-                            ["2021/07/29 05:00:00", 267],
-                            ["2021/07/29 10:00:00", 199],
-                            ["2021/07/29 15:00:00", 249],
-                            ["2021/07/29 20:00:00", 140],
-                            ["2021/07/30 00:00:00", 56],
-                            ["2021/07/30 05:00:00", 50],
-                            ["2021/07/30 10:00:00", 147],
-                            ["2021/07/30 15:00:00", 158],
-                            ["2021/07/30 20:00:00", 318],
-                            ["2021/07/31 00:00:00", 290],
-                            ["2021/07/31 05:00:00", 338],
-                            ["2021/07/31 10:00:00", 176],
-                            ["2021/07/31 15:00:00", 90],
-                            ["2021/07/31 20:00:00", 136]
                         ],
                     },
                     {
@@ -676,156 +76,6 @@
                             ["2021/07/01 10:00:00", 313],
                             ["2021/07/01 15:00:00", 230],
                             ["2021/07/01 20:00:00", 264],
-                            ["2021/07/02 00:00:00", 272],
-                            ["2021/07/02 05:00:00", 310],
-                            ["2021/07/02 10:00:00", 176],
-                            ["2021/07/02 15:00:00", 182],
-                            ["2021/07/02 20:00:00", 248],
-                            ["2021/07/03 00:00:00", 241],
-                            ["2021/07/03 05:00:00", 225],
-                            ["2021/07/03 10:00:00", 360],
-                            ["2021/07/03 15:00:00", 222],
-                            ["2021/07/03 20:00:00", 237],
-                            ["2021/07/04 00:00:00", 252],
-                            ["2021/07/04 05:00:00", 164],
-                            ["2021/07/04 10:00:00", 320],
-                            ["2021/07/04 15:00:00", 194],
-                            ["2021/07/04 20:00:00", 319],
-                            ["2021/07/05 00:00:00", 155],
-                            ["2021/07/05 05:00:00", 328],
-                            ["2021/07/05 10:00:00", 104],
-                            ["2021/07/05 15:00:00", 157],
-                            ["2021/07/05 20:00:00", 223],
-                            ["2021/07/06 00:00:00", 156],
-                            ["2021/07/06 05:00:00", 345],
-                            ["2021/07/06 10:00:00", 352],
-                            ["2021/07/06 15:00:00", 108],
-                            ["2021/07/06 20:00:00", 167],
-                            ["2021/07/07 00:00:00", 354],
-                            ["2021/07/07 05:00:00", 338],
-                            ["2021/07/07 10:00:00", 232],
-                            ["2021/07/07 15:00:00", 359],
-                            ["2021/07/07 20:00:00", 304],
-                            ["2021/07/08 00:00:00", 271],
-                            ["2021/07/08 05:00:00", 307],
-                            ["2021/07/08 10:00:00", 315],
-                            ["2021/07/08 15:00:00", 280],
-                            ["2021/07/08 20:00:00", 302],
-                            ["2021/07/09 00:00:00", 356],
-                            ["2021/07/09 05:00:00", 196],
-                            ["2021/07/09 10:00:00", 222],
-                            ["2021/07/09 15:00:00", 317],
-                            ["2021/07/09 20:00:00", 292],
-                            ["2021/07/10 00:00:00", 314],
-                            ["2021/07/10 05:00:00", 311],
-                            ["2021/07/10 10:00:00", 292],
-                            ["2021/07/10 15:00:00", 104],
-                            ["2021/07/10 20:00:00", 297],
-                            ["2021/07/11 00:00:00", 235],
-                            ["2021/07/11 05:00:00", 293],
-                            ["2021/07/11 10:00:00", 224],
-                            ["2021/07/11 15:00:00", 137],
-                            ["2021/07/11 20:00:00", 136],
-                            ["2021/07/12 00:00:00", 144],
-                            ["2021/07/12 05:00:00", 150],
-                            ["2021/07/12 10:00:00", 267],
-                            ["2021/07/12 15:00:00", 156],
-                            ["2021/07/12 20:00:00", 201],
-                            ["2021/07/13 00:00:00", 214],
-                            ["2021/07/13 05:00:00", 324],
-                            ["2021/07/13 10:00:00", 352],
-                            ["2021/07/13 15:00:00", 117],
-                            ["2021/07/13 20:00:00", 157],
-                            ["2021/07/14 00:00:00", 166],
-                            ["2021/07/14 05:00:00", 228],
-                            ["2021/07/14 10:00:00", 344],
-                            ["2021/07/14 15:00:00", 281],
-                            ["2021/07/14 20:00:00", 224],
-                            ["2021/07/15 00:00:00", 358],
-                            ["2021/07/15 05:00:00", 200],
-                            ["2021/07/15 10:00:00", 148],
-                            ["2021/07/15 15:00:00", 352],
-                            ["2021/07/15 20:00:00", 246],
-                            ["2021/07/16 00:00:00", 340],
-                            ["2021/07/16 05:00:00", 126],
-                            ["2021/07/16 10:00:00", 205],
-                            ["2021/07/16 15:00:00", 221],
-                            ["2021/07/16 20:00:00", 280],
-                            ["2021/07/17 00:00:00", 127],
-                            ["2021/07/17 05:00:00", 149],
-                            ["2021/07/17 10:00:00", 162],
-                            ["2021/07/17 15:00:00", 297],
-                            ["2021/07/17 20:00:00", 168],
-                            ["2021/07/18 00:00:00", 292],
-                            ["2021/07/18 05:00:00", 100],
-                            ["2021/07/18 10:00:00", 110],
-                            ["2021/07/18 15:00:00", 265],
-                            ["2021/07/18 20:00:00", 185],
-                            ["2021/07/19 00:00:00", 265],
-                            ["2021/07/19 05:00:00", 354],
-                            ["2021/07/19 10:00:00", 106],
-                            ["2021/07/19 15:00:00", 206],
-                            ["2021/07/19 20:00:00", 113],
-                            ["2021/07/20 00:00:00", 193],
-                            ["2021/07/20 05:00:00", 144],
-                            ["2021/07/20 10:00:00", 359],
-                            ["2021/07/20 15:00:00", 335],
-                            ["2021/07/20 20:00:00", 239],
-                            ["2021/07/21 00:00:00", 230],
-                            ["2021/07/21 05:00:00", 357],
-                            ["2021/07/21 10:00:00", 317],
-                            ["2021/07/21 15:00:00", 264],
-                            ["2021/07/21 20:00:00", 355],
-                            ["2021/07/22 00:00:00", 284],
-                            ["2021/07/22 05:00:00", 326],
-                            ["2021/07/22 10:00:00", 184],
-                            ["2021/07/22 15:00:00", 315],
-                            ["2021/07/22 20:00:00", 102],
-                            ["2021/07/23 00:00:00", 206],
-                            ["2021/07/23 05:00:00", 292],
-                            ["2021/07/23 10:00:00", 273],
-                            ["2021/07/23 15:00:00", 156],
-                            ["2021/07/23 20:00:00", 282],
-                            ["2021/07/24 00:00:00", 146],
-                            ["2021/07/24 05:00:00", 129],
-                            ["2021/07/24 10:00:00", 270],
-                            ["2021/07/24 15:00:00", 330],
-                            ["2021/07/24 20:00:00", 302],
-                            ["2021/07/25 00:00:00", 205],
-                            ["2021/07/25 05:00:00", 132],
-                            ["2021/07/25 10:00:00", 124],
-                            ["2021/07/25 15:00:00", 182],
-                            ["2021/07/25 20:00:00", 147],
-                            ["2021/07/26 00:00:00", 319],
-                            ["2021/07/26 05:00:00", 221],
-                            ["2021/07/26 10:00:00", 126],
-                            ["2021/07/26 15:00:00", 299],
-                            ["2021/07/26 20:00:00", 164],
-                            ["2021/07/27 00:00:00", 293],
-                            ["2021/07/27 05:00:00", 337],
-                            ["2021/07/27 10:00:00", 159],
-                            ["2021/07/27 15:00:00", 256],
-                            ["2021/07/27 20:00:00", 118],
-                            ["2021/07/28 00:00:00", 193],
-                            ["2021/07/28 05:00:00", 138],
-                            ["2021/07/28 10:00:00", 273],
-                            ["2021/07/28 15:00:00", 217],
-                            ["2021/07/28 20:00:00", 274],
-                            ["2021/07/29 00:00:00", 138],
-                            ["2021/07/29 05:00:00", 223],
-                            ["2021/07/29 10:00:00", 338],
-                            ["2021/07/29 15:00:00", 340],
-                            ["2021/07/29 20:00:00", 205],
-                            ["2021/07/30 00:00:00", 293],
-                            ["2021/07/30 05:00:00", 170],
-                            ["2021/07/30 10:00:00", 103],
-                            ["2021/07/30 15:00:00", 147],
-                            ["2021/07/30 20:00:00", 231],
-                            ["2021/07/31 00:00:00", 305],
-                            ["2021/07/31 05:00:00", 359],
-                            ["2021/07/31 10:00:00", 115],
-                            ["2021/07/31 15:00:00", 215],
-                            ["2021/07/31 20:00:00", 224]
                         ],
                     }
                 ],
@@ -905,6 +155,7 @@
                 });
             },
             yAxis() {
+				let themeName = this.$store.state.themeName.split(' ')[1];
                 let result = [];
                 let p = {left: 0, right: 0};
                 this.yAxises.forEach((item, index) => {
@@ -923,7 +174,7 @@
                         //分格线
                         splitLine: {
                             lineStyle: {
-                                color: partten.getColor("gray"),
+                                color: themeName === "dark"? partten.getColor("gray"): "#000",
                                 type: "dashed",
                             },
                         },
@@ -984,9 +235,10 @@
         methods: {
             resize() {},
             initChart() {
+				let themeName = this.$store.state.themeName.split(' ')[1];
                 const chart = echarts.init(this.$el);
 
-                let option = this.option();
+                let option = this.option(themeName);
                 console.log(option)
                 chart.clear();
                 chart.setOption(option);
@@ -997,15 +249,15 @@
 
                 window.addEventListener("resize", this.resize);
             },
-            option: function () {
+            option: function (themeName) {
                 return {
                     color: this.color,
                     tooltip: {
                         trigger: "axis",
-                        backgroundColor: "rgba(0,0,0,0.4)",
-                        borderColor: partten.getColor("gray"),
+                        backgroundColor: themeName === "dark"? "rgba(0,0,0,0.4)": "rgba(255,255,255,0.5)",
+                        borderColor: themeName === "dark"? partten.getColor("gray"): "#000",
                         textStyle: {
-                            color: "#fff",
+                            color: themeName === "dark" ? "#fff" : "#000",
                             fontSize: 14,
                         },
                     },
@@ -1015,9 +267,9 @@
                         right: 56,
                         icon: "circle",
                         itemWidth: 6,
-                        inactiveColor: partten.getColor("gray"),
+                        inactiveColor: themeName === "dark"? partten.getColor("gray"): "#000",
                         textStyle: {
-                            color: partten.getColor("grayl"),
+                            color: themeName === "dark"? partten.getColor("grayl"): "#000",
                             fontSize: 12,
                         },
                     },
@@ -1031,13 +283,13 @@
                         handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z',
                         handleSize: '110%',
                         handleStyle: {
-                            color: "#05bb4c",
+                            color: themeName === "dark"?"#05bb4c":  partten.getColor("deepblue"),
                         },
                         textStyle:{
-                            color:"rgba(204,187,225,0.5)",
+                            color: themeName === "dark"? "rgba(204,187,225,0.5)": "#000",
                         },
-                        fillerColor:"rgba(5,187,76,0.4)",
-                        borderColor: "rgba(5,187,76,0.5)",
+                        fillerColor:themeName === "dark"?"rgba(5,187,76,0.4)":"rgba(54, 52, 142,0.4)",
+                        borderColor:themeName === "dark"?"rgba(5,187,76,0.5)":"rgba(54, 52, 142,0.5)",
 
                     }, {
                         type: "inside",
@@ -1061,7 +313,7 @@
                                 // formatter: "{value}",
                                 fontSize: util.vh(14),
                                 textStyle: {
-                                    color: partten.getColor("gray"),
+                                    color: themeName === "dark"? partten.getColor("gray"): "#000",
                                 },
                             },
                             // data: this.xdata,
@@ -1104,6 +356,11 @@
         unmounted() {
             window.removeEventListener("resize", this.resize);
         },
+		watch: {
+		    "$store.state.themeName"() {
+		      this.initChart();
+		    },
+		  },
     };
 </script>
 

+ 8 - 8
src/components/chart/line/normal-line-chart.vue

@@ -162,7 +162,7 @@ export default {
           //分格线
           splitLine: {
             lineStyle: {
-              color: partten.getColor("gray") + 55,
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000" + 55,
               type: "dashed",
             },
           },
@@ -204,10 +204,10 @@ export default {
         color: this.color,
         tooltip: {
           trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
-          textStyle: {
-            color: "#fff",
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+			borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
+			textStyle: {
+			  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: util.vh(16),
           },
         },
@@ -217,9 +217,9 @@ export default {
           right: 56,
           icon: "circle",
           itemWidth: 6,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
             fontSize: 12,
           },
         },
@@ -237,7 +237,7 @@ export default {
               formatter: "{value}",
               fontSize: util.vh(14),
               textStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
             },
             data: this.xdata,

+ 16 - 11
src/components/chart/line/zoom-line-chart.vue

@@ -162,7 +162,7 @@ export default {
           //分格线
           splitLine: {
             lineStyle: {
-              color: partten.getColor("gray") + 55,
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000" + 55,
               type: "dashed",
             },
           },
@@ -204,10 +204,10 @@ export default {
         color: this.color,
         tooltip: {
           trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: util.vh(16),
           },
         },
@@ -217,9 +217,9 @@ export default {
           right: 56,
           icon: "circle",
           itemWidth: 6,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
             fontSize: 12,
           },
         },
@@ -248,10 +248,10 @@ export default {
             moveHandleSize: 0,
             dataBackground: {
               lineStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
               areaStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
             },
             selectedDataBackground: {
@@ -264,9 +264,9 @@ export default {
             },
             fillerColor: "transparent",
             textStyle: {
-              color: partten.getColor("grayl"),
+              color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
             },
-            borderColor: partten.getColor("gray"),
+            borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
             brushSelect: false,
           },
         ],
@@ -278,7 +278,7 @@ export default {
               formatter: "{value}",
               fontSize: util.vh(14),
               textStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
               },
             },
             data: this.xdata,
@@ -316,6 +316,11 @@ export default {
   unmounted() {
     window.removeEventListener("resize", this.resize);
   },
+  watch: {
+      "$store.state.themeName"() {
+        this.initChart();
+      },
+    },
 };
 </script>
 

+ 11 - 4
src/components/chart/other/Dashboard2.vue

@@ -37,8 +37,10 @@ export default {
   computed: {},
   methods: {
     initChart() {
+		let themeName = '';
+		this.$store.state.themeName === "dark" ? themeName = true : themeName = false;
+		 
       let chart = echarts.init(this.$el);
-
       let value = this.value;
       let option = {
         grid: {
@@ -60,7 +62,7 @@ export default {
                 width: 8,
                 color: [
                   [0, partten.getColor("gray") + "33"],
-                  [value / 100, partten.getColor("green")],
+                  [value / 100,themeName ? partten.getColor("green") : partten.getColor("blue")],
                   [1, partten.getColor("gray") + "33"],
                 ],
               },
@@ -93,7 +95,7 @@ export default {
                 return params;
               },
               textStyle: {
-                color: partten.getColor("green"),
+                color: themeName ? partten.getColor("green") : partten.getColor("blue"),
                 fontSize: util.vh(16),
               },
             },
@@ -115,7 +117,7 @@ export default {
               lineStyle: {
                 width: 1,
                 color: [
-                  [this.value / 100, partten.getColor("green")],
+                  [this.value / 100, themeName ? partten.getColor("green") : partten.getColor("blue")],
                   [1, "#fff5"],
                 ],
               },
@@ -152,6 +154,11 @@ export default {
       this.initChart();
     });
   },
+  watch: {
+      "$store.state.themeName"() {
+        this.initChart();
+      },
+    },
 };
 </script>
 

+ 8 - 3
src/components/chart/other/thermometer-v-chart.vue

@@ -45,9 +45,9 @@ export default {
       return rgbaColor;
     },
     initChart() {
-      var mercuryColor = "#05BB4C";
       var borderColor = partten.getColor("gray");
-
+		let themeName = '';
+		this.$store.state.themeName === "dark" ? themeName = true : themeName = false;
       let option = {
         grid: {
           top: 0,
@@ -98,7 +98,7 @@ export default {
             barWidth: 16,
             itemStyle: {
               normal: {
-                color: mercuryColor,
+                color: themeName ? partten.getColor("green") : partten.getColor("deepblue"),
                 barBorderRadius: 100,
                 borderWidth: 8,
                 borderType: "dashed",
@@ -180,6 +180,11 @@ export default {
   updated() {
     this.initChart();
   },
+  watch: {
+      "$store.state.themeName"() {
+        this.initChart();
+      },
+    },
 };
 </script>
 

+ 25 - 10
src/components/chart/pie/dual-pie-chart.vue

@@ -99,10 +99,14 @@ export default {
         color: ["#1893ce", "#edbf00", "#039178", "#ae4802", "#ea8b00"],
         tooltip: {
           trigger: "item",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark"
+              ? "rgba(0,0,0,0.4)"
+              : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
           textStyle: {
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: util.vh(16),
           },
         },
@@ -128,15 +132,21 @@ export default {
           //icon: 'circle',
           itemGap: 12, //图例item间距
           textStyle: {
-            color: partten.getColor("gray"),
+            color: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
             fontSize: util.vh(14),
             rich: {
               name: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
                 fontSize: 12,
               },
               value: {
-                color: partten.getColor("grayl"),
+                color: this.$store.state.themeName === "dark"
+                ? partten.getColor("grayl")
+                : "#000",
                 fontSize: 12,
               },
             },
@@ -175,14 +185,14 @@ export default {
                 // length: 40,
                 // length2: 120,
                 lineStyle: {
-                  color: "#fff",
+                  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
                   fontSize: util.vh(14),
                 },
               },
             },
             itemStyle: {
               normal: {
-                borderWidth: util.vh(14),
+                borderWidth:this.$store.state.themeName === "dark" ? util.vh(14): util.vh(8),
                 borderColor: "#071812",
               },
             },
@@ -193,10 +203,10 @@ export default {
                 },
                 padding: [0, 0, 0, 0],
                 rich: {
-                  color: "#ffffff" + "cc",
+                  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
                   percent: {
                     fontSize: util.vh(14),
-                    color: "#ffffff" + "cc",
+                    color: this.$store.state.themeName === "dark" ? "#FFFFFF" : "#000000" ,
                   },
                 },
               },
@@ -220,6 +230,11 @@ export default {
   updated() {
     this.initChart();
   },
+  watch: {
+    "$store.state.themeName"() {
+      this.initChart();
+    },
+  },
 };
 </script>
 

+ 4 - 4
src/components/chart/pie/normal-pie-chart.vue

@@ -60,10 +60,10 @@ export default {
         color: ["#05bb4c", "#4b55ae", "#fa8c16", "#f8de5b", "#1a93cf", "#c531c7", "#bd3338"],
         tooltip: {
           trigger: "item",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
           textStyle: {
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: util.vh(16),
           },
         },
@@ -80,7 +80,7 @@ export default {
           right: "0",
           align: "left",
           textStyle: {
-            color: "#fff",
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
           },
           itemGap: 8,
         },

+ 8 - 3
src/components/chart/radar/direction-radar-chart.vue

@@ -215,7 +215,7 @@ export default {
                     },
                     {
                       offset: 1,
-                      color: partten.getColor("green") + 60, // 100% 处的颜色
+                      color: this.$store.state.themeName === "dark" ? partten.getColor("green") : partten.getColor("deepblue") + 60, // 100% 处的颜色
                     },
                   ],
                   global: false, // 缺省为 false
@@ -268,11 +268,11 @@ export default {
                     new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                       {
                         offset: 0,
-                        color: partten.getColor(this.color) + 10,
+                        color: this.$store.state.themeName === "dark" ? partten.getColor(this.color) + 10 : partten.getColor("deepblue") + 10,
                       },
                       {
                         offset: 1,
-                        color: partten.getColor(this.color) + 99,
+                        color: this.$store.state.themeName === "dark" ? partten.getColor(this.color) + 99 : partten.getColor("deepblue") + 99,
                       },
                     ]),
                   ],
@@ -369,6 +369,11 @@ export default {
   updated() {
     this.initChart();
   },
+  watch: {
+    "$store.state.themeName"() {
+      this.initChart();
+    },
+  },
 };
 </script>
 

+ 89 - 31
src/components/chart/radar/normal-radar-chart.vue

@@ -52,34 +52,33 @@ export default {
     return {
       id: "",
       chart: null,
-      lineStyles: [
-        {
+      lineStyles: [],
+	  green:{
           areaStyle: {
-            color: "rgba(75,85,174, 0.9)",
+            color: "rgba(165,228,175, 0.9)",
           },
           lineStyle: {
             color: "rgba(255,255,255, 0.85)",
           },
           itemStyle: {
-            color: "rgba(75,85,174, 0.5)",
+            color: "rgba(165,228,175, 0.5)",
             borderColor: "rgba(255,255,255, 0.5)",
             borderWidth: 0.5,
           },
         },
-        {
+	blue:{
           areaStyle: {
-            color: "rgba(165,228,175, 0.9)",
+            color: 'rgba(75,85,174, 0.9)',
           },
           lineStyle: {
             color: "rgba(255,255,255, 0.85)",
           },
           itemStyle: {
-            color: "rgba(165,228,175, 0.5)",
+            color:'rgba(75,85,174, 0.9)',
             borderColor: "rgba(255,255,255, 0.5)",
             borderWidth: 0.5,
           },
-        },
-      ],
+        }
     };
   },
   methods: {
@@ -95,10 +94,22 @@ export default {
       return result;
     },
     initChart() {
+		let themeName = '';
+		let theme = this.$store.state.themeName;
+		if(theme == 'dark' || theme == 'light'){
+			themeName = theme;
+		}else{
+			themeName = theme.split(' ')[1];
+		}
       let chart = echarts.init(this.$el);
-
       let maxValue = -1;
-
+		
+		if(themeName === "dark"){
+			this.lineStyles = [this.green,this.blue];
+		}else{
+			this.lineStyles = [this.blue,this.green];
+		}
+		
       if (this.value.length > 0)
         this.value[0].data.forEach((item, index) => {
           item.value.forEach((value) => {
@@ -130,20 +141,32 @@ export default {
         },
         tooltip: {
           trigger: "item",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor:
+            themeName === "dark"
+              ? "rgba(0,0,0,0.4)"
+              : "rgba(255,255,255,0.5)",
+          borderColor:
+            themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
           textStyle: {
-            color: "#fff",
+            color: themeName === "dark" ? "#fff" : "#000",
             fontSize: util.vh(16),
           },
         },
         legend: {
           show: this.showLegend,
           bottom: 16,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor:
+            themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
             fontSize: 12,
+            color:
+              themeName === "dark"
+                ? partten.getColor("grayl")
+                : "#000",
           },
         },
         radar: [
@@ -155,19 +178,25 @@ export default {
             nameGap: "16",
             name: {
               textStyle: {
-                color: partten.getColor("gray") + 99,
+                color: themeName === "dark"
+              ? partten.getColor("gray") + 99
+              : "#000",
                 fontSize: 12,
               },
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: themeName === "dark"
+              ? partten.getColor("gray") + 40
+              : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray") + 40,
+                color: themeName === "dark"
+              ? partten.getColor("gray") + 40
+              : "#000" + 40,
               },
             },
             splitArea: {
@@ -188,7 +217,9 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: themeName === "dark"
+              ? partten.getColor("gray") + 40
+              : "#000" + 40,
                 shadowBlur: 1,
                 shadowColor: "#fff",
                 shadowOffsetX: 0.5,
@@ -198,7 +229,9 @@ export default {
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray") + 40,
+                color: themeName === "dark"
+              ? partten.getColor("gray") + 40
+              : "#000" + 40,
                 shadowColor: "#fff",
                 shadowBlur: 0,
                 shadowOffsetX: 0.5,
@@ -222,13 +255,17 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: themeName === "dark"
+              ? partten.getColor("gray") + 40
+              : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray"),
+                color: themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
               },
             },
             splitArea: {
@@ -246,7 +283,9 @@ export default {
                     },
                     {
                       offset: 1,
-                      color: partten.getColor("green") + 60, // 100% 处的颜色
+                      color: themeName === "dark"
+              ? partten.getColor("green") + 60
+              : partten.getColor("deepblue") + 60, // 100% 处的颜色
                     },
                   ],
                   global: false, // 缺省为 false
@@ -265,13 +304,17 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: themeName === "dark"
+              ? partten.getColor("gray") + 40
+              : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray"),
+                color: themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
               },
             },
             splitArea: {
@@ -289,7 +332,9 @@ export default {
                     },
                     {
                       offset: 1,
-                      color: partten.getColor("green") + 60, // 100% 处的颜色
+                      color: themeName === "dark"
+              ? partten.getColor("green") + 60
+              : partten.getColor("deepblue") + 60, // 100% 处的颜色
                     },
                   ],
                   global: false, // 缺省为 false
@@ -308,13 +353,17 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: themeName === "dark"
+              ? partten.getColor("gray") + 40
+              : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray"),
+                color: themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
               },
             },
             splitArea: {
@@ -335,13 +384,17 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: themeName === "dark"
+              ? partten.getColor("gray") + 40
+              : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray"),
+                color: themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
               },
             },
             splitArea: {
@@ -374,6 +427,11 @@ export default {
       this.initChart();
     });
   },
+  watch: {
+    "$store.state.themeName"() {
+      this.initChart();
+    },
+  },
 };
 </script>
 

+ 63 - 34
src/components/chart/radar/radar-chart.vue

@@ -63,29 +63,53 @@ export default {
     return {
       id: "",
       chart: null,
-      lineStyles: [
-        {
-          areaStyle: {
-            color: "rgba(75,85,174, 0.9)",
-          },
-          lineStyle: {
-            color: "rgba(255,255,255, 0.85)",
-          },
-          itemStyle: {
-            color: "rgba(75,85,174, 0.5)",
-            borderColor: "rgba(255,255,255, 0.5)",
-            borderWidth: 0.5,
-          },
-        },
-      ],
+      lineStyles: [],
+	  green:{
+	        areaStyle: {
+	          color: "rgba(165,228,175, 0.9)",
+	        },
+	        lineStyle: {
+	          color: "rgba(255,255,255, 0.85)",
+	        },
+	        itemStyle: {
+	          color: "rgba(165,228,175, 0.5)",
+	          borderColor: "rgba(255,255,255, 0.5)",
+	          borderWidth: 0.5,
+	        },
+	      },
+	  blue:{
+	        areaStyle: {
+	          color: 'rgba(75,85,174, 0.9)',
+	        },
+	        lineStyle: {
+	          color: "rgba(255,255,255, 0.85)",
+	        },
+	        itemStyle: {
+	          color:'rgba(75,85,174, 0.9)',
+	          borderColor: "rgba(255,255,255, 0.5)",
+	          borderWidth: 0.5,
+	        },
+	      }
     };
   },
   computed: {},
   methods: {
     initChart() {
+		let themeName = '';
+		let theme = this.$store.state.themeName;
+		if(theme == 'dark' || theme == 'light'){
+			themeName = theme;
+		}else{
+			themeName = theme.split(' ')[1];
+		}
       let chart = echarts.init(this.$el);
 
       let maxValue = -1;
+	  if(themeName === "dark"){
+	  	this.lineStyles = [this.green,this.blue];
+	  }else{
+	  	this.lineStyles = [this.blue,this.green];
+	  }
       if (this.value.data)
         this.value.data.forEach((item, index) => {
           item.value.forEach((value) => {
@@ -116,10 +140,10 @@ export default {
         },
         tooltip: {
           trigger: "item",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
-          textStyle: {
-            color: "#fff",
+          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+			borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
+			textStyle: {
+			  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: util.vh(16),
           },
           position: function(pos, params, dom, rect, size) {
@@ -140,20 +164,20 @@ export default {
             nameGap: "4",
             name: {
               textStyle: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
                 fontSize: 12,
                 padding: [0, 16],
               },
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray") + 40,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
               },
             },
             splitArea: {
@@ -174,7 +198,7 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
                 shadowBlur: 1,
                 shadowColor: "#fff",
                 shadowOffsetX: 0.5,
@@ -184,7 +208,7 @@ export default {
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray") + 40,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
                 shadowColor: "#fff",
                 shadowBlur: 0,
                 shadowOffsetX: 0.5,
@@ -208,13 +232,13 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
             },
             splitArea: {
@@ -232,7 +256,7 @@ export default {
                     },
                     {
                       offset: 1,
-                      color: partten.getColor("green") + 60, // 100% 处的颜色
+                      color: this.$store.state.themeName === "dark" ? partten.getColor("green") + 60 : partten.getColor("deepblue") + 60, // 100% 处的颜色
                     },
                   ],
                   global: false, // 缺省为 false
@@ -251,13 +275,13 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
             },
             splitArea: {
@@ -275,7 +299,7 @@ export default {
                     },
                     {
                       offset: 1,
-                      color: partten.getColor("green") + 60, // 100% 处的颜色
+                      color: this.$store.state.themeName === "dark" ? partten.getColor("green") + 60 : partten.getColor("deepblue") + 60, // 100% 处的颜色
                     },
                   ],
                   global: false, // 缺省为 false
@@ -294,13 +318,13 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
             },
             splitArea: {
@@ -321,13 +345,13 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: partten.getColor("gray") + 40,
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
               },
             },
             splitArea: {
@@ -366,6 +390,11 @@ export default {
       this.initChart();
     });
   },
+  watch: {
+      "$store.state.themeName"() {
+        this.initChart();
+      },
+    },
 };
 </script>
 

+ 156 - 133
src/components/three/wave.vue

@@ -1,153 +1,176 @@
 <template>
-    <div class="wave"></div>
+  <div class="wave"></div>
 </template>
 
 <script>
-    import * as THREE from 'three';
+import * as THREE from "three";
+import $ from "jquery";
 
-    let scene, camera, renderer, particles;
+let scene, camera, renderer, particles;
 
-    export default {
-        // 名称
-        name: "wave",
-        // 使用组件
-        components: {},
-        // 传入参数
-        props: {},
-        // 自定义事件
-        emits: {},
-        // 数据
-        data() {
-            return {
-                SEPARATION: 100,
-                AMOUNTX: 100,
-                AMOUNTY: 100,
-                count: 0,
-                mouseX: 0,
-                mouseY: -400,
-                windowHalfX: window.innerWidth / 2,
-                windowHalfY: window.innerHeight / 2,
-            }
+export default {
+  // 名称
+  name: "wave",
+  // 使用组件
+  components: {},
+  // 传入参数
+  props: {},
+  // 自定义事件
+  emits: {},
+  // 数据
+  data() {
+    return {
+      SEPARATION: 100,
+      AMOUNTX: 100,
+      AMOUNTY: 100,
+      count: 0,
+      mouseX: 0,
+      mouseY: -400,
+      windowHalfX: window.innerWidth / 2,
+      windowHalfY: window.innerHeight / 2,
+    };
+  },
+  // 函数
+  methods: {
+    init() {
+      camera = new THREE.PerspectiveCamera(
+        50,
+        window.innerWidth / window.innerHeight,
+        1,
+        10000
+      );
+      camera.position.z = 1000;
+      scene = new THREE.Scene();
+      const numParticles = this.AMOUNTX * this.AMOUNTY;
+      const positions = new Float32Array(numParticles * 3);
+      const scales = new Float32Array(numParticles);
+      let i = 0,
+        j = 0;
+      for (let ix = 0; ix < this.AMOUNTX; ix++) {
+        for (let iy = 0; iy < this.AMOUNTY; iy++) {
+          positions[i] =
+            ix * this.SEPARATION - (this.AMOUNTX * this.SEPARATION) / 2; // x
+          positions[i + 1] = 0; // y
+          positions[i + 2] =
+            iy * this.SEPARATION - (this.AMOUNTY * this.SEPARATION) / 2; // z
+          scales[j] = 1;
+          i += 3;
+          j++;
+        }
+      }
+      const geometry = new THREE.BufferGeometry();
+      geometry.setAttribute(
+        "position",
+        new THREE.BufferAttribute(positions, 3)
+      );
+      geometry.setAttribute("scale", new THREE.BufferAttribute(scales, 1));
+      const material = new THREE.ShaderMaterial({
+        uniforms: {
+          color: {
+            value: new THREE.Color(
+              this.$store.state.themeName === "dark" ? 0x05bb4c : 0x36348e
+            ),
+          },
         },
-        // 函数
-        methods: {
-            init: function() {
-                camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);
-                camera.position.z = 1000;
-                scene = new THREE.Scene();
-                const numParticles = this.AMOUNTX * this.AMOUNTY;
-                const positions = new Float32Array(numParticles * 3);
-                const scales = new Float32Array(numParticles);
-                let i = 0,
-                    j = 0;
-                for (let ix = 0; ix < this.AMOUNTX; ix++) {
-                    for (let iy = 0; iy < this.AMOUNTY; iy++) {
-                        positions[i] = ix * this.SEPARATION - ((this.AMOUNTX * this.SEPARATION) / 2); // x
-                        positions[i + 1] = 0; // y
-                        positions[i + 2] = iy * this.SEPARATION - ((this.AMOUNTY * this.SEPARATION) / 2); // z
-                        scales[j] = 1;
-                        i += 3;
-                        j++;
-                    }
-                }
-                const geometry = new THREE.BufferGeometry();
-                geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
-                geometry.setAttribute('scale', new THREE.BufferAttribute(scales, 1));
-                const material = new THREE.ShaderMaterial({
-                    uniforms: {
-                        color: {
-                            value: new THREE.Color(0x05bb4c),
-                        },
-                    },
-                    vertexShader: `attribute float scale;
+        vertexShader: `attribute float scale;
                         void main() {
                             vec4 mvPosition = modelViewMatrix * vec4( position, 2.0 );
                             gl_PointSize = scale * ( 200.0 / - mvPosition.z );
                             gl_Position = projectionMatrix * mvPosition;
                         }`,
-                    fragmentShader: `uniform vec3 color;
+        fragmentShader: `uniform vec3 color;
                         void main() {
                             if ( length( gl_PointCoord - vec2( 0.5, 0.5 ) ) > 0.475 ) discard;
                             gl_FragColor = vec4( color, 0.7 );
                         }`,
-                    transparent: true,
-                });
-                particles = new THREE.Points(geometry, material);
-                scene.add(particles);
-                renderer = new THREE.WebGLRenderer({
-                    antialias: true,
-                    alpha: true,
-                });
-                renderer.setSize(window.innerWidth, window.innerHeight);
-                renderer.setPixelRatio(window.devicePixelRatio);
-                renderer.setAnimationLoop(this.render);
-                this.$el.appendChild(renderer.domElement);
-            },
-            render: function() {
-                camera.position.x += (this.mouseX - camera.position.x) * .05;
-                camera.position.y += (-this.mouseY - camera.position.y) * .05;
-                camera.lookAt(scene.position);
-                const positions = particles.geometry.attributes.position.array;
-                const scales = particles.geometry.attributes.scale.array;
-                let i = 0,
-                    j = 0;
-                for (let ix = 0; ix < this.AMOUNTX; ix++) {
-                    for (let iy = 0; iy < this.AMOUNTY; iy++) {
-                        positions[i + 1] = (Math.sin((ix + this.count) * 0.3) * 50) +
-                            (Math.sin((iy + this.count) * 0.5) * 50);
-                        scales[j] = (Math.sin((ix + this.count) * 0.3) + 1) * 20 +
-                            (Math.sin((iy + this.count) * 0.5) + 1) * 20;
-                        i += 3;
-                        j++;
-                    }
-                }
-                particles.geometry.attributes.position.needsUpdate = true;
-                particles.geometry.attributes.scale.needsUpdate = true;
-                renderer.render(scene, camera);
-                this.count += 0.1;
-            }
-        },
-        // 生命周期钩子
-        beforeCreate() {
-            // 创建前
-        },
-        created() {
-            // 创建后
-        },
-        beforeMount() {
-            // 渲染前
-        },
-        mounted() {
-            // 渲染后
-            camera = null;
-            scene = null;
-            renderer = null;
-            this.init();
-        },
-        beforeUpdate() {
-            // 数据更新前
-        },
-        updated() {
-            // 数据更新后
-        },
-        beforeUnmount() {
-            // 销毁前
-            renderer.setAnimationLoop(null);
-            camera = null;
-            scene = null;
-            renderer = null;
-        },
-    }
+        transparent: true,
+      });
+      particles = new THREE.Points(geometry, material);
+      scene.add(particles);
+      renderer = new THREE.WebGLRenderer({
+        antialias: true,
+        alpha: true,
+      });
+      renderer.setSize(window.innerWidth, window.innerHeight);
+      renderer.setPixelRatio(window.devicePixelRatio);
+      renderer.setAnimationLoop(this.render);
+      this.$el.appendChild(renderer.domElement);
+    },
+    render() {
+      camera.position.x += (this.mouseX - camera.position.x) * 0.05;
+      camera.position.y += (-this.mouseY - camera.position.y) * 0.05;
+      camera.lookAt(scene.position);
+      const positions = particles.geometry.attributes.position.array;
+      const scales = particles.geometry.attributes.scale.array;
+      let i = 0,
+        j = 0;
+      for (let ix = 0; ix < this.AMOUNTX; ix++) {
+        for (let iy = 0; iy < this.AMOUNTY; iy++) {
+          positions[i + 1] =
+            Math.sin((ix + this.count) * 0.3) * 50 +
+            Math.sin((iy + this.count) * 0.5) * 50;
+          scales[j] =
+            (Math.sin((ix + this.count) * 0.3) + 1) * 20 +
+            (Math.sin((iy + this.count) * 0.5) + 1) * 20;
+          i += 3;
+          j++;
+        }
+      }
+      particles.geometry.attributes.position.needsUpdate = true;
+      particles.geometry.attributes.scale.needsUpdate = true;
+      renderer.render(scene, camera);
+      this.count += 0.1;
+    },
+  },
+  // 生命周期钩子
+  beforeCreate() {
+    // 创建前
+  },
+  created() {
+    // 创建后
+  },
+  beforeMount() {
+    // 渲染前
+  },
+  mounted() {
+    // 渲染后
+    camera = null;
+    scene = null;
+    renderer = null;
+    this.init();
+  },
+  beforeUpdate() {
+    // 数据更新前
+  },
+  updated() {
+    // 数据更新后
+  },
+  beforeUnmount() {
+    // 销毁前
+    renderer.setAnimationLoop(null);
+    camera = null;
+    scene = null;
+    renderer = null;
+  },
+
+  watch: {
+    "$store.state.themeName"() {
+      $(".wave").empty();
+      renderer.setAnimationLoop(null);
+      this.init();
+    },
+  },
+};
 </script>
 
 <style lang="less">
-    .wave {
-        position: absolute;
-        left: 0;
-        top: 0;
-        width: 100%;
-        height: 60%;
-        z-index: -1;
-        overflow: hidden;
-    }
+.wave {
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 60%;
+  z-index: -1;
+  overflow: hidden;
+}
 </style>

+ 2 - 2
src/helper/partten.js

@@ -12,11 +12,11 @@ const color = [
 	{ key: "cyan", value: "#1cbbb4" },
 	{ key: "brown", value: "#a5673f" },
 	{ key: "mauve", value: "#9c26b0" },
+	{ key: "deepblue", value: "#36348e" },
 ];
 
 function getColor(key) {
-    if (!key)
-        key = "green"
+	if(!color.some(ele=>{ return ele.key === key })) key = "green";
     return color.find((t) => { return t.key == key }).value;
 }
 

+ 2 - 2
src/main.js

@@ -11,8 +11,8 @@ import 'element-plus/dist/index.css';
 // import 'element-plus/lib/theme-chalk/index.css';
 import locale from 'element-plus/lib/locale/lang/zh-cn';
 
-// 引入环境配置
-import "@modeConfig/modeConfig.js";
+// // 引入环境配置
+// import "@modeConfig/modeConfig.js";
 
 import "@/lib/global-import.js";
 

+ 6 - 12
src/router/index.js

@@ -416,18 +416,6 @@ const routes = [{
 		import( /* webpackChunkName: "malfunctionStatistics" */ "../views/malfunctionRecall/index.vue"),
 },
 {
-	path: "/health/gzzd/gzfl", // 故障分类
-	name: "gzfl",
-	component: () =>
-		import( /* webpackChunkName: "malfunctionStatistics" */ "../views/malfunctionDiagnose/gzfl.vue"),
-},
-{
-	path: "/health/gzzd/yjfl", // 预警分类
-	name: "yjfl",
-	component: () =>
-		import( /* webpackChunkName: "malfunctionStatistics" */ "../views/malfunctionDiagnose/yjfl.vue"),
-},
-{
 	path: "/health/frist",
 	name: "health",
 	component: () =>
@@ -838,6 +826,12 @@ const routes = [{
 	name: "analysis",
 	component: () => import("../views/sampleDatabase/analysis/index.vue")
 },
+//样本库功率曲线分析
+{
+	path: "/others/powerline/analysis",
+	name: "powerlineAnalysis",
+	component: () => import("../views/sampleDatabase/powerlineAnalysis/index.vue")
+},
 //知识库
 {
 	path: "/others/knowledgeBase",

+ 18 - 3
src/store/index.js

@@ -8,8 +8,10 @@ const debug = process.env.NODE_ENV !== 'production';
 const state = {
   websocketTimeSec: 1000,
   loading: false, //全局 - 加载中....
-  themeName: localStorage.getItem("authToken") || "dark", // 主题
+  themeName: localStorage.getItem("themeName") || "dark", // 主题
+  menuData: [],
   windturbineMap: {},
+  moudleName: "",
 };
 
 //改变状态的方法
@@ -22,6 +24,12 @@ const mutations = {
   },
   update(state, newData) {
     state.windturbineMap = newData.data
+  },
+  changeMenuData(state, newData) {
+    state.menuData = newData;
+  },
+  changeModuleName(state, newData) {
+    state.moudleName = newData;
   }
 };
 
@@ -30,7 +38,13 @@ const actions = {
     context.commit("update", newData);
   },
   changeTheme(context, str) {
-    context.commit("changeTheme", str)
+    context.commit("changeTheme", str);
+  },
+  changeMenuData(context, str) {
+    context.commit("changeMenuData", str);
+  },
+  changeModuleName(context, str) {
+    context.commit("changeModuleName", str);
   }
 };
 
@@ -42,7 +56,8 @@ const getters = {
   themeName: state => state.themeName,
   asidez: state => state.z,
   mainy: state => state.y,
-  login: state => state.login
+  login: state => state.login,
+  menuData: state => state.menuData
 }
 
 export default createStore({

+ 1 - 1
src/views/Agc/components/agc-panel.vue

@@ -83,7 +83,7 @@
     <!-- <MultipleLineChart v-if="chartType === 'multiple'" height="13.889vh" :list="data.tb || chartData" :hoverType="'axis'"></MultipleLineChart> -->
   	<el-dialog v-model="dialogVisible" width="70%" top="10vh" custom-class="modal"
 			:close-on-click-modal="true">
-      <DoubleLineChart height="70vh" :list="data.tb || chartData" ></DoubleLineChart>
+      <DoubleLineChart height="70vh" :list="data.tb || chartData" myUnit='MW'></DoubleLineChart>
 		</el-dialog>
   </ComPanel>
 </template>

+ 11 - 1
src/views/Decision/Decision1Mx.vue

@@ -428,7 +428,6 @@
 						sort: ''
 					},
 					success(res) {
-						console.log(res)
 						var name = [],
 							data = [],
 							llfdl = [],
@@ -436,6 +435,17 @@
 								"手动停机", "正常发电", "缺陷降出"
 							],
 							data2 = []; //项目列表
+							
+							if(that.value1.length){
+								let arr = [];
+								let hj = res.data.pop();
+								res.data.forEach((ele,index)=>{
+									arr[ele.id.split('_')[1] - 1] = ele
+								})
+								arr.push(hj);
+								res.data = arr;
+							}
+							
 						res.data.forEach((item, index) => {
 							name.push(item.name);
 							llfdl.push(item.llfdl);

+ 0 - 4
src/views/Decision/Decision2.vue

@@ -733,8 +733,6 @@ export default {
           that.ChangZhan = res.data;
           //  that.AjaxCommon();
           that.XiangMuVal(that.value2);
-          console.log("resCHANzhan:", res.data);
-          console.log("value2:", that.value2);
         },
       });
     },
@@ -758,7 +756,6 @@ export default {
         },
         success(res) {
           that.XiangMu = res.data;
-          console.log("Xiangmu:", res.data);
         },
       });
     },
@@ -833,7 +830,6 @@ export default {
         },
         success(res) {
           that.ajaxData = res.data;
-          console.log("resData:", res);
           var dataTab = [], //表格
             fdl = [],
             cz = [],

+ 0 - 3
src/views/Decision/Decision3Db.vue

@@ -385,9 +385,7 @@ export default {
           date: that.value4,
         },
         success(res) {
-			console.log(res)
           var data = res.data;
-
           var arrName = [],
             arrKey = [],
             arrData = [],
@@ -431,7 +429,6 @@ export default {
               value: arr,
             });
           }
-		  console.log(tempArray)
           that.list = tempArray;
         },
       });

+ 24 - 9
src/views/Decision/dual-pie-chart.vue

@@ -99,8 +99,12 @@ export default {
         color: ["#1893ce", "#edbf00", "#039178", "#ae4802", "#ea8b00"],
         tooltip: {
           trigger: "item",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: this.$store.state.themeName === "dark"
+              ? "rgba(0,0,0,0.4)"
+              : "rgba(255,255,255,0.5)",
+          borderColor: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
           textStyle: {
             color: "#fff",
             fontSize: util.vh(16),
@@ -128,15 +132,21 @@ export default {
           //icon: 'circle',
           itemGap: 12, //图例item间距
           textStyle: {
-            color: partten.getColor("gray"),
+            color: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
             fontSize: util.vh(14),
             rich: {
               name: {
-                color: partten.getColor("gray"),
+                color: this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
                 fontSize: 12,
               },
               value: {
-                color: partten.getColor("grayl"),
+                color: this.$store.state.themeName === "dark"
+                ? partten.getColor("grayl")
+                : "#000",
                 fontSize: 12,
               },
             },
@@ -175,14 +185,14 @@ export default {
                 // length: 40,
                 // length2: 120,
                 lineStyle: {
-                  color: "#fff",
+                  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
                   fontSize: util.vh(14),
                 },
               },
             },
             itemStyle: {
               normal: {
-                borderWidth: util.vh(14),
+                borderWidth:util.vh(4),
                 borderColor: "#071812",
               },
             },
@@ -193,10 +203,10 @@ export default {
                 },
                 padding: [0, 0, 0, 0],
                 rich: {
-                  color: "#ffffff" + "cc",
+                  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
                   percent: {
                     fontSize: util.vh(14),
-                    color: "#ffffff" + "cc",
+                    color: this.$store.state.themeName === "dark" ? "#FFFFFF" : "#000000" ,
                   },
                 },
               },
@@ -220,6 +230,11 @@ export default {
   updated() {
     this.initChart();
   },
+  watch: {
+    "$store.state.themeName"() {
+      this.initChart();
+    },
+  },
 };
 </script>
 

+ 2 - 2
src/views/Demo.vue

@@ -69,7 +69,7 @@
     <h3>折线图:multi-arrow-line-chart</h3>
     <multi-arrow-line-chart :height="'200px'" />
 
-    <h3>折线图:multiple-line-chart</h3>
+    <h3>折线图:normal-line-chart</h3>
     <normal-line-chart />
 
     <h3>折线图:simple-line-chart</h3>
@@ -108,7 +108,7 @@
       <normal-radar-chart :height="'500px'" />
     </div>
 
-    <h3>饼图:normal-radar-chart</h3>
+    <h3>饼图:radar-chart</h3>
     <div style="height: 500px">
       <radar-chart :height="'500px'" />
     </div>

+ 1 - 1
src/views/HealthControl/defect-elimination-tracking.vue

@@ -78,7 +78,7 @@ export default {
   data() {
     return {
       showMe: false,
-      header: require("@assets/logo.png"),
+      header: require("@assets/userhead.jpg"),
       infoss:'',    //msg
       infols:'',    //chart
     };

+ 55 - 12
src/views/Home/Home.vue

@@ -104,7 +104,7 @@
               @click="
                 showDoneChart({
                   data: DayPower,
-                  dialogTitle: '日发电量',
+                  dialogTitle: planBtnName.indexOf('电站') !== -1 || planBtnName.indexOf('光电厂') !== -1 ? '日照强度' : '日发电量',
                   dialogType: 'doneLineChart',
                 })
               "
@@ -528,7 +528,8 @@
             <row align="middle">
               <div class="situation-item fengji">
                 <div class="icon fengji-icon svg-icon svg-icon-white">
-                  <svg-icon class="" svgid="svg-风机" />
+                  <svg-icon class="" :svgid="wpId === '-2' || wpId.indexOf('GDC') !== -1 ?  'svg-photovoltaic' : 'svg-风机'" />
+				  
                 </div>
                 <div class="info">
                   <div class="title green">接入设备</div>
@@ -741,7 +742,7 @@
     <el-dialog
       :title="dialogTitle"
       v-model="dialogShow"
-      width="70%"
+      width="80%"
       top="10vh"
       custom-class="modal"
       :close-on-click-modal="true"
@@ -977,9 +978,9 @@ export default {
         success(res) {
           that.powerData = [
             {
-              title: that.wpId === '-2' ? "日照强度" : "风速",
-              value: res.data.jczbmap.ssfs,
-              dialogTitle:  that.wpId === '-2' ? "日照强度详情" : "风速详情",
+              title: that.wpId === '-2' || that.wpId.indexOf('GDC') !== -1 ? "日照强度" : "风速",
+				
+              dialogTitle: that.wpId == 0 ? '详情' : that.wpId === '-2' || that.wpId.indexOf('GDC') !== -1 ? "日照强度详情" : "风速详情",
               subUrl: "genreset/findGLDetail",
               targetName: "ssfs",
               dialogType: "powerLineChart",
@@ -1083,8 +1084,20 @@ export default {
         },
         success(res) {
           let rdlKey = ["value1", "value2", "value3", "speed"];
+		  let dw = {
+			  units:"",
+			  title:""
+		  };
+		  that.wpId === '-2' || that.wpId.indexOf('GDC') !== -1 ? 
+		  dw={
+			  units:"(w/㎡)",
+			  title:"日照"
+		  } : dw={
+			  units:"(m/s)",
+			  title:"风速"
+		  };
           let DayPower = {
-            units: ["(万kWh)", "(m/s)"],
+            units: ["(万kWh)", dw.units],
             value: [
               {
                 title: "发电量",
@@ -1102,7 +1115,7 @@ export default {
                 value: [],
               },
               {
-                title: "风速",
+                title: dw.title,
                 yAxisIndex: 1,
                 value: [],
               },
@@ -1241,7 +1254,9 @@ export default {
       this.historyPlanBtnName = planBtnName;
       this.changeShowType(wpId, planBtnName);
     },
-    changeShowBackType() {
+    changeShowBackType(wpId, planBtnName) {
+		this.historyWpId = wpId;
+		this.historyPlanBtnName = planBtnName;
       this.changeShowType(this.historyWpId, this.historyPlanBtnName);
     },
     // 打开弹窗
@@ -1298,9 +1313,19 @@ export default {
       this.dialogTitle = res.dialogTitle;
       this.dialogType = res.dialogType;
 
-      // this.powerLineChartData = res.data;
+	  let hour = this.nowTime.split(":")[0];
+	  let minute = this.nowTime.split(":")[1] < 30 ? minute = 1 : minute = 2;
+	  let valueLength = (hour * 2) + 1 + minute;
+	  
+	  res.data.value.forEach((ele,index)=>{
+		  if(this.wpId === '0'){
+			  ele.title.indexOf('电场') !== -1 ? ele.title+='[风速]' : ele.title;
+			  ele.title.indexOf('电站') !== -1 ? ele.title+='[日照]' : ele.title;
+		  }
+		  ele.value.splice(valueLength,48)
+	  })
       this.powerLineChartData = res.data.value;
-      if (res.dialogTitle === "风速详情") {
+      if (res.dialogTitle === "详情") {
         this.powerLineChartYAxises = [
           {
             min: 0,
@@ -1315,7 +1340,25 @@ export default {
             unit: "(w/㎡)",
           },
         ];
-      } else {
+      }else if(res.dialogTitle === "风速详情") {
+        this.powerLineChartYAxises = [
+          {
+            min: 0,
+            name: "风速",
+            position: "left",
+            unit: "(m/s)",
+          },
+        ];
+      }else if(res.dialogTitle === "日照强度详情") {
+	    this.powerLineChartYAxises = [
+		  {
+		    min: 0,
+		    name: "日照",
+		    position: "right",
+		    unit: "(w/㎡)",
+		  },
+	    ];
+	  }else {
         this.powerLineChartYAxises = [
           {
             min: 0,

+ 1 - 3
src/views/Home/components/map.vue

@@ -274,7 +274,7 @@ export default {
       this.currentMode = "NX";
       this.mapName = "nx";
       this.mapIndex = -1;
-      this.$emit("mapClickBack");
+      this.$emit("mapClickBack", wpId, planBtnName);
     },
     clickLabel(wpId, planBtnName) {
       this.mapName = wpId;
@@ -283,11 +283,9 @@ export default {
       this.$emit("mapClick", wpId, planBtnName);
     },
     clickFj(wpId, planBtnName,textType) {
-		console.log(textType)
       this.$emit("mapClick", wpId, planBtnName);
     },
     changePeriod: function (name, period,textType) {
-		console.log(textType)
 		if(textType){
 			this.textType = '期次'
 		}else{

+ 0 - 1
src/views/Home/components/map/XH_GDC.vue

@@ -184,7 +184,6 @@
 		},
 		watch: {
 			data(res) {
-				console.log(res)
 				this.sourceMap = res;
 			},
 		},

File diff suppressed because it is too large
+ 49 - 2
src/views/Home/components/map/svg-map-nx.vue


+ 32 - 29
src/views/MalfunctionWarning/components/detectionRecord.vue

@@ -107,18 +107,20 @@ export default {
     this.getfaultLables();
   },
   methods: {
-      opened(){
-          this.getData();
-      },
+    opened() {
+      this.getData();
+    },
     getData() {
       let that = this;
       this.API.requestData({
         method: "GET",
         subUrl: "http://192.168.1.18:9002/case/fault/list",
         data: {
-        //   station: this.selectValue,
-        //   model: this.selectMoudle,
-          st: new Date(new Date().getTime()- 86400000).formatDate("yyyy-MM-dd hh:mm:ss") ,
+          //   station: this.selectValue,
+          //   model: this.selectMoudle,
+          st: new Date(new Date().getTime() - 86400000).formatDate(
+            "yyyy-MM-dd hh:mm:ss"
+          ),
           et: new Date().formatDate("yyyy-MM-dd hh:mm:ss"),
         },
         success(res) {
@@ -140,36 +142,37 @@ export default {
         },
       });
     },
+
     selectChange(data) {
-        let params = [];
-        data.faulttype = this.faultLists.filter(
-              (item) => item.faultcode === data.faultcode
-            )[0]?.faulttype,
-        params.push(data)
-        axios({
-          method: "post",
-          url: "http://192.168.10.19:9002/case/fault/insert",
-          data: params,
-          header: {
-            "Content-Type": "application/json",
-          },
-        }).then((res) => {
-          if (res.data.code !== 200) {
-            this.BASE.showMsg({
-              type: "error",
-              msg: "标签修改失败",
-            });
-          }
-        });
+      let params = [];
+      (data.faulttype = this.faultLists.filter(
+        (item) => item.faultcode === data.faultcode
+      )[0]?.faulttype),
+        params.push(data);
+      axios({
+        method: "post",
+        url: "http://192.168.10.19:9002/case/fault/insert",
+        data: params,
+        header: {
+          "Content-Type": "application/json",
+        },
+      }).then((res) => {
+        if (res.data.code !== 200) {
+          this.BASE.showMsg({
+            type: "error",
+            msg: "标签修改失败",
+          });
+        }
+      });
     },
-    getReports(){
-      this.reportDisplay = true
+    getReports() {
+      this.reportDisplay = true;
     },
   },
 };
 </script>
 <style lang="less" scoped>
-.btn{
+.btn {
   width: 106px !important;
 }
 </style>

+ 1 - 1
src/views/MalfunctionWarning/components/superviseDataClassify.vue

@@ -361,7 +361,7 @@ export default {
       params.dataInfos = dataInfos
       axios({
         method: "post",
-        url: "http://192.168.10.18:8080/api/supervised/execute",
+        url: "http://10.155.32.14:9090/api/supervised/execute",
         data: params,
         header: {
           "Content-Type": "application/json",

+ 3 - 3
src/views/MalfunctionWarning/supervised.vue

@@ -342,7 +342,7 @@ export default {
       let that = this;
       this.API.requestData({
         method: "GET",
-        baseURL: "http://192.168.10.18:8080/",
+        baseURL: "http://10.155.32.14:9090/",
         subUrl: "api/coordinate/algorithm",
         data: {
           type: 1,
@@ -432,7 +432,7 @@ export default {
       that.resultList = [];
       this.API.requestData({
         method: "GET",
-        baseURL: "http://192.168.10.18:8080/",
+        baseURL: "http://10.155.32.14:9090/",
         subUrl: "api/supervised/",
         success(res) {
           if (res.value.length > 0) {
@@ -452,7 +452,7 @@ export default {
       });
       this.API.requestData({
         method: "GET",
-        baseURL: "http://192.168.10.18:8080/",
+        baseURL: "http://10.155.32.14:9090/",
         subUrl: "api/supervised/progress",
         success(res) {
           that.showTraining = true;

File diff suppressed because it is too large
+ 654 - 690
src/views/NewPages/alarm-center-1.vue


+ 23 - 21
src/views/NewPages/alarm-center-2.vue

@@ -30,7 +30,8 @@
         </div>
         <div class="query-actions">
           <button class="btn green" @click="searchData">搜索</button>
-          <button class="btn green">导出</button>
+          <!-- <button class="btn green">导出</button> -->
+		  <button class="btn green" @click="fx">分析</button>
         </div>
       </div>
     </div>
@@ -38,40 +39,32 @@
       <table-2 :data="tableData" :height="'88vh'">
         <template v-for="(item, i) in column" :key="i" #[item]="scope">
           <div class="bar">
-            <div class="bar-percent" :style="{
-                width:
-                  (scope.data.count &&
-                    scope.data.count / (scope.data.count + scope.data.time)) *
-                    100 +
-                  'px',
-              }"></div>
-            <span class="value">{{
-              scope.data.count && scope.data.count
-              }}</span>
+          	<div class="bar-percent" :style="{ width: scope?.data?.countStyle }"> </div>
+          	<span class="value">{{ scope?.data?.count }} 次数</span>
           </div>
           <div class="bar">
-            <div class="bar-percent" :style="{
-                width:
-                  (scope.data.count &&
-                    scope.data.time / (scope.data.count + scope.data.time)) *
-                    100 +
-                  'px',
-              }"></div>
-            <span class="value">{{ scope.data.count && scope.data.time }}</span>
+          	<div class="bar-percent" :style="{ width: scope?.data?.timeStyle}"></div>
+          	<span class="value">{{scope?.data?.time }} 分钟</span>
           </div>
         </template>
       </table-2>
     </panel-3>
+	<el-dialog :title="dialogTitleFX" v-model="dialogVisibleFX" width="70%" top="10vh" custom-class="modal" :close-on-click-modal="false" :destroy-on-close='true'>
+	  <FX :date='startdate' :wpid='wpvalue'/>
+	</el-dialog>
   </div>
 </template>
 
 <script>
 import Panel3 from "../../components/coms/panel/panel3.vue";
 import Table2 from "../../components/coms/table/table2.vue";
+import FX from "./alarm-center-gzfx.vue";
 export default {
-  components: { Panel3, Table2 },
+  components: { Panel3, Table2,FX },
   data () {
     return {
+		dialogTitleFX: "",
+		dialogVisibleFX: false,
       wpvalue: "",
       wpoptions: "",
       options: [],
@@ -202,13 +195,15 @@ export default {
       this.columnObj = columnObj;
     },
     async searchData () {
+		let enddate = new Date(Date.parse(new Date(this.enddate)) + (24*3600*1000)).formatDate("yyyy-MM-dd");
       const { data } = await this.API.requestData({
+		  showLoading:true,
         baseURL: "http://192.168.1.18:8075/",
         subUrl: "shutdown/list",
         data: {
           stId: this.wpvalue,
           endDate: new Date(this.startdate).formatDate("yyyy-MM-dd"),
-          startDate: new Date(this.enddate).formatDate("yyyy-MM-dd"),
+          startDate: enddate,
         },
       });
       ////////
@@ -226,7 +221,9 @@ export default {
             if (k.type == c.name) {
               let obj1 = {
                 count: k.count,
+                countStyle:((k.count / (k.count + k.time)) * 100) + 'px',
                 time: k.time,
+                timeStyle:((k.time / (k.count + k.time)) * 100) + 'px'
               };
               obj[k.type] = obj1;
             }
@@ -237,6 +234,11 @@ export default {
       this.tableData.column = column;
       this.tableData.data = dataAll;
     },
+	fx(){
+		this.startdate=new Date(this.startdate).formatDate("yyyy-MM-dd");
+		this.dialogTitleFX= "预警分析";
+		this.dialogVisibleFX= true;
+	}
   },
 };
 </script>

+ 103 - 0
src/views/NewPages/alarm-center-gzfx.vue

@@ -0,0 +1,103 @@
+<template>
+	<div>
+		<el-row>
+			<el-col :span="24">
+				<panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+					<div class="wind-info">
+						<dual-pie-chart height="40vh" width='55vh' :innerData="rzdfsData" :outerData="rzdfsData" />
+					</div>
+				</panel>
+			</el-col>
+		</el-row>
+		<el-row>
+			<el-col :span="12">
+				<panel :title="'月雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+					<div class="wind-info">
+						<dual-pie-chart height="32vh" width='55vh' :innerData="yzdfsData" :outerData="yzdfsData" />
+					</div>
+				</panel>
+			</el-col>
+			<el-col :span="12">
+				<panel :title="'年雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+					<div class="wind-info">
+						<dual-pie-chart height="32vh" width='55vh' :innerData="nzdfsData" :outerData="nzdfsData" />
+					</div>
+				</panel>
+			</el-col>
+		</el-row>
+	</div>
+</template>
+
+<script>
+	import panel from "@/components/coms/panel/panel.vue";
+	import DualPieChart from "@/components/chart/pie/dual-pie-chart.vue";
+	export default {
+		components: {
+			panel,
+			DualPieChart
+		},
+		props:{
+			date: {
+			  type: String,
+			  default: "2021-06-06",
+			},
+			wpid: {
+			  type: String,
+			  default: "MHS_FDC",
+			},
+		},
+		data() {
+			return {
+				rzdfsData: [],
+				yzdfsData: [],
+				nzdfsData: [],
+			}
+		},
+		created() {
+			this.searchData();
+		},
+		methods: {
+			searchData(){
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					subUrl: "radar/yjfx",
+					showLoading:true,
+					data:{
+						stationid:that.wpid,
+						date:that.date
+					},
+					success(res) {
+						let key = ['测风系统','传动链','发电机','变桨系统','齿轮箱','液压系统','偏航系统','机舱','其它','塔底柜'];
+						let year = Object.values(res.data[0][0]),
+							month = Object.values(res.data[1][0]),
+							day = Object.values(res.data[2][0]);
+						let yearData = [],
+							monthData = [],
+							dayData = [];
+						key.forEach((ele,index)=>{
+							yearData.push({
+							  name: ele,
+							  value: parseFloat(year[index])
+							})
+							monthData.push({
+							  name: ele,
+							  value: parseFloat(month[index])
+							})
+							dayData.push({
+							  name: ele,
+							  value: parseFloat(day[index])
+							})
+						})
+						that.nzdfsData = yearData;
+						that.yzdfsData = monthData;
+						that.rzdfsData = dayData;
+					},
+				});
+			}
+		},
+	};
+</script>
+
+<style>
+</style>

+ 103 - 0
src/views/NewPages/alarm-center-yjfx.vue

@@ -0,0 +1,103 @@
+<template>
+	<div>
+		<el-row>
+			<el-col :span="24">
+				<panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+					<div class="wind-info">
+						<dual-pie-chart height="40vh" width='55vh' :innerData="rzdfsData" :outerData="rzdfsData" />
+					</div>
+				</panel>
+			</el-col>
+		</el-row>
+		<el-row>
+			<el-col :span="12">
+				<panel :title="'月雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+					<div class="wind-info">
+						<dual-pie-chart height="30vh" width='55vh' :innerData="yzdfsData" :outerData="yzdfsData" />
+					</div>
+				</panel>
+			</el-col>
+			<el-col :span="12">
+				<panel :title="'年雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+					<div class="wind-info">
+						<dual-pie-chart height="30vh" width='55vh' :innerData="nzdfsData" :outerData="nzdfsData" />
+					</div>
+				</panel>
+			</el-col>
+		</el-row>
+	</div>
+</template>
+
+<script>
+	import panel from "@/components/coms/panel/panel.vue";
+	import DualPieChart from "@/components/chart/pie/dual-pie-chart.vue";
+	export default {
+		components: {
+			panel,
+			DualPieChart
+		},
+		props:{
+			date: {
+			  type: String,
+			  default: "2021-06-06",
+			},
+			wpid: {
+			  type: String,
+			  default: "MHS_FDC",
+			},
+		},
+		data() {
+			return {
+				rzdfsData: [],
+				yzdfsData: [],
+				nzdfsData: [],
+			}
+		},
+		created() {
+			this.searchData();
+		},
+		methods: {
+			searchData(){
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					subUrl: "radar/gzfx",
+					showLoading:true,
+					data:{
+						stId:that.wpid,
+						Date:that.date
+					},
+					success(res) {
+						let key = ['变桨','变频器','齿轮箱','发电机','风机其它','滑环','机舱加热','控制','冷却','偏航','液压','主轴'];
+						let year = Object.values(res.data[0][0]),
+							month = Object.values(res.data[1][0]),
+							day = Object.values(res.data[2][0]);
+						let yearData = [],
+							monthData = [],
+							dayData = [];
+						key.forEach((ele,index)=>{
+							yearData.push({
+							  name: ele,
+							  value: parseFloat(year[index])
+							})
+							monthData.push({
+							  name: ele,
+							  value: parseFloat(month[index])
+							})
+							dayData.push({
+							  name: ele,
+							  value: parseFloat(day[index])
+							})
+						})
+						that.nzdfsData = yearData;
+						that.yzdfsData = monthData;
+						that.rzdfsData = dayData;
+					},
+				});
+			}
+		},
+	};
+</script>
+
+<style>
+</style>

+ 12 - 9
src/views/NewPages/multiple-y-line-chart-normal.vue

@@ -289,7 +289,7 @@ export default {
     return {
       id: "",
       chart: null,
-      color: ["#323E6F", "#1DA0D7", "#05BB4C", "#EDB32F", "#DB5520"],
+      color: ["#1DA0D7","#05BB4C","#323E6F", "#EDB32F", "#DB5520"],
     };
   },
   computed: {
@@ -336,7 +336,7 @@ export default {
           //分格线
           splitLine: {
             lineStyle: {
-              color: partten.getColor("gray"),
+              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : partten.getColor("black"),
               type: "dashed",
             },
           },
@@ -385,8 +385,9 @@ export default {
   methods: {
     resize() {},
     initChart() {
+		
       const chart = echarts.init(this.$el);
-
+	
       let option = this.option();
       chart.clear();
 
@@ -406,16 +407,18 @@ export default {
       window.addEventListener("resize", this.resize);
     },
     option: function () {
+		let themeName = '';
+		this.$store.state.themeName === "dark" ? themeName = true : themeName = false;
       return {
         color: this.color,
         tooltip: {
           trigger: "axis",
           triggerOn:this.default?"click":"mousemove",
           alwaysShowContent:true,
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: themeName ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+          borderColor: themeName ? partten.getColor("gray"): "#000",
           textStyle: {
-            color: "#fff",
+            color: themeName ? "#fff" : "#000",
             fontSize: 12,
           },
         },
@@ -425,9 +428,9 @@ export default {
           top: "top",
           icon: "circle",
           itemWidth: 6,
-          inactiveColor: partten.getColor("gray"),
+          inactiveColor: themeName ? partten.getColor("gray"): "#000",
           textStyle: {
-            color: partten.getColor("grayl"),
+            color: themeName ? partten.getColor("grayl"): "#000",
             fontSize: 12,
           },
         },
@@ -452,7 +455,7 @@ export default {
               formatter: "{value}",
               fontSize: 12,
               textStyle: {
-                color: partten.getColor("gray"),
+                color: themeName ? partten.getColor("gray"): "#000",
               },
             },
             data: this.xdata,

+ 29 - 41
src/views/NewPages/znzhfx.vue

@@ -16,46 +16,34 @@
       </el-row>
       <div class="mg-b-16 anliz-des">
         <div>
-          本月{{ wtId }}号风机风机设备利用小时数{{
-            tableVal.byzb && tableVal.byzb.lyxs
-          }}小时、同比{{
-            tableVal.tpzb && tableVal.tpzb.lyxs
-          }}小时,设备可利用率{{
-            tableVal.byzb && tableVal.byzb.sbklyl
-          }}%、同比{{ tableVal.tpzb && tableVal.tpzb.sbklyl }}}%,
-          等效可用系数{{ tableVal.byzb && tableVal.byzb.dxklyxs }}%、同比{{
-            tableVal.tpzb && tableVal.tpzb.dxklyxs
-          }}}%,静风频率达到{{ tableVal.byzb && tableVal.byzb.jfpl }}%、同比{{
-            tableVal.tpzb && tableVal.tpzb.jfpl
-          }}}%, 机组功率特性一致性系数达到{{
-            tableVal.byzb && tableVal.byzb.glyzxxs
-          }}%、同比{{ tableVal.tpzb && tableVal.tpzb.glyzxxs }}}%。
-          <br />
-          {{ wtId }}风机{{ year }}年{{ month }}月平均风速{{
-            tableVal.byzb && tableVal.byzb.fs
-          }}m/s、同比{{ tableVal.tpzb && tableVal.tpzb.fs }}m/s,
-          小风平均切入风速{{ tableVal.byzb && tableVal.byzb.xfqr }}m/s、同比{{
-            tableVal.tpzb && tableVal.tpzb.xfqr
-          }}m/s, 有效风时数{{
-            tableVal.byzb && tableVal.byzb.yxfss
-          }}小时、同比{{ tableVal.tpzb && tableVal.tpzb.yxfss }}小时,
-          实际发电电量{{ tableVal.byzb && tableVal.byzb.fdl }}万kwh、同比{{
-            tableVal.tpzb && tableVal.tpzb.fdl
-          }}万kwh,同比增长率{{ tableVal.tbzb && tableVal.tbzb.fdl }}%,
-          各项损失电量累计{{
-            tableVal.byzb && tableVal.byzb.llfdl - tableVal.byzb.fdl
-          }}万kwh、同比{{
-            tableVal.tpzb && tableVal.tpzb.llfdl - tableVal.tpzb.fdl
-          }}万kwh,同比增长率{{
-            tableVal.tbzb && tableVal.byzb.llfdl - tableVal.tbzb.fdl
-          }}%, 理论发电量{{
-            tableVal.byzb && tableVal.byzb.llfdl
-          }}万kwh,实际发电量与理论发电量相差{{
-            tableVal.tbzb && tableVal.tbzb.llfdl
-          }}万kwh。
-          <br />
-          本月静风频率
-          %,月累计静风时长0.00小时,月累计待机小时116.44小时,待机占比48.51%。
+          本月{{ wtId }}号风机风机设备利用小时数{{ tableVal.byzb && tableVal.byzb.lyxs }}小时、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.lyxs }}小时,
+          		设备可利用率{{ tableVal.byzb && tableVal.byzb.sbklyl }}%、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.sbklyl }}%;
+          		等效可用系数{{ tableVal.byzb && tableVal.byzb.dxklyxs }}%、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.dxklyxs }}%;
+          		静风频率达到{{ tableVal.byzb && tableVal.byzb.jfpl }}%、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.jfpl }}%;
+          		机组功率特性一致性系数达到{{ tableVal.byzb && tableVal.byzb.glyzxxs }}%、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.glyzxxs }}%。 <br />
+            {{ wtId }}风机{{ year }}年{{ month }}
+          		月平均风速{{ tableVal.byzb && tableVal.byzb.fs }}m/s、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.fs }}m/s;
+            小风平均切入风速{{ tableVal.byzb && tableVal.byzb.xfqr }}m/s、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.xfqr }}m/s;
+          		有效风时数{{ tableVal.byzb && tableVal.byzb.yxfss }}小时、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.yxfss }}小时;
+          		实际发电电量{{ tableVal.byzb && tableVal.byzb.fdl }}万kwh、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.fdl }}万kwh,
+          		同比增长率{{ tableVal.tbzb && (tableVal.tbzb.fdl).toFixed(2) }}%;
+          		各项损失电量累计{{ tableVal.byzb && (tableVal.byzb.llfdl - tableVal.byzb.fdl).toFixed(2) }}万kwh、
+          		同比{{ tableVal.tqzb && tableVal.tqzb.llfdl - tableVal.tqzb.fdl }}万kwh,
+          		同比增长率{{ tableVal.tbzb && (tableVal.byzb.llfdl - tableVal.tbzb.fdl).toFixed(2) }}%;
+          		理论发电量{{ tableVal.byzb && tableVal.byzb.llfdl }}万kwh,
+          		实际发电量与理论发电量相差{{ tableVal.tbzb && tableVal.tbzb.llfdl }}万kwh。 <br />
+            本月静风频率{{ tableVal.byzb && tableVal.byzb.jfpl }}%,
+			<!-- 月累计静风时长0.00小时, -->
+			月累计待机小时{{ tableVal.byzb && tableVal.byzb.tjxs }}小时,待机占比{{ tableVal.byzb && tableVal.tqzb.tjxs }}%。
         </div>
       </div>
       <div class="mg-b-16">
@@ -381,7 +369,7 @@ export default {
           month: this.month,
         },
       });
-      console.warn(data.data);
+      console.log(data.data);
       const res = data.data;
       this.tableVal = data.data;
       console.warn(this.tableVal);

+ 15 - 0
src/views/WindSite/WindSite.vue

@@ -53,58 +53,72 @@ export default {
         {
           icon: "svg-s场站监视",
           path: "/monitor/windsite/home",
+          text: "场站监视",
         },
         {
           icon: "svg-s指标列表",
           path: "/monitor/windsite/draughtfanlist",
+          text: "指标列表",
         },
         // {
         //   icon: "svg-agc",
         //   path: "/monitor/windsite/matrix",
+        //   text: "指标列表",
         // },
         // {
         //   icon: "svg-agc",
         //   path: "/monitor/windsite/lightmatrix",
+        //   text: "指标列表",
         // },
         // {
         //   icon: "svg-intranet-involvement",
         //   path: "/monitor/windsite/box",
+        //   text: "指标列表",
         // },
         // {
         //   icon: "svg-matrix",
         //   path: "/monitor/windsite/info",
+        //   text: "指标列表",
         // },
         {
           icon: "svg-s测风塔",
           path: "/monitor/windsite/tower",
+          text: "测风塔",
         },
         // {
         //   icon: "svg-easy-compass",
         //   path: "/monitor/windsite/Inverter-Info",
+        //   text: "测风塔",
         // },
         // {
         //   icon: "svg-easy-compass",
         //   path: "/monitor/windsite/map",
+        //   text: "测风塔",
         // },
         // {
         //   icon: "svg-easy-compass",
         //   path: "/monitor/windsite/map1",
+        //   text: "测风塔",
         // },
         {
           icon: "svg-matrix",
           path: "/monitor/windsite/matrix",
+          text: "矩阵",
         },
         {
           icon: "svg-s总貌",
           path: "/monitor/windsite/generalappearance",
+          text: "总貌图",
         },
         {
           icon: "svg-s升压站",
           path: "/monitor/windsite/boosterstation",
+          text: "升压站",
         },
         {
           icon: "svg-s地图",
           path: "/monitor/windsite/map",
+          text: "地图",
         },
       ],
     };
@@ -113,6 +127,7 @@ export default {
   methods: {
     clickMenu: function (index) {
       this.activeIndex = index;
+      this.$store.dispatch("changeModuleName", this.menuDatas[index].text);
     },
   },
 

File diff suppressed because it is too large
+ 55 - 60
src/views/WindSite/components/Windmill.vue


+ 17 - 2
src/views/WindSite/components/boosterstation/mhs.vue

@@ -4610,7 +4610,7 @@
                   width="79.533"
                   height="23.402"
                 ></rect>
-                <g>
+                <g id="footer">
                   <g>
                     <text
                       transform="matrix(1 0 0 1 18.8752 1030.8413)"
@@ -9082,6 +9082,7 @@
 <script>
 import previewPicture from "../previewPicture.vue";
 import { BoosterStation } from "./BoosterStation";
+import $ from "jquery";
 export default {
   components: {
     previewPicture,
@@ -9096,10 +9097,24 @@ export default {
   },
   created() {
     this.boosterStation = new BoosterStation();
-
     this.refreshTPData();
     this.interval = setInterval(this.refreshTPData, 1000);
   },
+  mounted() {
+  	this.$nextTick(()=>{
+		if(this.$store.state.themeName === "light"){
+			for(let i=0;i<$('#other text').length;i++){
+				let that = $('#other text').eq(i);
+				let fill = that.attr('fill');
+				let txt = parseInt(that.text());
+				let zn = /.*[\u4e00-\u9fa5]+.*$/.test(that.text());//判断是否包含中文
+				if(fill === '#FFFFFF' && !isNaN(txt) && !zn){
+					that.attr('fill','#000');
+				}
+			}
+		}
+	})
+  },
   methods: {
     closed() {
       clearInterval(this.interval);

+ 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',
+								// 	});
+								// }
 							}
 						});
 

+ 6 - 1
src/views/WindSite/pages/Home/Station.vue

@@ -463,7 +463,9 @@ export default {
             height: 8,
             attrs: {
               body: {
-                fill: partten.getColor("green"),
+                fill:this.$store.state.themeName === "dark"
+                    ? partten.getColor("green")
+                    : partten.getColor("blue"),
                 stroke: "transparent",
                 class: "node-hover",
                 "data-item": encodeURIComponent(JSON.stringify(data)),
@@ -574,6 +576,9 @@ export default {
       });
       this.initStation();
     },
+	"$store.state.themeName"() {
+	  this.initStation();
+	},
   },
 };
 </script>

+ 23 - 22
src/views/WindSite/pages/Home/wind-site-weather.vue

@@ -2,8 +2,12 @@
 <template>
   <div class="wind-site-weather">
     <!-- <div class="title">风场 {{ nowTime }} 实况</div> -->
-        <div class="title" v-if="paramsId.includes('FDC')">风场 {{ nowTime }} 实况</div>
-        <div class="title" v-else-if="paramsId.includes('GDC')">光电场 {{ nowTime }} 实况</div>
+    <div class="title" v-if="paramsId.includes('FDC')">
+      风场 {{ nowTime }} 实况
+    </div>
+    <div class="title" v-else-if="paramsId.includes('GDC')">
+      光电场 {{ nowTime }} 实况
+    </div>
     <div class="weather">
       <div class="weather-info">
         <span class="svg-icon">
@@ -62,20 +66,20 @@
 </template>
 
 <script>
-import Home from "./Home.vue"
+import Home from "./Home.vue";
 import Col from "@/components/coms/grid/col.vue";
 import Row from "@/components/coms/grid/row.vue";
 import SvgIcon from "@/components/coms/icon/svg-icon.vue";
 
 export default {
-  components: { Home,Row, Col, SvgIcon },
-  props:{
+  components: { Home, Row, Col, SvgIcon },
+  props: {
     time: String,
-    data:{
-      type:Object,
-      default:() => { }
+    data: {
+      type: Object,
+      default: () => {},
     },
-    paramsId:'',
+    paramsId: "",
   },
   data() {
     return {
@@ -93,25 +97,22 @@ export default {
       sunset: "18:50", // 日落
     };
   },
-  created(){
+  created() {
     // let that = this;
     // that.paramsId = that.$route.params.wpId
-    // console.log("paramsId:",that.$route.params.wpId)
   },
-  mounted(){
-    this.sourceMap=this.data;
-   
+  mounted() {
+    this.sourceMap = this.data;
   },
 
-  watch:{
-    data(res){
-      this.sourceMap=res;
-      //  console.log('map:',this.sourceMap)
+  watch: {
+    data(res) {
+      this.sourceMap = res;
     },
-    time(value){
-      this.nowTime = value
-    }
-  }
+    time(value) {
+      this.nowTime = value;
+    },
+  },
 };
 </script>
 

+ 33 - 23
src/views/WindSite/pages/Info/Info.vue

@@ -20,7 +20,7 @@
           <!-- 使用 v-show 首次全部加载 之后隐藏 点击后显示 -->
           <base-info v-show="InfoBtns.activeIndex == 0" :data="sourceMap" />
           <!-- <base-info v-if="InfoBtns.activeIndex == 2" /> -->
-          <div style="text-align:center;">
+          <div :style="$store.state.themeName === 'dark' ? 'text-align:center;' : 'text-align:center;background:#fff;'">
             <StandAloneImg class="sai" v-show="InfoBtns.activeIndex != 0" :activeIndex="InfoBtns.activeIndex" @selectSvg="selectSvg"></StandAloneImg>
           </div>
           <generator class="saig" v-show="InfoBtns.activeIndex != 0" :index="InfoBtns.activeIndex" :data="sourceMap"></generator>
@@ -144,28 +144,38 @@ export default {
         },
         success(res) {
           let WindSites = [];
-
-          res.data.forEach((ele, index) => {
-            WindSites.push({
-              id: String(index),
-              text: ele.wpName,
-              children: [],
-            });
-          });
-
-          res.data.forEach((pEle, pIndex) => {
-            pEle.fjls[0].forEach((cEle) => {
-              WindSites[pIndex].children.push({
-                id: cEle.wtId,
-                wpId: cEle.wpId,
-                text: cEle.wtnum,
-                color: that.getColor(cEle.fjzt),
-              });
-            });
-          });
-
-          that.WindSites = WindSites;
-
+		if(that.WindSites.length){
+			res.data.forEach((pEle, pIndex) => {
+				that.WindSites[pIndex].children = [];
+			  pEle.fjls[0].forEach((cEle) => {
+			    that.WindSites[pIndex].children.push({
+			      id: cEle.wtId,
+			      wpId: cEle.wpId,
+			      text: cEle.wtnum,
+			      color: that.getColor(cEle.fjzt),
+			    });
+			  });
+			});
+		}else{
+			res.data.forEach((ele, index) => {
+			  WindSites.push({
+			    id: String(index),
+			    text: ele.wpName,
+			    children: [],
+			  });
+			});
+			res.data.forEach((pEle, pIndex) => {
+			  pEle.fjls[0].forEach((cEle) => {
+			    WindSites[pIndex].children.push({
+			      id: cEle.wtId,
+			      wpId: cEle.wpId,
+			      text: cEle.wtnum,
+			      color: that.getColor(cEle.fjzt),
+			    });
+			  });
+			});
+			that.WindSites = WindSites;
+		}
           if (res.data.length) {
             that.wtId = that.wtId || res.data[0].fjls[0][0].wtId;
             that.getWtInfo();

+ 6 - 6
src/views/WindSite/pages/Info/StandAloneImg.vue

@@ -385,7 +385,7 @@
                 :class="{ 'stand-alone-text': text && hover == 3 }"
                 x="630"
                 y="30"
-                fill="#05BB4C"
+                fill="#36348e"
                 font-size="24"
             >
                 变桨
@@ -431,7 +431,7 @@
                 :class="{ 'stand-alone-text': text && hover == 6 }"
                 x="1060"
                 y="80"
-                fill="#05BB4C"
+                fill="#36348e"
                 font-size="24"
             >
                 机舱
@@ -478,7 +478,7 @@
                 :class="{ 'stand-alone-text': text && hover == 2 }"
                 x="1110"
                 y="250"
-                fill="#05BB4C"
+                fill="#36348e"
                 font-size="24"
             >
                 齿轮箱
@@ -525,7 +525,7 @@
                 :class="{ 'stand-alone-text': text && hover == 1 }"
                 x="1300"
                 y="920"
-                fill="#05BB4C"
+                fill="#36348e"
                 font-size="24"
             >
                 发电机
@@ -571,7 +571,7 @@
                 :class="{ 'stand-alone-text': text && hover == 4 }"
                 x="960"
                 y="1050"
-                fill="#05BB4C"
+                fill="#36348e"
                 font-size="24"
             >
                 偏航
@@ -618,7 +618,7 @@
                 :class="{ 'stand-alone-text': text && hover == 5 }"
                 x="1160"
                 y="1030"
-                fill="#05BB4C"
+                fill="#36348e"
                 font-size="24"
             >
                 液压

+ 41 - 83
src/views/WindSite/pages/Map.vue

@@ -13,7 +13,14 @@
         <div class="sub-title-item">
           <img src="../../../assets/map/fan/black.png" />
           <span class="sub-title gray">接入台数</span>
-          <span class="sub-count font-num gray">{{ wpnumMap.djts + wpnumMap.yxts + wpnumMap.xdts +wpnumMap.gzts +wpnumMap.whts + wpnumMap.lxts}}</span>
+          <span class="sub-count font-num gray">{{
+            wpnumMap.djts +
+            wpnumMap.yxts +
+            wpnumMap.xdts +
+            wpnumMap.gzts +
+            wpnumMap.whts +
+            wpnumMap.lxts
+          }}</span>
         </div>
         <div class="sub-title-item">
           <img src="../../../assets/map/fan/green.png" />
@@ -42,20 +49,23 @@
         </div>
         <div class="sub-title-item">
           <img src="../../../assets/map/fan/black.png" />
-          <span class="sub-title gray">离线台数{{wpId}}</span>
+          <span class="sub-title gray">离线台数</span>
           <span class="sub-count font-num gray">{{ wpnumMap.lxts }}</span>
         </div>
       </div>
     </div>
     <div class="panel-body">
       <MHSFDC wpId="MHS_FDC" v-if="wpId.indexOf('MHS_FDC') !== -1" />
-	  <NSSFDC wpId="NSS_FDC" v-if="wpId.indexOf('NSS_FDC') !== -1" />
-	  <QSFDC wpId="QS_FDC" v-if="wpId.indexOf('QS_FDC') !== -1" />
-	  <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" />
+      <NSSFDC wpId="NSS_FDC" v-if="wpId.indexOf('NSS_FDC') !== -1" />
+      <QSFDC wpId="QS_FDC" v-if="wpId.indexOf('QS_FDC') !== -1" />
+      <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('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 +181,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 {
@@ -180,11 +194,15 @@ export default {
   components: {
     BtnGroup2,
     MHSFDC,
-	NSSFDC,
-	QSFDC,
-	SBQFDC,
-	XSFDC,
-    PLGDC
+    NSSFDC,
+    QSFDC,
+    SBQFDC,
+    XSFDC,
+    PLGDC,
+    DWKGDC,
+    XHGDC,
+    MCHGDC,
+    HZJGDC,
   },
   // 数据
   data() {
@@ -193,7 +211,7 @@ export default {
       wpId: undefined,
       wpnumMap: {}, //风机监视数量
       wpInfoMap: {}, //风机详情
-      fjmap: [],   // 风机名
+      fjmap: [], // 风机名
       selectIndex: 0,
       rowIndex: 0,
       btnGroups: [
@@ -221,13 +239,13 @@ export default {
       mapToolIndex: 0,
       fans: [],
       colors: {
-        "0": ["#05bb4c", "#4ad476", "#9fedb2"],
-        "1": ["#4b55ae", "#959dc7", "#d3d6e0"],
-        "2": ["#BA3237", "#d4807d", "#eddad8"],
-        "3": ["#606769", "#757575", "#AFAFAF"],
-        "4": ["#e17e23", "#fabf78", "#ffebcc"],
-        "5": ["#c531c7", "#e080dc", "#fadef7"],
-        "6": ["#c531c7", "#e080dc", "#fadef7"],
+        0: ["#05bb4c", "#4ad476", "#9fedb2"],
+        1: ["#4b55ae", "#959dc7", "#d3d6e0"],
+        2: ["#BA3237", "#d4807d", "#eddad8"],
+        3: ["#606769", "#757575", "#AFAFAF"],
+        4: ["#e17e23", "#fabf78", "#ffebcc"],
+        5: ["#c531c7", "#e080dc", "#fadef7"],
+        6: ["#c531c7", "#e080dc", "#fadef7"],
       },
       syzImg: require("@assets/png/booster-station.png"),
     };
@@ -311,73 +329,13 @@ 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;
     },
     clickFan: function (code) {
       let wtId = code.replace("G", "G01_");
       this.$router.push(`/monitor/windsite/info/${this.wpId}/${wtId}`);
-      //   console.log(wtId);
       //   this.showPopup = true;
     },
     popupBack: function () {

+ 3 - 0
src/views/WindSite/pages/Tower.vue

@@ -21,6 +21,7 @@
       :value="cftmap.KQMD || 0"
       height="9.722vh"
       width="9.722vh"
+      :style="$store.state.themeName === 'dark' ? '' : 'left:100px'"
     />
     <dash-pie-chart
       class="pie-right"
@@ -29,6 +30,7 @@
       height="9.722vh"
       width="9.722vh"
       max="500"
+      :style="$store.state.themeName === 'dark' ? '' : 'left:230px'"
     />
     <Panel class="panel-top" title="日资源玫瑰图" :bgBlur="true">
       <div class="direction-chart">
@@ -415,6 +417,7 @@ export default {
   .pie-right {
     position: fixed;
     top: 11vh;
+    transition: left 0.2s;
   }
 
   .pie-left {

+ 207 - 33
src/views/WindSite/pages/Tower/WindTower.vue

@@ -1,5 +1,11 @@
 <template>
-  <svg class="wind-tower" version="1.1" viewBox="0 0 695 625" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <svg
+    class="wind-tower"
+    version="1.1"
+    viewBox="0 0 695 625"
+    xmlns="http://www.w3.org/2000/svg"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+  >
     <defs>
       <g id="wind-tower">
         <!-- 塔横岗 -->
@@ -30,13 +36,41 @@
           y="0"
         />
         <!-- 边框左 -->
-        <rect fill="none" height="25" stroke="#05bb4caa" stroke-width="1" width="165" x="103" y="0" />
+        <rect
+          fill="none"
+          height="25"
+          :stroke="$store.state.themeName === 'dark' ? '#05bb4caa' : '#36348e'"
+          stroke-width="1"
+          width="165"
+          x="103"
+          y="0"
+        />
         <rect fill="#ffffff33" height="25" width="82.5" x="103" y="0" />
-        <rect fill="#05bb4c66" height="25" width="82.5" x="185.5" y="0" />
+        <rect
+          :fill="$store.state.themeName === 'dark' ? '#05bb4c66' : '#36348e'"
+          height="25"
+          width="82.5"
+          x="185.5"
+          y="0"
+        />
         <!-- 边框右 -->
-        <rect fill="none" height="25" stroke="#05bb4caa" stroke-width="1" width="165" x="427" y="0" />
+        <rect
+          fill="none"
+          height="25"
+          :stroke="$store.state.themeName === 'dark' ? '#05bb4caa' : '#36348e'"
+          stroke-width="1"
+          width="165"
+          x="427"
+          y="0"
+        />
         <rect fill="#ffffff33" height="25" width="82.5" x="509.5" y="0" />
-        <rect fill="#05bb4c66" height="25" width="82.5" x="427" y="0" />
+        <rect
+          :fill="$store.state.themeName === 'dark' ? '#05bb4c66' : '#36348e'"
+          height="25"
+          width="82.5"
+          x="427"
+          y="0"
+        />
       </g>
     </defs>
     <!-- 塔柱子 -->
@@ -57,52 +91,192 @@
     />
     <g>
       <use xlink:href="#wind-tower" y="30" />
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="123" y="47">{{ cftMap.FCCFTFS80 || 0 }}m/s</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="196" y="47">80米风速</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="529" y="47">{{ cftMap.FCCFTFX80 || 0 }}度</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="438" y="47">80米风向</text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="123"
+        y="47"
+      >
+        {{ cftMap.FCCFTFS80 || 0 }}m/s
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="196" y="47">
+        80米风速
+      </text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="529"
+        y="47"
+      >
+        {{ cftMap.FCCFTFX80 || 0 }}度
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="438" y="47">
+        80米风向
+      </text>
     </g>
     <g>
       <use xlink:href="#wind-tower" y="110" />
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="123" y="127">{{ cftMap.FCCFTFS70 || 0 }}m/s</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="196" y="127">70米风速</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="529" y="127">{{ cftMap.FCCFTFX70 || 0 }}度</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="438" y="127">70米风向</text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="123"
+        y="127"
+      >
+        {{ cftMap.FCCFTFS70 || 0 }}m/s
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="196" y="127">
+        70米风速
+      </text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="529"
+        y="127"
+      >
+        {{ cftMap.FCCFTFX70 || 0 }}度
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="438" y="127">
+        70米风向
+      </text>
     </g>
     <g>
       <use xlink:href="#wind-tower" y="190" />
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="123" y="207">{{ cftMap.FCCFTFS60 || 0 }}m/s</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="196" y="207">60米风速</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="529" y="207">{{ cftMap.FCCFTFX60 || 0 }}度</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="438" y="207">60米向</text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="123"
+        y="207"
+      >
+        {{ cftMap.FCCFTFS60 || 0 }}m/s
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="196" y="207">
+        60米风速
+      </text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="529"
+        y="207"
+      >
+        {{ cftMap.FCCFTFX60 || 0 }}度
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="438" y="207">
+        60米向
+      </text>
     </g>
     <g>
       <use xlink:href="#wind-tower" y="270" />
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="123" y="287">{{ cftMap.FCCFTFS50 || 0 }}m/s</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="196" y="287">50米风速</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="529" y="287">{{ cftMap.FCCFTFX50 || 0 }}度</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="438" y="287">50米风向</text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="123"
+        y="287"
+      >
+        {{ cftMap.FCCFTFS50 || 0 }}m/s
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="196" y="287">
+        50米风速
+      </text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="529"
+        y="287"
+      >
+        {{ cftMap.FCCFTFX50 || 0 }}度
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="438" y="287">
+        50米风向
+      </text>
     </g>
     <g>
       <use xlink:href="#wind-tower" y="350" />
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="123" y="367">{{ cftMap.FCCFTFS40 || 0 }}m/s</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="196" y="367">40米风速</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="529" y="367">{{ cftMap.FCCFTFX40 || 0 }}度</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="438" y="367">40米风向</text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="123"
+        y="367"
+      >
+        {{ cftMap.FCCFTFS40 || 0 }}m/s
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="196" y="367">
+        40米风速
+      </text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="529"
+        y="367"
+      >
+        {{ cftMap.FCCFTFX40 || 0 }}度
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="438" y="367">
+        40米风向
+      </text>
     </g>
     <g>
       <use xlink:href="#wind-tower" y="430" />
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="123" y="447">{{ cftMap.FCCFTFS30 || 0 }}m/s</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="196" y="447">30米风速</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="529" y="447">{{ cftMap.FCCFTFX30 || 0 }}度</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="438" y="447">30米风向</text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="123"
+        y="447"
+      >
+        {{ cftMap.FCCFTFS30 || 0 }}m/s
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="196" y="447">
+        30米风速
+      </text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="529"
+        y="447"
+      >
+        {{ cftMap.FCCFTFX30 || 0 }}度
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="438" y="447">
+        30米风向
+      </text>
     </g>
     <g>
       <use xlink:href="#wind-tower" y="510" />
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="123" y="527">{{ cftMap.FCCFTFS10 || 0 }}m/s</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="196" y="527">10米风速</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="529" y="527">{{ cftMap.FCCFTFX10 || 0 }}度</text>
-      <text fill="#ffffff" font-size="14" stroke-width="0" x="438" y="527">10米风向</text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="123"
+        y="527"
+      >
+        {{ cftMap.FCCFTFS10 || 0 }}m/s
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="196" y="527">
+        10米风速
+      </text>
+      <text
+        :fill="$store.state.themeName === 'dark' ? '#fff' : '#000'"
+        font-size="14"
+        stroke-width="0"
+        x="529"
+        y="527"
+      >
+        {{ cftMap.FCCFTFX10 || 0 }}度
+      </text>
+      <text fill="#fff" font-size="14" stroke-width="0" x="438" y="527">
+        10米风向
+      </text>
     </g>
   </svg>
 </template>

+ 5 - 1
src/views/alarmCenter/scadaAlarm.vue

@@ -232,7 +232,7 @@ export default {
           },
           {
             name: "报警等级",
-            field: "messageType",
+            field: "rank",
             is_num: false,
             is_light: false,
             sortable: true,
@@ -318,6 +318,10 @@ export default {
         },
         success(res) {
           if (res.data) {
+			  let rank = ['低','中低','中','中高','高'];
+			  res.data.records.forEach((ele,index) =>{
+				ele.rank = rank[parseInt(ele.rank) - 1]
+			  })
             that.tableData.data = res.data.records;
             that.tableData.total = res.data.total;
           } else {

+ 16 - 5
src/views/layout/Header.vue

@@ -126,7 +126,8 @@ export default {
   mounted() {
     let that = this;
     $(document).keydown((event) => {
-      if (event.keyCode == 67) { // c
+      if (event.keyCode == 67) {
+        // c
         let firstDate = new Date();
         if (that.firsttime == 0) {
           that.firsttime = firstDate.getTime();
@@ -145,9 +146,15 @@ export default {
     click(index, data) {
       this.activeIndex = index;
       this.$router.push(data.path);
+      const ActiveModule = this.menus.find((ele) => {
+        return ele.path === data.path;
+      });
+      if (ActiveModule) {
+        this.$store.dispatch("changeModuleName", ActiveModule.text);
+      }
     },
     clickSubMenu(index, code) {
-      console.log(index, code);
+      // console.log(index, code);
     },
     clickMenu() {
       this.dropdown = !this.dropdown;
@@ -155,12 +162,10 @@ export default {
     changeTheme() {
       $("#appBody").toggleClass("dark light");
       this.$store.dispatch("changeTheme", $("#appBody").attr("class"));
-      console.log(111111, $("#appBody").attr("class"));
-      console.log(222222, this.$store.state.themeName);
       this.$store.state.themeName === "dark"
         ? (this.themeName = false)
         : (this.themeName = true);
-      localStorage.setItem("authToken", this.$store.state.themeName);
+      localStorage.setItem("themeName", this.$store.state.themeName);
     },
   },
   computed: {
@@ -174,6 +179,12 @@ export default {
         this.menus.some((t, index) => {
           if (val.path.includes(t.id)) {
             this.activeIndex = index;
+            const ActiveModule = this.menus.find((ele) => {
+              return ele.path === val.path;
+            });
+            if (ActiveModule) {
+              this.$store.dispatch("changeModuleName", ActiveModule.text);
+            }
           }
         });
       },

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

@@ -419,16 +419,6 @@ export default {
                   icon: "svg-wind-site",
                   path: "/health/gzzd/malfunctionRecall",
                 },
-                // {
-                //   text: "故障分类",
-                //   icon: "svg-wind-site",
-                //   path: "/health/gzzd/gzfl",
-                // },
-                // {
-                //   text: "预警分类",
-                //   icon: "svg-wind-site",
-                //   path: "/health/gzzd/yjfl",
-                // },
               ],
             },
             {
@@ -1011,6 +1001,11 @@ export default {
                   icon: "svg-matrix",
                   path: "/others/analysis",
                 },
+                // {
+                //   text: "功率曲线综合分析",
+                //   icon: "svg-matrix",
+                //   path: "/others/powerline/analysis",
+                // },
                 {
                   text: "知识库",
                   icon: "svg-matrix",
@@ -1068,6 +1063,7 @@ export default {
       let data = this.menuData.filter((t) => {
         return t.id == this.currRoot;
       })[0].data;
+      this.$store.dispatch("changeMenuData", data);
       return data;
     },
   },

+ 1 - 1
src/views/malfunctionDiagnose/index.vue

@@ -82,7 +82,7 @@
       </div>
       <div class="query-actions">
         <button class="btn green" @click="search()">查询</button>
-		<button class="btn green" @click="">导入</button>
+		<!-- <button class="btn green" @click="">导入</button> -->
 		<button class="btn green" @click="export">导出</button>
       </div>
     </div>

+ 0 - 450
src/views/malfunctionRecall/components/fault-diagnosis.vue

@@ -114,156 +114,6 @@ export default {
                         ["2021/07/01 10:00:00", 69],
                         ["2021/07/01 15:00:00", 134],
                         ["2021/07/01 20:00:00", 262],
-                        ["2021/07/02 00:00:00", 181],
-                        ["2021/07/02 05:00:00", 72],
-                        ["2021/07/02 10:00:00", 221],
-                        ["2021/07/02 15:00:00", 184],
-                        ["2021/07/02 20:00:00", 319],
-                        ["2021/07/03 00:00:00", 283],
-                        ["2021/07/03 05:00:00", 156],
-                        ["2021/07/03 10:00:00", 308],
-                        ["2021/07/03 15:00:00", 153],
-                        ["2021/07/03 20:00:00", 67],
-                        ["2021/07/04 00:00:00", 289],
-                        ["2021/07/04 05:00:00", 194],
-                        ["2021/07/04 10:00:00", 358],
-                        ["2021/07/04 15:00:00", 325],
-                        ["2021/07/04 20:00:00", 345],
-                        ["2021/07/05 00:00:00", 242],
-                        ["2021/07/05 05:00:00", 100],
-                        ["2021/07/05 10:00:00", 225],
-                        ["2021/07/05 15:00:00", 230],
-                        ["2021/07/05 20:00:00", 162],
-                        ["2021/07/06 00:00:00", 235],
-                        ["2021/07/06 05:00:00", 237],
-                        ["2021/07/06 10:00:00", 248],
-                        ["2021/07/06 15:00:00", 350],
-                        ["2021/07/06 20:00:00", 298],
-                        ["2021/07/07 00:00:00", 295],
-                        ["2021/07/07 05:00:00", 192],
-                        ["2021/07/07 10:00:00", 54],
-                        ["2021/07/07 15:00:00", 321],
-                        ["2021/07/07 20:00:00", 104],
-                        ["2021/07/08 00:00:00", 163],
-                        ["2021/07/08 05:00:00", 177],
-                        ["2021/07/08 10:00:00", 185],
-                        ["2021/07/08 15:00:00", 120],
-                        ["2021/07/08 20:00:00", 61],
-                        ["2021/07/09 00:00:00", 104],
-                        ["2021/07/09 05:00:00", 178],
-                        ["2021/07/09 10:00:00", 90],
-                        ["2021/07/09 15:00:00", 331],
-                        ["2021/07/09 20:00:00", 217],
-                        ["2021/07/10 00:00:00", 338],
-                        ["2021/07/10 05:00:00", 155],
-                        ["2021/07/10 10:00:00", 99],
-                        ["2021/07/10 15:00:00", 109],
-                        ["2021/07/10 20:00:00", 221],
-                        ["2021/07/11 00:00:00", 281],
-                        ["2021/07/11 05:00:00", 306],
-                        ["2021/07/11 10:00:00", 246],
-                        ["2021/07/11 15:00:00", 176],
-                        ["2021/07/11 20:00:00", 348],
-                        ["2021/07/12 00:00:00", 94],
-                        ["2021/07/12 05:00:00", 100],
-                        ["2021/07/12 10:00:00", 53],
-                        ["2021/07/12 15:00:00", 269],
-                        ["2021/07/12 20:00:00", 93],
-                        ["2021/07/13 00:00:00", 178],
-                        ["2021/07/13 05:00:00", 100],
-                        ["2021/07/13 10:00:00", 53],
-                        ["2021/07/13 15:00:00", 260],
-                        ["2021/07/13 20:00:00", 114],
-                        ["2021/07/14 00:00:00", 251],
-                        ["2021/07/14 05:00:00", 250],
-                        ["2021/07/14 10:00:00", 97],
-                        ["2021/07/14 15:00:00", 283],
-                        ["2021/07/14 20:00:00", 231],
-                        ["2021/07/15 00:00:00", 359],
-                        ["2021/07/15 05:00:00", 105],
-                        ["2021/07/15 10:00:00", 229],
-                        ["2021/07/15 15:00:00", 81],
-                        ["2021/07/15 20:00:00", 353],
-                        ["2021/07/16 00:00:00", 244],
-                        ["2021/07/16 05:00:00", 231],
-                        ["2021/07/16 10:00:00", 275],
-                        ["2021/07/16 15:00:00", 273],
-                        ["2021/07/16 20:00:00", 199],
-                        ["2021/07/17 00:00:00", 124],
-                        ["2021/07/17 05:00:00", 176],
-                        ["2021/07/17 10:00:00", 149],
-                        ["2021/07/17 15:00:00", 77],
-                        ["2021/07/17 20:00:00", 168],
-                        ["2021/07/18 00:00:00", 256],
-                        ["2021/07/18 05:00:00", 138],
-                        ["2021/07/18 10:00:00", 95],
-                        ["2021/07/18 15:00:00", 313],
-                        ["2021/07/18 20:00:00", 244],
-                        ["2021/07/19 00:00:00", 169],
-                        ["2021/07/19 05:00:00", 199],
-                        ["2021/07/19 10:00:00", 91],
-                        ["2021/07/19 15:00:00", 241],
-                        ["2021/07/19 20:00:00", 344],
-                        ["2021/07/20 00:00:00", 85],
-                        ["2021/07/20 05:00:00", 332],
-                        ["2021/07/20 10:00:00", 189],
-                        ["2021/07/20 15:00:00", 81],
-                        ["2021/07/20 20:00:00", 290],
-                        ["2021/07/21 00:00:00", 214],
-                        ["2021/07/21 05:00:00", 61],
-                        ["2021/07/21 10:00:00", 339],
-                        ["2021/07/21 15:00:00", 286],
-                        ["2021/07/21 20:00:00", 89],
-                        ["2021/07/22 00:00:00", 279],
-                        ["2021/07/22 05:00:00", 229],
-                        ["2021/07/22 10:00:00", 238],
-                        ["2021/07/22 15:00:00", 86],
-                        ["2021/07/22 20:00:00", 163],
-                        ["2021/07/23 00:00:00", 140],
-                        ["2021/07/23 05:00:00", 312],
-                        ["2021/07/23 10:00:00", 134],
-                        ["2021/07/23 15:00:00", 53],
-                        ["2021/07/23 20:00:00", 235],
-                        ["2021/07/24 00:00:00", 97],
-                        ["2021/07/24 05:00:00", 309],
-                        ["2021/07/24 10:00:00", 147],
-                        ["2021/07/24 15:00:00", 258],
-                        ["2021/07/24 20:00:00", 192],
-                        ["2021/07/25 00:00:00", 305],
-                        ["2021/07/25 05:00:00", 282],
-                        ["2021/07/25 10:00:00", 72],
-                        ["2021/07/25 15:00:00", 258],
-                        ["2021/07/25 20:00:00", 312],
-                        ["2021/07/26 00:00:00", 259],
-                        ["2021/07/26 05:00:00", 146],
-                        ["2021/07/26 10:00:00", 93],
-                        ["2021/07/26 15:00:00", 158],
-                        ["2021/07/26 20:00:00", 156],
-                        ["2021/07/27 00:00:00", 362],
-                        ["2021/07/27 05:00:00", 193],
-                        ["2021/07/27 10:00:00", 177],
-                        ["2021/07/27 15:00:00", 313],
-                        ["2021/07/27 20:00:00", 60],
-                        ["2021/07/28 00:00:00", 119],
-                        ["2021/07/28 05:00:00", 142],
-                        ["2021/07/28 10:00:00", 283],
-                        ["2021/07/28 15:00:00", 105],
-                        ["2021/07/28 20:00:00", 121],
-                        ["2021/07/29 00:00:00", 304],
-                        ["2021/07/29 05:00:00", 82],
-                        ["2021/07/29 10:00:00", 326],
-                        ["2021/07/29 15:00:00", 216],
-                        ["2021/07/29 20:00:00", 223],
-                        ["2021/07/30 00:00:00", 218],
-                        ["2021/07/30 05:00:00", 313],
-                        ["2021/07/30 10:00:00", 339],
-                        ["2021/07/30 15:00:00", 125],
-                        ["2021/07/30 20:00:00", 244],
-                        ["2021/07/31 00:00:00", 179],
-                        ["2021/07/31 05:00:00", 360],
-                        ["2021/07/31 10:00:00", 267],
-                        ["2021/07/31 15:00:00", 85],
-                        ["2021/07/31 20:00:00", 309]
                     ],
                 },
                 {
@@ -275,156 +125,6 @@ export default {
                         ["2021/07/01 10:00:00", 290],
                         ["2021/07/01 15:00:00", 140],
                         ["2021/07/01 20:00:00", 203],
-                        ["2021/07/02 00:00:00", 280],
-                        ["2021/07/02 05:00:00", 283],
-                        ["2021/07/02 10:00:00", 252],
-                        ["2021/07/02 15:00:00", 155],
-                        ["2021/07/02 20:00:00", 133],
-                        ["2021/07/03 00:00:00", 94],
-                        ["2021/07/03 05:00:00", 191],
-                        ["2021/07/03 10:00:00", 193],
-                        ["2021/07/03 15:00:00", 205],
-                        ["2021/07/03 20:00:00", 301],
-                        ["2021/07/04 00:00:00", 101],
-                        ["2021/07/04 05:00:00", 257],
-                        ["2021/07/04 10:00:00", 82],
-                        ["2021/07/04 15:00:00", 75],
-                        ["2021/07/04 20:00:00", 254],
-                        ["2021/07/05 00:00:00", 184],
-                        ["2021/07/05 05:00:00", 146],
-                        ["2021/07/05 10:00:00", 272],
-                        ["2021/07/05 15:00:00", 100],
-                        ["2021/07/05 20:00:00", 118],
-                        ["2021/07/06 00:00:00", 125],
-                        ["2021/07/06 05:00:00", 80],
-                        ["2021/07/06 10:00:00", 144],
-                        ["2021/07/06 15:00:00", 100],
-                        ["2021/07/06 20:00:00", 232],
-                        ["2021/07/07 00:00:00", 139],
-                        ["2021/07/07 05:00:00", 311],
-                        ["2021/07/07 10:00:00", 152],
-                        ["2021/07/07 15:00:00", 182],
-                        ["2021/07/07 20:00:00", 162],
-                        ["2021/07/08 00:00:00", 175],
-                        ["2021/07/08 05:00:00", 95],
-                        ["2021/07/08 10:00:00", 300],
-                        ["2021/07/08 15:00:00", 290],
-                        ["2021/07/08 20:00:00", 218],
-                        ["2021/07/09 00:00:00", 106],
-                        ["2021/07/09 05:00:00", 301],
-                        ["2021/07/09 10:00:00", 221],
-                        ["2021/07/09 15:00:00", 126],
-                        ["2021/07/09 20:00:00", 149],
-                        ["2021/07/10 00:00:00", 308],
-                        ["2021/07/10 05:00:00", 187],
-                        ["2021/07/10 10:00:00", 164],
-                        ["2021/07/10 15:00:00", 139],
-                        ["2021/07/10 20:00:00", 199],
-                        ["2021/07/11 00:00:00", 71],
-                        ["2021/07/11 05:00:00", 198],
-                        ["2021/07/11 10:00:00", 121],
-                        ["2021/07/11 15:00:00", 242],
-                        ["2021/07/11 20:00:00", 286],
-                        ["2021/07/12 00:00:00", 198],
-                        ["2021/07/12 05:00:00", 275],
-                        ["2021/07/12 10:00:00", 63],
-                        ["2021/07/12 15:00:00", 229],
-                        ["2021/07/12 20:00:00", 272],
-                        ["2021/07/13 00:00:00", 266],
-                        ["2021/07/13 05:00:00", 305],
-                        ["2021/07/13 10:00:00", 218],
-                        ["2021/07/13 15:00:00", 273],
-                        ["2021/07/13 20:00:00", 112],
-                        ["2021/07/14 00:00:00", 243],
-                        ["2021/07/14 05:00:00", 105],
-                        ["2021/07/14 10:00:00", 147],
-                        ["2021/07/14 15:00:00", 301],
-                        ["2021/07/14 20:00:00", 145],
-                        ["2021/07/15 00:00:00", 136],
-                        ["2021/07/15 05:00:00", 153],
-                        ["2021/07/15 10:00:00", 251],
-                        ["2021/07/15 15:00:00", 76],
-                        ["2021/07/15 20:00:00", 296],
-                        ["2021/07/16 00:00:00", 128],
-                        ["2021/07/16 05:00:00", 94],
-                        ["2021/07/16 10:00:00", 236],
-                        ["2021/07/16 15:00:00", 202],
-                        ["2021/07/16 20:00:00", 94],
-                        ["2021/07/17 00:00:00", 169],
-                        ["2021/07/17 05:00:00", 93],
-                        ["2021/07/17 10:00:00", 297],
-                        ["2021/07/17 15:00:00", 110],
-                        ["2021/07/17 20:00:00", 271],
-                        ["2021/07/18 00:00:00", 98],
-                        ["2021/07/18 05:00:00", 169],
-                        ["2021/07/18 10:00:00", 114],
-                        ["2021/07/18 15:00:00", 190],
-                        ["2021/07/18 20:00:00", 62],
-                        ["2021/07/19 00:00:00", 151],
-                        ["2021/07/19 05:00:00", 239],
-                        ["2021/07/19 10:00:00", 135],
-                        ["2021/07/19 15:00:00", 281],
-                        ["2021/07/19 20:00:00", 190],
-                        ["2021/07/20 00:00:00", 65],
-                        ["2021/07/20 05:00:00", 207],
-                        ["2021/07/20 10:00:00", 140],
-                        ["2021/07/20 15:00:00", 272],
-                        ["2021/07/20 20:00:00", 195],
-                        ["2021/07/21 00:00:00", 66],
-                        ["2021/07/21 05:00:00", 163],
-                        ["2021/07/21 10:00:00", 306],
-                        ["2021/07/21 15:00:00", 213],
-                        ["2021/07/21 20:00:00", 154],
-                        ["2021/07/22 00:00:00", 305],
-                        ["2021/07/22 05:00:00", 223],
-                        ["2021/07/22 10:00:00", 201],
-                        ["2021/07/22 15:00:00", 224],
-                        ["2021/07/22 20:00:00", 63],
-                        ["2021/07/23 00:00:00", 226],
-                        ["2021/07/23 05:00:00", 75],
-                        ["2021/07/23 10:00:00", 309],
-                        ["2021/07/23 15:00:00", 191],
-                        ["2021/07/23 20:00:00", 219],
-                        ["2021/07/24 00:00:00", 142],
-                        ["2021/07/24 05:00:00", 162],
-                        ["2021/07/24 10:00:00", 260],
-                        ["2021/07/24 15:00:00", 260],
-                        ["2021/07/24 20:00:00", 249],
-                        ["2021/07/25 00:00:00", 278],
-                        ["2021/07/25 05:00:00", 187],
-                        ["2021/07/25 10:00:00", 101],
-                        ["2021/07/25 15:00:00", 200],
-                        ["2021/07/25 20:00:00", 261],
-                        ["2021/07/26 00:00:00", 161],
-                        ["2021/07/26 05:00:00", 227],
-                        ["2021/07/26 10:00:00", 289],
-                        ["2021/07/26 15:00:00", 85],
-                        ["2021/07/26 20:00:00", 88],
-                        ["2021/07/27 00:00:00", 237],
-                        ["2021/07/27 05:00:00", 198],
-                        ["2021/07/27 10:00:00", 260],
-                        ["2021/07/27 15:00:00", 146],
-                        ["2021/07/27 20:00:00", 288],
-                        ["2021/07/28 00:00:00", 213],
-                        ["2021/07/28 05:00:00", 250],
-                        ["2021/07/28 10:00:00", 77],
-                        ["2021/07/28 15:00:00", 75],
-                        ["2021/07/28 20:00:00", 153],
-                        ["2021/07/29 00:00:00", 263],
-                        ["2021/07/29 05:00:00", 173],
-                        ["2021/07/29 10:00:00", 105],
-                        ["2021/07/29 15:00:00", 239],
-                        ["2021/07/29 20:00:00", 69],
-                        ["2021/07/30 00:00:00", 126],
-                        ["2021/07/30 05:00:00", 238],
-                        ["2021/07/30 10:00:00", 62],
-                        ["2021/07/30 15:00:00", 277],
-                        ["2021/07/30 20:00:00", 61],
-                        ["2021/07/31 00:00:00", 91],
-                        ["2021/07/31 05:00:00", 201],
-                        ["2021/07/31 10:00:00", 238],
-                        ["2021/07/31 15:00:00", 307],
-                        ["2021/07/31 20:00:00", 86]
                     ],
                 },
                 {
@@ -436,156 +136,6 @@ export default {
                         ["2021/07/01 10:00:00", 231],
                         ["2021/07/01 15:00:00", 305],
                         ["2021/07/01 20:00:00", 230],
-                        ["2021/07/02 00:00:00", 248],
-                        ["2021/07/02 05:00:00", 295],
-                        ["2021/07/02 10:00:00", 147],
-                        ["2021/07/02 15:00:00", 242],
-                        ["2021/07/02 20:00:00", 317],
-                        ["2021/07/03 00:00:00", 218],
-                        ["2021/07/03 05:00:00", 217],
-                        ["2021/07/03 10:00:00", 274],
-                        ["2021/07/03 15:00:00", 329],
-                        ["2021/07/03 20:00:00", 148],
-                        ["2021/07/04 00:00:00", 316],
-                        ["2021/07/04 05:00:00", 270],
-                        ["2021/07/04 10:00:00", 173],
-                        ["2021/07/04 15:00:00", 318],
-                        ["2021/07/04 20:00:00", 297],
-                        ["2021/07/05 00:00:00", 322],
-                        ["2021/07/05 05:00:00", 182],
-                        ["2021/07/05 10:00:00", 170],
-                        ["2021/07/05 15:00:00", 199],
-                        ["2021/07/05 20:00:00", 258],
-                        ["2021/07/06 00:00:00", 128],
-                        ["2021/07/06 05:00:00", 323],
-                        ["2021/07/06 10:00:00", 142],
-                        ["2021/07/06 15:00:00", 312],
-                        ["2021/07/06 20:00:00", 174],
-                        ["2021/07/07 00:00:00", 158],
-                        ["2021/07/07 05:00:00", 317],
-                        ["2021/07/07 10:00:00", 154],
-                        ["2021/07/07 15:00:00", 262],
-                        ["2021/07/07 20:00:00", 180],
-                        ["2021/07/08 00:00:00", 204],
-                        ["2021/07/08 05:00:00", 307],
-                        ["2021/07/08 10:00:00", 232],
-                        ["2021/07/08 15:00:00", 124],
-                        ["2021/07/08 20:00:00", 126],
-                        ["2021/07/09 00:00:00", 300],
-                        ["2021/07/09 05:00:00", 289],
-                        ["2021/07/09 10:00:00", 278],
-                        ["2021/07/09 15:00:00", 211],
-                        ["2021/07/09 20:00:00", 116],
-                        ["2021/07/10 00:00:00", 271],
-                        ["2021/07/10 05:00:00", 197],
-                        ["2021/07/10 10:00:00", 296],
-                        ["2021/07/10 15:00:00", 107],
-                        ["2021/07/10 20:00:00", 153],
-                        ["2021/07/11 00:00:00", 221],
-                        ["2021/07/11 05:00:00", 196],
-                        ["2021/07/11 10:00:00", 108],
-                        ["2021/07/11 15:00:00", 190],
-                        ["2021/07/11 20:00:00", 141],
-                        ["2021/07/12 00:00:00", 98],
-                        ["2021/07/12 05:00:00", 192],
-                        ["2021/07/12 10:00:00", 190],
-                        ["2021/07/12 15:00:00", 327],
-                        ["2021/07/12 20:00:00", 260],
-                        ["2021/07/13 00:00:00", 221],
-                        ["2021/07/13 05:00:00", 240],
-                        ["2021/07/13 10:00:00", 280],
-                        ["2021/07/13 15:00:00", 234],
-                        ["2021/07/13 20:00:00", 326],
-                        ["2021/07/14 00:00:00", 143],
-                        ["2021/07/14 05:00:00", 329],
-                        ["2021/07/14 10:00:00", 156],
-                        ["2021/07/14 15:00:00", 152],
-                        ["2021/07/14 20:00:00", 316],
-                        ["2021/07/15 00:00:00", 125],
-                        ["2021/07/15 05:00:00", 322],
-                        ["2021/07/15 10:00:00", 174],
-                        ["2021/07/15 15:00:00", 286],
-                        ["2021/07/15 20:00:00", 122],
-                        ["2021/07/16 00:00:00", 145],
-                        ["2021/07/16 05:00:00", 122],
-                        ["2021/07/16 10:00:00", 313],
-                        ["2021/07/16 15:00:00", 144],
-                        ["2021/07/16 20:00:00", 150],
-                        ["2021/07/17 00:00:00", 322],
-                        ["2021/07/17 05:00:00", 130],
-                        ["2021/07/17 10:00:00", 189],
-                        ["2021/07/17 15:00:00", 99],
-                        ["2021/07/17 20:00:00", 165],
-                        ["2021/07/18 00:00:00", 235],
-                        ["2021/07/18 05:00:00", 127],
-                        ["2021/07/18 10:00:00", 104],
-                        ["2021/07/18 15:00:00", 233],
-                        ["2021/07/18 20:00:00", 178],
-                        ["2021/07/19 00:00:00", 171],
-                        ["2021/07/19 05:00:00", 123],
-                        ["2021/07/19 10:00:00", 305],
-                        ["2021/07/19 15:00:00", 113],
-                        ["2021/07/19 20:00:00", 299],
-                        ["2021/07/20 00:00:00", 157],
-                        ["2021/07/20 05:00:00", 165],
-                        ["2021/07/20 10:00:00", 147],
-                        ["2021/07/20 15:00:00", 181],
-                        ["2021/07/20 20:00:00", 261],
-                        ["2021/07/21 00:00:00", 123],
-                        ["2021/07/21 05:00:00", 317],
-                        ["2021/07/21 10:00:00", 203],
-                        ["2021/07/21 15:00:00", 284],
-                        ["2021/07/21 20:00:00", 232],
-                        ["2021/07/22 00:00:00", 124],
-                        ["2021/07/22 05:00:00", 106],
-                        ["2021/07/22 10:00:00", 233],
-                        ["2021/07/22 15:00:00", 169],
-                        ["2021/07/22 20:00:00", 214],
-                        ["2021/07/23 00:00:00", 122],
-                        ["2021/07/23 05:00:00", 145],
-                        ["2021/07/23 10:00:00", 160],
-                        ["2021/07/23 15:00:00", 260],
-                        ["2021/07/23 20:00:00", 310],
-                        ["2021/07/24 00:00:00", 234],
-                        ["2021/07/24 05:00:00", 130],
-                        ["2021/07/24 10:00:00", 248],
-                        ["2021/07/24 15:00:00", 257],
-                        ["2021/07/24 20:00:00", 178],
-                        ["2021/07/25 00:00:00", 239],
-                        ["2021/07/25 05:00:00", 111],
-                        ["2021/07/25 10:00:00", 159],
-                        ["2021/07/25 15:00:00", 101],
-                        ["2021/07/25 20:00:00", 237],
-                        ["2021/07/26 00:00:00", 299],
-                        ["2021/07/26 05:00:00", 319],
-                        ["2021/07/26 10:00:00", 135],
-                        ["2021/07/26 15:00:00", 250],
-                        ["2021/07/26 20:00:00", 308],
-                        ["2021/07/27 00:00:00", 208],
-                        ["2021/07/27 05:00:00", 208],
-                        ["2021/07/27 10:00:00", 324],
-                        ["2021/07/27 15:00:00", 122],
-                        ["2021/07/27 20:00:00", 117],
-                        ["2021/07/28 00:00:00", 129],
-                        ["2021/07/28 05:00:00", 121],
-                        ["2021/07/28 10:00:00", 166],
-                        ["2021/07/28 15:00:00", 303],
-                        ["2021/07/28 20:00:00", 262],
-                        ["2021/07/29 00:00:00", 200],
-                        ["2021/07/29 05:00:00", 229],
-                        ["2021/07/29 10:00:00", 122],
-                        ["2021/07/29 15:00:00", 122],
-                        ["2021/07/29 20:00:00", 225],
-                        ["2021/07/30 00:00:00", 227],
-                        ["2021/07/30 05:00:00", 247],
-                        ["2021/07/30 10:00:00", 102],
-                        ["2021/07/30 15:00:00", 285],
-                        ["2021/07/30 20:00:00", 167],
-                        ["2021/07/31 00:00:00", 119],
-                        ["2021/07/31 05:00:00", 212],
-                        ["2021/07/31 10:00:00", 277],
-                        ["2021/07/31 15:00:00", 159],
-                        ["2021/07/31 20:00:00", 179]
                     ],
                 },
                 {

+ 1 - 1
src/views/report/ExportExcel.vue

@@ -4,7 +4,7 @@
       style="
         margin-bottom: 15px;
         padding-bottom: 15px;
-        border-bottom: 2px solid #eee8d5;
+        border-bottom: 2px solid #ffffff;
       "
     >
       <el-col :span="12">

+ 1 - 1
src/views/sampleDatabase/performance/performanceEcharts.vue

@@ -76,7 +76,7 @@ export default {
           itemHeight: 8,
           textStyle: {
             fontSize: "14px",
-            color: "#fff",
+            color: "#000"
           },
         },
         dataset: [

+ 368 - 0
src/views/sampleDatabase/powerlineAnalysis/index.vue

@@ -0,0 +1,368 @@
+<template>
+  <div>
+    <!-- <div>
+      <panel :title="'偏航对风分析'" :showLine="false">
+        <div style="height: 200px" class="chart" id="linechart"></div>
+      </panel>
+    </div> -->
+    <div>
+      <panel :title="'功率曲线拟合'" :showLine="false">
+        <el-button @click="get()">查询</el-button>
+        <ScatterLineChart
+          xTitle="风速(m/s)"
+          yTitle="功率(kw)"
+          :showLegend="true"
+          :height="'calc(70vh)'"
+          :symbolSize="5"
+          :data="scatterData"
+          :lineData="lineData"
+        ></ScatterLineChart>
+      </panel>
+    </div>
+  </div>
+</template>
+
+<script>
+import Panel from "../../../components/coms/panel/panel.vue";
+import ScatterLineChart from "./scatter-line-chart.vue";
+import util from "@/helper/util.js";
+import partten from "@/helper/partten.js";
+import * as echarts from "echarts";
+
+export default {
+  // 使用组件
+  components: {
+    Panel,
+    ScatterLineChart,
+  },
+  data() {
+    return {
+      scatterData: [
+        {
+          title: "",
+          value: [],
+        },
+      ],
+      lineData: { legends: [], data: [[], []] },
+    };
+  },
+  created() {
+    this.$nextTick(() => {
+      // this.getPHAnalyse();
+      this.get();
+    });
+  },
+  methods: {
+    get() {
+      // this.getPHAnalyse();
+      this.getScatter();
+    },
+    //散点数据
+    getScatter() {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        showLoading: true,
+        baseURL: "http://192.168.10.5:9002/",
+        subUrl: "scatter/list",
+        data: {
+          station: "NSS_FDC",
+          wtId: "NG01_01",
+          time: "2021-11",
+        },
+        success(res) {
+          if (res.code == 200 && res.data) {
+            let scatterArr = [
+              {
+                title: "NG01有用点",
+                value: res.data.scatter,
+              },
+            ];
+            that.scatterData = scatterArr;
+            let lineArr = {
+              legends: [],
+              data: [[],[]],
+            };
+
+            res.data.lineactual.forEach((ele) => {
+              lineArr.data[0].push(ele[1]);
+            });
+            res.data.lineoptimal.forEach((ele) => {
+              lineArr.data[1].push(ele[1]);
+            });
+
+            that.lineData = lineArr;
+          }
+        },
+      });
+    },
+    //偏航对风分析
+    getPHAnalyse() {
+      let that = this;
+      //  that.API.requestData({
+      //    method: "POST",
+      //    baseURL: "http://192.168.10.5:9002/",
+      //    subUrl: "scatter/range",
+      //    data: {
+      //      station: "NSS_FDC",
+      //      wtId: "NG01_01",
+      //      time: "2021-11",
+      //    },
+      //    success(res) {
+      //      if (res.code == 200 && res.data) {
+      const xData = [
+        "-50",
+        "-49",
+        "-48",
+        "-47",
+        "-46",
+        "-45",
+        "-44",
+        "-43",
+        "-42",
+        "-41",
+        "-40",
+        "-39",
+        "-38",
+        "-37",
+        "-36",
+        "-35",
+        "-34",
+        "-33",
+        "-32",
+        "-31",
+        "-30",
+        "-29",
+        "-28",
+        "-27",
+        "-26",
+        "-25",
+        "-24",
+        "-23",
+        "-22",
+        "-21",
+        "-20",
+        "-19",
+        "-18",
+        "-17",
+        "-16",
+        "-15",
+        "-14",
+        "-13",
+        "-12",
+        "-11",
+        "-10",
+        "-9",
+        "-8",
+        "-7",
+        "-6",
+        "-5",
+        "-4",
+        "-3",
+        "-2",
+        "-1",
+        "0",
+        "1",
+        "2",
+        "3",
+        "4",
+        "5",
+        "6",
+        "7",
+        "8",
+        "9",
+        "10",
+        "11",
+        "12",
+        "13",
+        "14",
+        "15",
+        "16",
+        "17",
+        "18",
+        "19",
+        "20",
+        "21",
+        "22",
+        "23",
+        "24",
+        "25",
+        "26",
+        "27",
+        "28",
+        "29",
+        "30",
+        "31",
+        "32",
+        "33",
+        "34",
+        "35",
+        "36",
+        "37",
+        "38",
+        "39",
+        "40",
+        "41",
+        "42",
+        "43",
+        "44",
+        "45",
+        "46",
+        "47",
+        "48",
+        "49",
+        "50",
+      ];
+      const lData = [
+        1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 4, 3, 3, 1, 3, 1, 2, 5, 5, 5, 5,
+        9, 15, 16, 25, 39, 42, 62, 77, 103, 108, 161, 189, 238, 309, 418, 480,
+        538, 635, 777, 877, 1021, 1170, 1224, 1341, 1409, 1421, 3016, 1493,
+        1437, 1389, 1334, 1177, 1135, 1031, 865, 693, 599, 538, 404, 318, 252,
+        207, 200, 140, 103, 81, 77, 66, 46, 32, 27, 16, 19, 9, 4, 9, 10, 5, 7,
+        7, 3, 1, 3, 2, 1, 1, 0, 0, 2, 2, 1, 1, 0, 1, 1, 0, 2,
+      ];
+      //   const dataMap = res.data[0];
+      //   for (let key in dataMap) {
+      //     let tmpKey = key.replace(/r/, "");
+      //     tmpKey = tmpKey.replace(/f/, "-");
+      //     if (tmpKey < 100) {
+      //       xData.push(tmpKey);
+      //       lData.push(dataMap[key]);
+      //     }
+      //   }
+      console.log(xData);
+      console.log(lData);
+      let option = {
+        color: ["#05bb4c", "#4b55ae", "#fa8c16", "#f8de5b"],
+        tooltip: {
+          trigger: "axis",
+          backgroundColor: "rgba(0,0,0,0.4)",
+          borderColor: partten.getColor("gray"),
+          textStyle: {
+            color: "#fff",
+            fontSize: util.vh(16),
+          },
+        },
+        legend: {
+          show: false,
+          data: ["偏航次数"],
+          right: 56,
+          icon: "circle",
+          itemWidth: 6,
+          inactiveColor: "#606769",
+          textStyle: {
+            color: partten.getColor("grayl"),
+            fontSize: 12,
+          },
+        },
+        toolbox: {
+          brush: {
+            type: ["lineX", "clear"],
+          },
+        },
+        //拖动选择属性
+        brush: {
+          xAxisIndex: "all",
+          brushLink: "all",
+          throttleDelay: 1,
+          outOfBrush: {
+            colorAlpha: 0.5,
+          },
+        },
+        grid: {
+          top: util.vh(40),
+          left: util.vh(60),
+          right: util.vh(130),
+          bottom: util.vh(24),
+        },
+        xAxis: [
+          {
+            name: "对风偏差(度)",
+            type: "category",
+            boundaryGap: false,
+            axisLabel: {
+              formatter: "{value}",
+              fontSize: util.vh(14),
+              textStyle: {
+                color: partten.getColor("gray"),
+              },
+            },
+            data: xData,
+          },
+        ],
+        yAxis: [
+          {
+            type: "value",
+            name: "数量",
+            axisLabel: {
+              formatter: "{value}",
+              fontSize: util.vh(14),
+            },
+            splitLine: {
+              lineStyle: {
+                color: partten.getColor("gray") + 55,
+                type: "dashed",
+              },
+            },
+          },
+        ],
+        series: [
+          {
+            name: "数量",
+            type: "line",
+            smooth: true,
+            zlevel: 0,
+            lineStyle: {
+              normal: {
+                color: "#05bb4c",
+                width: 1,
+              },
+            },
+            yAxisIndex: 0,
+            data: lData,
+          },
+        ],
+      };
+      const chart = echarts.init(document.getElementById("linechart"));
+      chart.clear();
+      chart.setOption(option);
+      //拖动选择属性
+      chart.dispatchAction({
+        type: "brush",
+        areas: [
+          {
+            brushType: "lineX",
+            coordRange: ["-15", "15"],
+            xAxisIndex: 0,
+          },
+        ],
+      });
+      chart.on("brushSelected", function (params) {
+        var mainSeries = params.batch[0].areas;
+        var selectedItems = []; //选中区域的横纵标
+        for (var i = 0; i < mainSeries.length; i++) {
+          if (mainSeries[i].coordRange && mainSeries[i].coordRange.length > 0) {
+            for (var j = 0; j < mainSeries[i].coordRange.length; j++) {
+              selectedItems.push(mainSeries[i].coordRange[j]);
+            }
+          }
+        }
+
+        console.log(selectedItems);
+      });
+
+      this.resize = function () {
+        chart.resize();
+      };
+      window.addEventListener("resize", this.resize);
+      // }
+      //    },
+      //  });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+</style>
+

+ 810 - 0
src/views/sampleDatabase/powerlineAnalysis/scatter-line-chart.vue

@@ -0,0 +1,810 @@
+<template>
+  <div class="chart" :id="id"></div>
+</template>
+
+<script>
+import util from "@/helper/util.js";
+import partten from "@/helper/partten.js";
+import * as echarts from "echarts";
+
+export default {
+  props: {
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "350px",
+    },
+    symbolSize: {
+      type: Number,
+      default: 5
+    },
+    // 传入数据
+    data: {
+      type: Array,
+      default: () => [
+        {
+          title: "男",
+          value: [
+            [161.2, 51.6],
+            [167.5, 59.0],
+            [159.5, 49.2],
+            [157.0, 63.0],
+            [155.8, 53.6],
+            [170.0, 59.0],
+            [159.1, 47.6],
+            [166.0, 69.8],
+            [176.2, 66.8],
+            [160.2, 75.2],
+            [172.5, 55.2],
+            [170.9, 54.2],
+            [172.9, 62.5],
+            [153.4, 42.0],
+            [160.0, 50.0],
+            [147.2, 49.8],
+            [168.2, 49.2],
+            [175.0, 73.2],
+            [157.0, 47.8],
+            [167.6, 68.8],
+            [159.5, 50.6],
+            [175.0, 82.5],
+            [166.8, 57.2],
+            [176.5, 87.8],
+            [170.2, 72.8],
+            [174.0, 54.5],
+            [173.0, 59.8],
+            [179.9, 67.3],
+            [170.5, 67.8],
+            [160.0, 47.0],
+            [154.4, 46.2],
+            [162.0, 55.0],
+            [176.5, 83.0],
+            [160.0, 54.4],
+            [152.0, 45.8],
+            [162.1, 53.6],
+            [170.0, 73.2],
+            [160.2, 52.1],
+            [161.3, 67.9],
+            [166.4, 56.6],
+            [168.9, 62.3],
+            [163.8, 58.5],
+            [167.6, 54.5],
+            [160.0, 50.2],
+            [161.3, 60.3],
+            [167.6, 58.3],
+            [165.1, 56.2],
+            [160.0, 50.2],
+            [170.0, 72.9],
+            [157.5, 59.8],
+            [167.6, 61.0],
+            [160.7, 69.1],
+            [163.2, 55.9],
+            [152.4, 46.5],
+            [157.5, 54.3],
+            [168.3, 54.8],
+            [180.3, 60.7],
+            [165.5, 60.0],
+            [165.0, 62.0],
+            [164.5, 60.3],
+            [156.0, 52.7],
+            [160.0, 74.3],
+            [163.0, 62.0],
+            [165.7, 73.1],
+            [161.0, 80.0],
+            [162.0, 54.7],
+            [166.0, 53.2],
+            [174.0, 75.7],
+            [172.7, 61.1],
+            [167.6, 55.7],
+            [151.1, 48.7],
+            [164.5, 52.3],
+            [163.5, 50.0],
+            [152.0, 59.3],
+            [169.0, 62.5],
+            [164.0, 55.7],
+            [161.2, 54.8],
+            [155.0, 45.9],
+            [170.0, 70.6],
+            [176.2, 67.2],
+            [170.0, 69.4],
+            [162.5, 58.2],
+            [170.3, 64.8],
+            [164.1, 71.6],
+            [169.5, 52.8],
+            [163.2, 59.8],
+            [154.5, 49.0],
+            [159.8, 50.0],
+            [173.2, 69.2],
+            [170.0, 55.9],
+            [161.4, 63.4],
+            [169.0, 58.2],
+            [166.2, 58.6],
+            [159.4, 45.7],
+            [162.5, 52.2],
+            [159.0, 48.6],
+            [162.8, 57.8],
+            [159.0, 55.6],
+            [179.8, 66.8],
+            [162.9, 59.4],
+            [161.0, 53.6],
+            [151.1, 73.2],
+            [168.2, 53.4],
+            [168.9, 69.0],
+            [173.2, 58.4],
+            [171.8, 56.2],
+            [178.0, 70.6],
+            [164.3, 59.8],
+            [163.0, 72.0],
+            [168.5, 65.2],
+            [166.8, 56.6],
+            [172.7, 105.2],
+            [163.5, 51.8],
+            [169.4, 63.4],
+            [167.8, 59.0],
+            [159.5, 47.6],
+            [167.6, 63.0],
+            [161.2, 55.2],
+            [160.0, 45.0],
+            [163.2, 54.0],
+            [162.2, 50.2],
+            [161.3, 60.2],
+            [149.5, 44.8],
+            [157.5, 58.8],
+            [163.2, 56.4],
+            [172.7, 62.0],
+            [155.0, 49.2],
+            [156.5, 67.2],
+            [164.0, 53.8],
+            [160.9, 54.4],
+            [162.8, 58.0],
+            [167.0, 59.8],
+            [160.0, 54.8],
+            [160.0, 43.2],
+            [168.9, 60.5],
+            [158.2, 46.4],
+            [156.0, 64.4],
+            [160.0, 48.8],
+            [167.1, 62.2],
+            [158.0, 55.5],
+            [167.6, 57.8],
+            [156.0, 54.6],
+            [162.1, 59.2],
+            [173.4, 52.7],
+            [159.8, 53.2],
+            [170.5, 64.5],
+            [159.2, 51.8],
+            [157.5, 56.0],
+            [161.3, 63.6],
+            [162.6, 63.2],
+            [160.0, 59.5],
+            [168.9, 56.8],
+            [165.1, 64.1],
+            [162.6, 50.0],
+            [165.1, 72.3],
+            [166.4, 55.0],
+            [160.0, 55.9],
+            [152.4, 60.4],
+            [170.2, 69.1],
+            [162.6, 84.5],
+            [170.2, 55.9],
+            [158.8, 55.5],
+            [172.7, 69.5],
+            [167.6, 76.4],
+            [162.6, 61.4],
+            [167.6, 65.9],
+            [156.2, 58.6],
+            [175.2, 66.8],
+            [172.1, 56.6],
+            [162.6, 58.6],
+            [160.0, 55.9],
+            [165.1, 59.1],
+            [182.9, 81.8],
+            [166.4, 70.7],
+            [165.1, 56.8],
+            [177.8, 60.0],
+            [165.1, 58.2],
+            [175.3, 72.7],
+            [154.9, 54.1],
+            [158.8, 49.1],
+            [172.7, 75.9],
+            [168.9, 55.0],
+            [161.3, 57.3],
+            [167.6, 55.0],
+            [165.1, 65.5],
+            [175.3, 65.5],
+            [157.5, 48.6],
+            [163.8, 58.6],
+            [167.6, 63.6],
+            [165.1, 55.2],
+            [165.1, 62.7],
+            [168.9, 56.6],
+            [162.6, 53.9],
+            [164.5, 63.2],
+            [176.5, 73.6],
+            [168.9, 62.0],
+            [175.3, 63.6],
+            [159.4, 53.2],
+            [160.0, 53.4],
+            [170.2, 55.0],
+            [162.6, 70.5],
+            [167.6, 54.5],
+            [162.6, 54.5],
+            [160.7, 55.9],
+            [160.0, 59.0],
+            [157.5, 63.6],
+            [162.6, 54.5],
+            [152.4, 47.3],
+            [170.2, 67.7],
+            [165.1, 80.9],
+            [172.7, 70.5],
+            [165.1, 60.9],
+            [170.2, 63.6],
+            [170.2, 54.5],
+            [170.2, 59.1],
+            [161.3, 70.5],
+            [167.6, 52.7],
+            [167.6, 62.7],
+            [165.1, 86.3],
+            [162.6, 66.4],
+            [152.4, 67.3],
+            [168.9, 63.0],
+            [170.2, 73.6],
+            [175.2, 62.3],
+            [175.2, 57.7],
+            [160.0, 55.4],
+            [165.1, 104.1],
+            [174.0, 55.5],
+            [170.2, 77.3],
+            [160.0, 80.5],
+            [167.6, 64.5],
+            [167.6, 72.3],
+            [167.6, 61.4],
+            [154.9, 58.2],
+            [162.6, 81.8],
+            [175.3, 63.6],
+            [171.4, 53.4],
+            [157.5, 54.5],
+            [165.1, 53.6],
+            [160.0, 60.0],
+            [174.0, 73.6],
+            [162.6, 61.4],
+            [174.0, 55.5],
+            [162.6, 63.6],
+            [161.3, 60.9],
+            [156.2, 60.0],
+            [149.9, 46.8],
+            [169.5, 57.3],
+            [160.0, 64.1],
+            [175.3, 63.6],
+            [169.5, 67.3],
+            [160.0, 75.5],
+            [172.7, 68.2],
+            [162.6, 61.4],
+            [157.5, 76.8],
+            [176.5, 71.8],
+            [164.4, 55.5],
+            [160.7, 48.6],
+            [174.0, 66.4],
+            [163.8, 67.3],
+          ],
+        },
+        {
+          title: "女",
+          value: [
+            [174.0, 65.6],
+            [175.3, 71.8],
+            [193.5, 80.7],
+            [186.5, 72.6],
+            [187.2, 78.8],
+            [181.5, 74.8],
+            [184.0, 86.4],
+            [184.5, 78.4],
+            [175.0, 62.0],
+            [184.0, 81.6],
+            [180.0, 76.6],
+            [177.8, 83.6],
+            [192.0, 90.0],
+            [176.0, 74.6],
+            [174.0, 71.0],
+            [184.0, 79.6],
+            [192.7, 93.8],
+            [171.5, 70.0],
+            [173.0, 72.4],
+            [176.0, 85.9],
+            [176.0, 78.8],
+            [180.5, 77.8],
+            [172.7, 66.2],
+            [176.0, 86.4],
+            [173.5, 81.8],
+            [178.0, 89.6],
+            [180.3, 82.8],
+            [180.3, 76.4],
+            [164.5, 63.2],
+            [173.0, 60.9],
+            [183.5, 74.8],
+            [175.5, 70.0],
+            [188.0, 72.4],
+            [189.2, 84.1],
+            [172.8, 69.1],
+            [170.0, 59.5],
+            [182.0, 67.2],
+            [170.0, 61.3],
+            [177.8, 68.6],
+            [184.2, 80.1],
+            [186.7, 87.8],
+            [171.4, 84.7],
+            [172.7, 73.4],
+            [175.3, 72.1],
+            [180.3, 82.6],
+            [182.9, 88.7],
+            [188.0, 84.1],
+            [177.2, 94.1],
+            [172.1, 74.9],
+            [167.0, 59.1],
+            [169.5, 75.6],
+            [174.0, 86.2],
+            [172.7, 75.3],
+            [182.2, 87.1],
+            [164.1, 55.2],
+            [163.0, 57.0],
+            [171.5, 61.4],
+            [184.2, 76.8],
+            [174.0, 86.8],
+            [174.0, 72.2],
+            [177.0, 71.6],
+            [186.0, 84.8],
+            [167.0, 68.2],
+            [171.8, 66.1],
+            [182.0, 72.0],
+            [167.0, 64.6],
+            [177.8, 74.8],
+            [164.5, 70.0],
+            [192.0, 101.6],
+            [175.5, 63.2],
+            [171.2, 79.1],
+            [181.6, 78.9],
+            [167.4, 67.7],
+            [181.1, 66.0],
+            [177.0, 68.2],
+            [174.5, 63.9],
+            [177.5, 72.0],
+            [170.5, 56.8],
+            [182.4, 74.5],
+            [197.1, 90.9],
+            [180.1, 93.0],
+            [175.5, 80.9],
+            [180.6, 72.7],
+            [184.4, 68.0],
+            [175.5, 70.9],
+            [180.6, 72.5],
+            [177.0, 72.5],
+            [177.1, 83.4],
+            [181.6, 75.5],
+            [176.5, 73.0],
+            [175.0, 70.2],
+            [174.0, 73.4],
+            [165.1, 70.5],
+            [177.0, 68.9],
+            [192.0, 102.3],
+            [176.5, 68.4],
+            [169.4, 65.9],
+            [182.1, 75.7],
+            [179.8, 84.5],
+            [175.3, 87.7],
+            [184.9, 86.4],
+            [177.3, 73.2],
+            [167.4, 53.9],
+            [178.1, 72.0],
+            [168.9, 55.5],
+            [157.2, 58.4],
+            [180.3, 83.2],
+            [170.2, 72.7],
+            [177.8, 64.1],
+            [172.7, 72.3],
+            [165.1, 65.0],
+            [186.7, 86.4],
+            [165.1, 65.0],
+            [174.0, 88.6],
+            [175.3, 84.1],
+            [185.4, 66.8],
+            [177.8, 75.5],
+            [180.3, 93.2],
+            [180.3, 82.7],
+            [177.8, 58.0],
+            [177.8, 79.5],
+            [177.8, 78.6],
+            [177.8, 71.8],
+            [177.8, 116.4],
+            [163.8, 72.2],
+            [188.0, 83.6],
+            [198.1, 85.5],
+            [175.3, 90.9],
+            [166.4, 85.9],
+            [190.5, 89.1],
+            [166.4, 75.0],
+            [177.8, 77.7],
+            [179.7, 86.4],
+            [172.7, 90.9],
+            [190.5, 73.6],
+            [185.4, 76.4],
+            [168.9, 69.1],
+            [167.6, 84.5],
+            [175.3, 64.5],
+            [170.2, 69.1],
+            [190.5, 108.6],
+            [177.8, 86.4],
+            [190.5, 80.9],
+            [177.8, 87.7],
+            [184.2, 94.5],
+            [176.5, 80.2],
+            [177.8, 72.0],
+            [180.3, 71.4],
+            [171.4, 72.7],
+            [172.7, 84.1],
+            [172.7, 76.8],
+            [177.8, 63.6],
+            [177.8, 80.9],
+            [182.9, 80.9],
+            [170.2, 85.5],
+            [167.6, 68.6],
+            [175.3, 67.7],
+            [165.1, 66.4],
+            [185.4, 102.3],
+            [181.6, 70.5],
+            [172.7, 95.9],
+            [190.5, 84.1],
+            [179.1, 87.3],
+            [175.3, 71.8],
+            [170.2, 65.9],
+            [193.0, 95.9],
+            [171.4, 91.4],
+            [177.8, 81.8],
+            [177.8, 96.8],
+            [167.6, 69.1],
+            [167.6, 82.7],
+            [180.3, 75.5],
+            [182.9, 79.5],
+            [176.5, 73.6],
+            [186.7, 91.8],
+            [188.0, 84.1],
+            [188.0, 85.9],
+            [177.8, 81.8],
+            [174.0, 82.5],
+            [177.8, 80.5],
+            [171.4, 70.0],
+            [185.4, 81.8],
+            [185.4, 84.1],
+            [188.0, 90.5],
+            [188.0, 91.4],
+            [182.9, 89.1],
+            [176.5, 85.0],
+            [175.3, 69.1],
+            [175.3, 73.6],
+            [188.0, 80.5],
+            [188.0, 82.7],
+            [175.3, 86.4],
+            [170.5, 67.7],
+            [179.1, 92.7],
+            [177.8, 93.6],
+            [175.3, 70.9],
+            [182.9, 75.0],
+            [170.8, 93.2],
+            [188.0, 93.2],
+            [180.3, 77.7],
+            [177.8, 61.4],
+            [185.4, 94.1],
+            [168.9, 75.0],
+            [185.4, 83.6],
+            [180.3, 85.5],
+            [174.0, 73.9],
+            [167.6, 66.8],
+            [182.9, 87.3],
+            [160.0, 72.3],
+            [180.3, 88.6],
+            [167.6, 75.5],
+            [186.7, 101.4],
+            [175.3, 91.1],
+            [175.3, 67.3],
+            [175.9, 77.7],
+            [175.3, 81.8],
+            [179.1, 75.5],
+            [181.6, 84.5],
+            [177.8, 76.6],
+            [182.9, 85.0],
+            [177.8, 102.5],
+            [184.2, 77.3],
+            [179.1, 71.8],
+            [176.5, 87.9],
+            [188.0, 94.3],
+            [174.0, 70.9],
+            [167.6, 64.5],
+            [170.2, 77.3],
+            [167.6, 72.3],
+            [188.0, 87.3],
+            [174.0, 80.0],
+            [176.5, 82.3],
+            [180.3, 73.6],
+            [167.6, 74.1],
+            [188.0, 85.9],
+            [180.3, 73.2],
+            [167.6, 76.3],
+            [183.0, 65.9],
+            [183.0, 90.9],
+            [179.1, 89.1],
+            [170.2, 62.3],
+            [177.8, 82.7],
+            [179.1, 79.1],
+            [190.5, 98.2],
+            [177.8, 84.1],
+            [180.3, 83.2],
+            [180.3, 83.2],
+          ],
+        },
+      ],
+    },
+    xTitle: {
+      type: String,
+      default: "x轴标题",
+    },
+    yTitle: {
+      type: String,
+      default: "Y轴标题",
+    },
+    showLegend: {
+      type: Boolean,
+      default: true,
+    },
+    lineData: {
+      type: Object,
+      default: () => {
+        return {
+          xTitle: "折线X",
+          yTitle: "折线y",
+          legends: ["1", "2", "3"],
+          data: [
+            [1, 2, 3, 4],
+            [5, 6, 7, 8],
+          ],
+        };
+      },
+    },
+  },
+  data() {
+    return {
+      id: "",
+      chart: null,
+      color: ["#05bb4c", "#f8de5b", "#4b55ae", "#fa8c16"],
+    };
+  },
+  computed: {
+    series() {
+      let result = [];
+      this.data.forEach((element, index) => {
+        result.push({
+          name: element.title,
+          type: "scatter",
+          emphasis: {
+            focus: "series",
+          },
+          symbolSize: this.symbolSize,
+          data: element.value,
+          // markLine: {
+          //   data: [
+          //     {
+          //       type: "max",
+          //       name: "最大值",
+          //       label: {
+          //         color: partten.getColor("gray"),
+          //       },
+          //     },
+          //     {
+          //       type: "min",
+          //       name: "最小值",
+          //       label: {
+          //         color: partten.getColor("gray"),
+          //       },
+          //     },
+          //   ],
+          // },
+        });
+      });
+      return result;
+    },
+    legend() {
+      let result = [];
+
+      // if (this.data && this.data.length > 0)
+      //   result.push(
+      //     this.data.map((t) => {
+      //       return t.title;
+      //     })
+      //   );
+
+      // if (this.lineData && this.lineData.legends && this.lineData.legends.legends > 0) result.push(this.lineData.legends);
+
+      this.data.forEach((ele) => {
+        result.push(ele.title);
+      });
+
+      this.lineData.legends.forEach((ele) => {
+        result.push(ele);
+      });
+
+      return ["1", "2", "3"];
+    },
+  },
+  methods: {
+    resize() {},
+    initChart() {
+      let that = this;
+      const chart = echarts.init(this.$el);
+
+      let option = {
+        color: this.color,
+        grid: {
+          top: 40,
+          left: 40,
+          right: 64,
+          bottom: 24,
+          containLabel: true,
+        },
+        tooltip: {
+          trigger: "item",
+          showDelay: 0,
+          backgroundColor: "rgba(0,0,0,0.4)",
+          borderColor: partten.getColor("gray"),
+          textStyle: {
+            fontSize: util.vh(16),
+            color: "#fff",
+          },
+          formatter(params) {
+            if (params.componentType == "markLine") {
+              return params.name + "<br />" + params.value;
+            }
+            var msg = params.seriesName + "<br />";
+            msg +=
+              params.marker + that.xTitle + ":" + params.value[0] + "<br />";
+            msg +=
+              params.marker + that.yTitle + ":" + params.value[1] + "<br />";
+            return msg;
+          },
+          axisPointer: {
+            show: true,
+            type: "cross",
+            lineStyle: {
+              type: "dashed",
+              width: 1,
+            },
+          },
+        },
+        legend: {
+          show: this.showLegend,
+          data: this.legend,
+          orient: 'horizontal', 
+          icon: "circle",
+          itemWidth: 6,
+          inactiveColor: partten.getColor("gray"),
+          textStyle: {
+            color: partten.getColor("grayl"),
+            fontSize: 12,
+          },
+          selectedMode: false,
+        },
+        xAxis: [
+          {
+            name: this.xTitle,
+            type: "value",
+            scale: true,
+            axisLabel: {
+              formatter: "{value}",
+            },
+            splitLine: {
+              show: false,
+            },
+            interval: 1,
+            data: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],
+          },
+        ],
+        yAxis: [
+          {
+            min: 0,
+            type: "value",
+            name: this.yTitle,
+            scale: true,
+            axisLabel: {
+              formatter: "{value}",
+            },
+            splitLine: {
+              show: false,
+            },
+          },
+        ],
+        series: this.series,
+      };
+
+      if (this.lineData && this.lineData.data) {
+        option.xAxis.push({
+          type: "category",
+          // name: this.lineData.xTitle,
+          boundaryGap: false,
+          axisLabel: {
+            show: false,
+          },
+          axisLine: {
+            show: false,
+          },
+          data: this.lineData.legends,
+        });
+
+        option.yAxis.push({
+          type: "value",
+          // name: this.lineData.yTitle,
+          axisLabel: {
+            show: false,
+          },
+          axisLine: {
+            show: false,
+          },
+          //分格线
+          splitLine: {
+            show: false,
+          },
+        });
+
+        this.lineData.data.forEach((value, index) => {
+          option.series.push({
+            name: this.lineData.legends[index],
+            type: "line",
+            smooth: true,
+            showSymbol: false,
+            zlevel: index,
+            lineStyle: {
+              show: false,
+            },
+            yAxisIndex: 0,
+            xAxisIndex: 1,
+            data: value,
+          });
+        });
+      }
+
+      chart.clear();
+      chart.setOption(option);
+
+      this.resize = function () {
+        chart.resize();
+      };
+
+      window.addEventListener("resize", this.resize);
+    },
+  },
+  created() {
+    this.id = "pie-chart-" + util.newGUID();
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.$el.style.width = this.width;
+      this.$el.style.height = this.height;
+      this.initChart();
+    });
+  },
+  updated() {
+    this.$nextTick(() => {
+      this.initChart();
+    });
+  },
+  unmounted() {
+    window.removeEventListener("resize", this.resize);
+  },
+};
+</script>
+
+<style lang="less">
+.chart {
+  width: 100%;
+  height: 100%;
+  display: inline-block;
+}
+</style>

+ 2 - 47
src/views/singleAnalysis/index.vue

@@ -43,7 +43,7 @@
       <ComTable height="78vh" :data="tableData">
         <template v-slot:tr v-if="tableData.data.length > 0">
           <tr>
-            <td v-for="(item, index) in tableData.column" key="index">
+            <td v-for="(item, index) in tableData.column" :key="index">
               {{ tableDataEnd[item.field] }}
             </td>
           </tr>
@@ -51,23 +51,13 @@
       </ComTable>
     </div>
     <el-dialog
-      title="切入切出风速整合历史"
-      v-model="dialogShow"
-      width="85%"
-      top="10vh"
-      custom-class="modal"
-      :close-on-click-modal="true"
-      @closed="dialogType = ''"
-    >
-      test
-    </el-dialog>
-    <el-dialog
       :title="wtId + '号风机' + year + '年' + month + '月运行指标性能分析'"
       v-model="dialogVisible"
       width="70%"
       top="10vh"
       custom-class="modal"
       :close-on-click-modal="false"
+	  :destroy-on-close='true'
     >
       <ZnzhFx :wtId="wtId" :year="year" :month="month" />
     </el-dialog>
@@ -101,7 +91,6 @@ export default {
       recorddate: new Date(new Date().getTime() - 3600 * 1000 * 24).formatDate(
         "yyyy-MM-dd"
       ),
-      dialogShow: false,
       tableDataEnd: [], //合计
       tableData: {
         column: [
@@ -228,18 +217,6 @@ export default {
             is_light: false,
             sortable: true,
           },
-          // {
-          //   name: "操作",
-          //   field: "",
-          //   is_num: false,
-          //   is_light: false,
-          //   template() {
-          // 			return "<el-button type='text' style='cursor: pointer;'>详情</el-button>";
-          // 	},
-          //   click(e, row){
-          //     that.getOutputspeedHistoryList(row)
-          //   }
-          // }
         ],
         data: [],
       },
@@ -300,28 +277,6 @@ export default {
         });
       }
     },
-
-    getOutputspeedHistoryList(item) {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "outputspeed/outputspeedhistorylist",
-        data: {
-          wpId: item.windpowerstationid,
-          wtId: item.windturbineid,
-          beginDate: new Date().formatDate("yyyy-MM") + "-01",
-          endDate: new Date().formatDate("yyyy-MM-dd"),
-        },
-        success(res) {
-          res.data.forEach((ele) => {
-            ele.time = new Date(ele.recorddate).formatDate("yyyy-MM-dd");
-          });
-          that.tableHistoryData.data = res.data;
-          that.dialogShow = true;
-        },
-      });
-    },
-
     search() {
       this.getOutputSpeedList(this.wpId);
     },

+ 31 - 39
src/views/singleAnalysis/znzhfx.vue

@@ -28,45 +28,33 @@
     </el-row>
     <div class="mg-b-16 anliz-des">
       <div>
-        本月{{ wtId }}号风机风机设备利用小时数{{
-          tableVal.byzb && tableVal.byzb.lyxs
-        }}小时、同比{{
-          tableVal.tpzb && tableVal.tpzb.lyxs
-        }}小时,设备可利用率{{ tableVal.byzb && tableVal.byzb.sbklyl }}%、同比{{
-          tableVal.tpzb && tableVal.tpzb.sbklyl
-        }}%, 等效可用系数{{ tableVal.byzb && tableVal.byzb.dxklyxs }}%、同比{{
-          tableVal.tpzb && tableVal.tpzb.dxklyxs
-        }}%,静风频率达到{{ tableVal.byzb && tableVal.byzb.jfpl }}%、同比{{
-          tableVal.tpzb && tableVal.tpzb.jfpl
-        }}%, 机组功率特性一致性系数达到{{
-          tableVal.byzb && tableVal.byzb.glyzxxs
-        }}%、同比{{ tableVal.tpzb && tableVal.tpzb.glyzxxs }}%。
-        <br />
-        {{ wtId }}风机{{ year }}年{{ month }}月平均风速{{
-          tableVal.byzb && tableVal.byzb.fs
-        }}m/s、同比{{ tableVal.tpzb && tableVal.tpzb.fs }}m/s,
-        小风平均切入风速{{ tableVal.byzb && tableVal.byzb.xfqr }}m/s、同比{{
-          tableVal.tpzb && tableVal.tpzb.xfqr
-        }}m/s, 有效风时数{{ tableVal.byzb && tableVal.byzb.yxfss }}小时、同比{{
-          tableVal.tpzb && tableVal.tpzb.yxfss
-        }}小时, 实际发电电量{{
-          tableVal.byzb && tableVal.byzb.fdl
-        }}万kwh、同比{{ tableVal.tpzb && tableVal.tpzb.fdl }}万kwh,同比增长率{{
-          tableVal.tbzb && tableVal.tbzb.fdl
-        }}%, 各项损失电量累计{{
-          tableVal.byzb && tableVal.byzb.llfdl - tableVal.byzb.fdl
-        }}万kwh、同比{{
-          tableVal.tpzb && tableVal.tpzb.llfdl - tableVal.tpzb.fdl
-        }}万kwh,同比增长率{{
-          tableVal.tbzb && tableVal.byzb.llfdl - tableVal.tbzb.fdl
-        }}%, 理论发电量{{
-          tableVal.byzb && tableVal.byzb.llfdl
-        }}万kwh,实际发电量与理论发电量相差{{
-          tableVal.tbzb && tableVal.tbzb.llfdl
-        }}万kwh。
-        <br />
-        本月静风频率
-        %,月累计静风时长0.00小时,月累计待机小时116.44小时,待机占比48.51%。
+        本月{{ wtId }}号风机风机设备利用小时数{{ tableVal.byzb && tableVal.byzb.lyxs }}小时、
+		同比{{ tableVal.tqzb && tableVal.tqzb.lyxs }}小时,
+		设备可利用率{{ tableVal.byzb && tableVal.byzb.sbklyl }}%、
+		同比{{ tableVal.tqzb && tableVal.tqzb.sbklyl }}%;
+		等效可用系数{{ tableVal.byzb && tableVal.byzb.dxklyxs }}%、
+		同比{{ tableVal.tqzb && tableVal.tqzb.dxklyxs }}%;
+		静风频率达到{{ tableVal.byzb && tableVal.byzb.jfpl }}%、
+		同比{{ tableVal.tqzb && tableVal.tqzb.jfpl }}%;
+		机组功率特性一致性系数达到{{ tableVal.byzb && tableVal.byzb.glyzxxs }}%、
+		同比{{ tableVal.tqzb && tableVal.tqzb.glyzxxs }}%。 <br />
+        {{ wtId }}风机{{ year }}年{{ month }}
+		月平均风速{{ tableVal.byzb && tableVal.byzb.fs }}m/s、
+		同比{{ tableVal.tqzb && tableVal.tqzb.fs }}m/s;
+        小风平均切入风速{{ tableVal.byzb && tableVal.byzb.xfqr }}m/s、
+		同比{{ tableVal.tqzb && tableVal.tqzb.xfqr }}m/s;
+		有效风时数{{ tableVal.byzb && tableVal.byzb.yxfss }}小时、
+		同比{{ tableVal.tqzb && tableVal.tqzb.yxfss }}小时;
+		实际发电电量{{ tableVal.byzb && tableVal.byzb.fdl }}万kwh、
+		同比{{ tableVal.tqzb && tableVal.tqzb.fdl }}万kwh,
+		同比增长率{{ tableVal.tbzb && (tableVal.tbzb.fdl).toFixed(2) }}%;
+		各项损失电量累计{{ tableVal.byzb && (tableVal.byzb.llfdl - tableVal.byzb.fdl).toFixed(2) }}万kwh、
+		同比{{ tableVal.tqzb && tableVal.tqzb.llfdl - tableVal.tqzb.fdl }}万kwh,
+		同比增长率{{ tableVal.tbzb && (tableVal.byzb.llfdl - tableVal.tbzb.fdl).toFixed(2) }}%;
+		理论发电量{{ tableVal.byzb && tableVal.byzb.llfdl }}万kwh,
+		实际发电量与理论发电量相差{{ tableVal.tbzb && tableVal.tbzb.llfdl }}万kwh。 <br />
+        <!-- 月累计静风时长0.00小时, -->
+        月累计待机小时{{ tableVal.byzb && tableVal.byzb.tjxs }}小时,待机占比{{ tableVal.byzb && tableVal.tqzb.tjxs }}%。
       </div>
     </div>
     <div class="mg-b-16">
@@ -381,6 +369,9 @@ export default {
     // this.month = this.$route.params.month;
     this.search();
     this.searchChart();
+	while(true){
+		console.log()
+	}
   },
   filters: {
     tabrowfil(val) {
@@ -418,6 +409,7 @@ export default {
       console.warn(data.data);
       const res = data.data;
       this.tableVal = data.data;
+	  console.log(data.data)
       console.warn(this.tableVal);
       let arr = [];
       let keyarr = Object.keys(res.byzb);

+ 77 - 5
src/views/warn/gfgj.vue

@@ -33,6 +33,7 @@
 				<div class="query-actions">
 					<button class="btn green" @click="getTable()">查询</button>
 					<button class="btn green" @click="exportExcel()">导出</button>
+					<button class="btn green" @click="fx">分析</button>
 				</div>
 			</div>
 		</div>
@@ -42,18 +43,40 @@
 				@pageClick="pageClick" height="68vh" v-loading="tableLoading" element-loading-text="拼命加载中.."
 				element-loading-background="rgba(0, 0, 0, 0.8)"></ComTable>
 		</div>
+		<el-dialog title="报警等级占比图" v-model="dialogVisible" width="750px" top="10vh" custom-class="modal" :close-on-click-modal="false" :destroy-on-close='true'>
+			<el-row type="flex" justify="end">
+				<div class="query">
+					<div class="query-items">
+						<div class="query-actions">
+							<button class="btn green" @click="exportPDF">导出为PDF</button>
+						</div>
+					</div>
+				</div>
+			</el-row>
+			<el-row>
+				<div class="pdfDom">
+					<dual-pie-chart height="40vh" width='700px' :innerData="innerAnalyis" :outerData="outerAnalyis" />
+				</div>
+			</el-row>
+		</el-dialog>
 	</div>
 </template>
 <script>
 	import ComTable from "@/components/coms/table/table.vue";
-
+	import DualPieChart from "@/components/chart/pie/dual-pie-chart.vue";
+	import Get_PDF from "@tools/htmlToPdf";
 	export default {
 		components: {
-			ComTable
+			ComTable,
+			DualPieChart,
+			Get_PDF
 		},
 		data() {
 			let that = this;
 			return {
+				innerAnalyis: [],
+				outerAnalyis: [],
+				dialogVisible: false,
 				waitAjax:true,//等待执行完了再加载table
 				ChangZhan: [],
 				wpId: "",
@@ -90,7 +113,7 @@
 						},
 						{
 							name: "报警等级",
-							field: "messageType",
+							field: "rank",
 							is_num: false,
 							is_light: false,
 							sortable: true,
@@ -144,10 +167,10 @@
 					},
 					success(res) {
 						if (res.data) {
-							let messageType = ['低','中低','中','中高','高'];
+							let rank = ['低','中低','中','中高','高'];
 							let data = res.data.records;
 							data.forEach(ele=>{
-								ele.messageType = messageType[parseInt(ele.messageType) - 1];
+								ele.rank = rank[parseInt(ele.rank) - 1];
 								ele.category1 == 'GF' ? ele.category1 = '光伏': ele.category1 = '升压站';
 							})
 							that.tableData.data = data;
@@ -169,6 +192,50 @@
 				let excelData = this.BASE.deepCopy(this.tableData);
 				this.BASE.exportExcel(excelData, "光伏告警");
 			},
+			fx(){
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					timeout: 30000,
+					showLoading:true,
+					subUrl: "photovoltaic/query",
+					data: {
+						category1: "GF",
+						stationid: this.wpId,
+						starttime: this.startDate,
+						endtime: this.endDate,
+						keyword: this.alarmDesc,
+						pagenum: this.pageIndex,
+						pagesize: this.pageSize,
+					},
+					success(res) {
+						var analyis = [];
+						let data = res.data[1],
+							rank = ['低','中低','中','中高','高'],
+							val = Object.values(data);
+						val.pop();
+						val.forEach((ele,index) =>{
+							analyis.push({
+							  name: rank[index],
+							  value: ele
+							})
+						})
+						that.innerAnalyis = analyis;
+						that.outerAnalyis = analyis;
+						that.dialogVisible= true;
+					},
+				});
+			},
+			exportPDF(name) {
+			  this.BASE.showMsg({
+			    type: "success",
+			    msg: "正在导出...请稍后...",
+			  });
+			  Get_PDF.downloadPDF(
+			    document.querySelector(".pdfDom"),
+			    "报警等级占比图"
+			  );
+			},
 		},
 	};
 </script>
@@ -178,4 +245,9 @@
 		margin-bottom: 8px;
 		padding: 1vh;
 	}
+	.pdfDom{
+		padding-top: 5vh;
+		background-color: #111C1B;
+		height: 50vh;
+	}
 </style>

+ 17 - 14
src/views/warningRank/index.vue

@@ -166,23 +166,26 @@ export default {
           },
           success(res) {
             let chartData = [];
-
+			let data = [];
+			let i = 1;
             res.data.forEach((ele, index) => {
-              ele.index = index + 1;
-              chartData.push({
-                title: ele.name,
-                yAxisIndex: 0,
-                value: [
-                  {
-                    text: ele.name,
-                    value: ele.frequencyday,
-                  },
-                ],
-              });
+				if(ele.name != null){
+					ele.index = i++;
+					data.push(ele)
+					chartData.push({
+					  title: ele.name,
+					  yAxisIndex: 0,
+					  value: [
+					    {
+					      text: ele.name,
+					      value: ele.frequencyday,
+					    },
+					  ],
+					});
+				}
             });
-
             that.chartData = chartData;
-            that.tableData.data = res.data;
+            that.tableData.data = data;
           },
         });
       }