Переглянути джерело

Merge branch 'master' of http://124.70.43.205:3000/yangxiao/sis_zhfx

chenminghua 3 роки тому
батько
коміт
b35f63ec6d

+ 15 - 30
src/App.vue

@@ -254,29 +254,18 @@ l16.229-16.229l16.229,16.229l42.867-42.867C115.034,45.228,109.133,42.189,102.956
         active-text-color="#6262a2"
         background-color="#36348e"
       >
-        <el-sub-menu
-          :index="index"
-          :title="item.text"
-          v-for="(item, index) in menuData"
-          :key="index"
-        >
+        <el-sub-menu :index="index" :title="item.text" v-for="(item , index) in menuData">
           <template #title>
-            <router-link :to="item.path">
-              <el-icon>
-                <SvgIcon :svgid="item.icon" />
-              </el-icon>
-            </router-link>
+			  <router-link :to="item.path">
+				<el-icon>
+				  <SvgIcon :svgid="item.icon" />
+				</el-icon>
+			</router-link>
           </template>
-          <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 v-for="(menu , idx) in item.children" :index="idx">
+			  <router-link :to="menu.path">
+				<el-menu-item :index="index+'-'+idx">{{menu.text}}</el-menu-item>
+			</router-link>
           </el-menu-item-group>
         </el-sub-menu>
       </el-menu>
@@ -325,7 +314,7 @@ export default {
       isLogined: true,
       showSisView: false,
       memuCloseTimeout: null,
-      menuData: [],
+	  menuData:[]
     };
   },
 
@@ -384,10 +373,6 @@ export default {
     login(params) {
       if (params.username && params.password) this.isLogined = true;
     },
-    menuOpen(a, b) {
-      console.log(111, a);
-      console.log(222, b);
-    },
   },
 
   watch: {
@@ -395,8 +380,8 @@ export default {
       this.showSisView = res.fullPath === "/sisView";
     },
     "$store.state.menuData"(res) {
-      this.menuData = res;
-    },
+		this.menuData = res;
+	},
   },
 };
 </script>
@@ -414,12 +399,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;

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

@@ -17,9 +17,13 @@
 
 // 亮色主题
 @import "../theme/light/light-jsc.less"; // 驾驶舱
+@import "../theme/light/jsc-jcjz.less"; // 驾驶舱-基础矩阵
+@import "../theme/light/jsc-ztjs.less"; // 驾驶舱-状态监视
 @import "../theme/light/light-jjyx.less"; // 经济运行
 @import "../theme/light/light-sp.less"; // 沙盘
 @import "../theme/light/light-qt.less"; // 其他
 
+@import "../theme/light/jjyx-dbgl.less"; // 对标管理
+
 // 暗色主题
 @import "../theme/dark/dark-jsc.less"; // 驾驶舱

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

@@ -0,0 +1,229 @@
+// 对标管理
+@import "./setting.less";
+#appBody.light {
+	// 风机绩效榜
+    .com-table {
+		thead tr th{
+			color: @black;
+		}
+		
+		.el-scrollbar tr td {
+			color: @black;
+		}
+		
+		.el-scrollbar tr td.light span {
+			color: @blue;
+		}
+	}
+	.btn.green,.btn:hover{
+		color: @deepblue;
+		border-color: @deepblue;
+		background: rgba(54, 52, 142, 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.active,.action-bar .selections .item:hover{
+	// 	border: 1px solid @deepblue;
+	// 	color:@deepblue ;
+	// 	background-image: linear-gradient(to top,rgba(57, 54, 143, 0.5),rgba(5, 187, 76, 0));
+	// 	background: linear-gradient(to top, rgba(54, 52, 142, 0.5), rgba(54, 52, 142, 0));
+	// }
+	
+  .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;
+		  }
+		}
+	  }
+	}
+  }
+}

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

@@ -0,0 +1,101 @@
+// 驾驶舱模块-基础矩阵白色主题样式
+
+@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;
+    }
+
+    //驾驶舱模块-矩阵白色主题样式二级页面
+    //基本信息-日发电量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;
+    }
+    //右侧导航栏第一个-最右侧
+    .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;
+    }
+    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;
+    }
+    .com-panel.line{
+        margin-left: 1px;
+    }
+    .wave{
+        z-index: 1;
+        // background: @white;
+        // transition: @transition;
+    }
+    .svg-icon.svg-icon-write svg use{
+        fill: @black;
+    }
+    .svg-icon.svg-icon-gray-l svg use{
+        fill: @black;
+    }
+}

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

@@ -0,0 +1,32 @@
+//驾驶舱模块-状态监视白色主题样式
+@import "./setting.less";
+#appBody.light {
+    .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;
+    }
+    .booster-station .btn-group-tabs[data-v-7cf05ca5]{
+        display: flex;
+        flex-direction: row;
+        background: @white;
+        height: 60px;
+    }
+    .map-1 .btn-group-tabs[data-v-0ec6dd0b]{
+        display: flex;
+        flex-direction: row;
+        background: @white;
+        height: 50px;
+    }
+//驾驶舱模块-Agc白色主题样式
+    .com-panel2 .panel-header2 .panel-tools2{
+        color: @black;
+        opacity: 0.3;
+    }
+}

+ 1 - 1
src/assets/styles/theme/light/light-jjyx.less

@@ -60,7 +60,7 @@
 
     .power-benchmarking-page .top .top-left .top-left-header .header-right>div.active,
     .power-benchmarking-page .top .top-left .top-left-header .header-right>div:hover {
-        background  : rgba(54, 52, 142, 0.2);
+        background  : red;
         border-color: @deepblue;
         color       : @deepblue;
         transition  : @transition;

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

@@ -375,11 +375,13 @@
 	
 	.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{
-		background:transparent;
 		border:none;
+		.el-menu{border-radius: 0px;}
 	}
 	
     .com-panel-3 {

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

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

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

+ 1 - 0
src/components/chart/combination/scatter-line-chart.vue

@@ -698,6 +698,7 @@ export default {
         ],
         yAxis: [
           {
+            min: 0,
             type: "value",
             name: this.yTitle,
             scale: true,

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

+ 83 - 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,16 @@ export default {
       return result;
     },
     initChart() {
+		let themeName = this.$store.state.themeName.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 +135,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 +172,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 +211,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 +223,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 +249,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 +277,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 +298,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 +326,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 +347,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 +378,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 +421,11 @@ export default {
       this.initChart();
     });
   },
+  watch: {
+    "$store.state.themeName"() {
+      this.initChart();
+    },
+  },
 };
 </script>
 

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

+ 6 - 0
src/router/index.js

@@ -826,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",

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

Різницю між файлами не показано, бо вона завелика
+ 653 - 702
src/views/NewPages/alarm-center-1.vue


+ 7 - 18
src/views/NewPages/alarm-center-2.vue

@@ -39,26 +39,12 @@
       <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>
@@ -210,6 +196,7 @@ export default {
     },
     async searchData () {
       const { data } = await this.API.requestData({
+		  showLoading:true,
         baseURL: "http://192.168.1.18:8075/",
         subUrl: "shutdown/list",
         data: {
@@ -233,7 +220,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;
             }

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

+ 5 - 0
src/views/layout/Menu.vue

@@ -1002,6 +1002,11 @@ export default {
                   path: "/others/analysis",
                 },
                 {
+                  text: "功率曲线综合分析",
+                  icon: "svg-matrix",
+                  path: "/others/powerline/analysis",
+                },
+                {
                   text: "知识库",
                   icon: "svg-matrix",
                   path: "/others/knowledgeBase",

+ 0 - 623
src/views/sampleDatabase/fault/index - 副本.vue

@@ -1,623 +0,0 @@
-<template>
-	<el-scrollbar height="92vh" v-if="gzCgd == 1">
-		<div class="query mg-b-8">
-			<div class="query-items">
-				<div class="query-item">
-					<div class="lable">场站:</div>
-					<div class="search-input">
-						<el-select v-model="station" placeholder="请选择" popper-class="select">
-							<el-option v-for="item in ChangZhan" :key="item.id" :value="item.id" :label="item.name">
-							</el-option>
-						</el-select>
-					</div>
-				</div>
-				<div class="query-item">
-					<div class="lable">样本类型:</div>
-					<div class="search-input">
-						<el-select v-model="tableTag" placeholder="请选择样本" popper-class="select">
-							<el-option v-for="item in tableTagArr" :key="item.value" :value="item.value" :label="item.label">
-							</el-option>
-						</el-select>
-					</div>
-				</div>
-				<div class="query-item">
-					<div class="lable">故障分类:</div>
-					<div class="search-input">
-						<el-select v-model="widget" multiple collapse-tags clearable placeholder="请选择"
-							popper-class="select">
-							<el-option v-for="item in BuJian" :key="item.value" :value="item.value" :label="item.label">
-							</el-option>
-						</el-select>
-					</div>
-				</div>
-				<div class="query-item">
-					<div class="lable">风机型号:</div>
-					<div class="search-input">
-						<el-select v-model="model" multiple collapse-tags clearable placeholder="请选择"
-							popper-class="select">
-							<el-option v-for="item in fjxh" :key="item.value" :value="item.value" :label="item.label">
-							</el-option>
-						</el-select>
-					</div>
-				</div>
-				<div class="query-item">
-					<div class="lable">时间:</div>
-					<div class="search-input">
-						<el-date-picker v-model="time" type="datetimerange" range-separator="至" start-placeholder="开始日期"
-							end-placeholder="结束日期">
-						</el-date-picker>
-					</div>
-				</div>
-				<div class="query-actions">
-					<button class="btn" @click="query()">查询</button>
-					<button class="btn" @click="addEdit()">新增</button>
-				</div>
-			</div>
-		</div>
-		<el-row :type="'flex'" class="content">
-			<el-col :span="24">
-				<ComTable :data="tableData" :pageSize="pageSize" @onPagging="onChangePage" height="84vh"
-					v-loading="tableLoading" element-loading-text="拼命加载中"
-					element-loading-background="rgba(0, 0, 0, 0.8)"></ComTable>
-			</el-col>
-		</el-row>
-		<el-dialog :title="isvisiableType == 1 ? '新增' : '编辑'" v-model="isvisiable" width="45%" top="15vh"
-			custom-class="modal" :close-on-click-modal="false" :before-close="onClickDialogClose" class="isvisiable">
-			<!-- 这里是新增或编辑 -->
-			<el-row type="flex" class="mb10">
-				<el-col :span="12">
-					<div>样本类型:</div>
-					<el-select v-model="tableTag" placeholder="请选择样本" popper-class="select" class="w">
-						<el-option v-for="item in tableTagArr" :key="item.value" :value="item.value"
-							:label="item.label">
-						</el-option>
-					</el-select>
-				</el-col>
-				<el-col :span="12">
-					<div>风机型号:</div>
-					<el-select v-model="tableModel" placeholder="请选择风机型号" popper-class="select" class="w">
-						<el-option v-for="item in fjxh" :key="item.value" :value="item.value" :label="item.label">
-						</el-option>
-					</el-select>
-				</el-col>
-			</el-row>
-			<el-row type="flex" class="mb10">
-				<el-col :span="12">
-					<div>故障分类:</div>
-					<el-select v-model="tableFaulttype" placeholder="请选择故障" popper-class="select" class="w">
-						<el-option v-for="item in BuJian" :key="item.value" :value="item.value" :label="item.label">
-						</el-option>
-					</el-select>
-				</el-col>
-				<el-col :span="12">
-					<div>时间:</div>
-					<el-date-picker v-model="tableTime" type="datetimerange" range-separator="至"
-						start-placeholder="开始日期" end-placeholder="结束日期" class="w">
-					</el-date-picker>
-				</el-col>
-			</el-row>
-			<el-row type="flex" class="mb10">
-				<el-col :span="12">
-					<div>故障原因:</div>
-					<el-input placeholder="请输入故障原因" v-model="tableSymptom" :value="tableSymptom">
-					</el-input>
-				</el-col>
-				<el-col :span="12">
-					<div>风机厂商:</div>
-					<el-input placeholder="请输入风机厂商" v-model="tableManufacturer" :value="tableManufacturer">
-					</el-input>
-				</el-col>
-			</el-row>
-			<el-row type="flex" class="mb10">
-				<el-col :span="12">
-					<div>风机编号:</div>
-					<el-input placeholder="请输入风机编号" v-model="tableWindturbineid" :value="tableWindturbineid">
-					</el-input>
-				</el-col>
-			</el-row>
-			<el-row type="flex" justify="end">
-				<div class="query-actions" style="margin-top: 15px">
-					<button class="btn" @click="onClickDialogClose">取消</button>
-					<button class="btn" @click="dialogSave">保存</button>
-				</div>
-			</el-row>
-		</el-dialog>
-	</el-scrollbar>
-	<el-scrollbar height="92vh" v-if="gzCgd == 2">
-		<Point :data="gzCgdData" :st='st' @gzCgdClick="gzCgdClick" />
-	</el-scrollbar>
-</template>
-
-<script>
-	import ComTable from "@/components/coms/table/table.vue";
-	import Point from "./point.vue";
-	export default {
-		components: {
-			ComTable,
-			Point,
-		},
-		data() {
-			const that = this;
-			return {
-				tableTagArr: [{
-						label: '正样本',
-						value: 0
-					},
-					{
-						label: '负样本',
-						value: 1
-					}
-				],
-				queryType: false, //没有改变select时,点击查询无效
-				pageIndex: 1,
-				pageSize: 20,
-				gzCgd: 1, //传感点组件隐藏或显示
-				gzCgdData: [], //传感点参数
-				st:'',
-				BuJian: [],
-				ChangZhan: [],
-				fjxh: [],
-				fjxhArr: [],
-				widget: [],
-				model: [],
-				time: [],
-				station: '',
-				tableFaulttype: "",
-				tableTag: "",
-				tableModel: "",
-				tableTime: "",
-				tableSymptom: "",
-				tableManufacturer: "",
-				tableWindturbineid: "",
-				tableCategory: "", //隐藏保存部分
-				tableRemark: "",
-				tableFaultcode: "",
-				tableId: "",
-				tableSymptomcode: "",
-				tableStationen: "",
-				isvisiable: false,
-				isvisiableType: 1, //新增为1,编辑为2
-				tableData: {
-					column: [{
-							name: "序号",
-							field: "index",
-							is_light: false,
-							width: '50px',
-						},
-						{
-							name: "样本类型",
-							field: "tableTag",
-							is_light: false,
-							width: '100px',
-						},
-						{
-							name: "风机编号",
-							field: "tableWindturbineid",
-							is_light: false,
-							width: '150px',
-						},
-						{
-							name: "故障分类",
-							field: "tableFaulttype",
-							is_light: false,
-							width: '150px',
-						},
-						{
-							name: "故障原因",
-							field: "tableSymptom",
-							is_light: false,
-							width: '350px',
-						},
-						{
-							name: "时间",
-							field: "tableTime",
-							is_light: false,
-							width: '350px',
-						},
-						{
-							name: "风机厂商",
-							field: "tableManufacturer",
-							is_light: false,
-							width: '150px',
-						},
-						{
-							name: "风机型号",
-							field: "tableModel",
-							is_light: false,
-							width: '150px',
-						},
-						{
-							name: "操作",
-							is_light: false,
-							width: '200px',
-							template: () => {
-								return (
-									"<el-button type='text' style='cursor: pointer;' value='edit'>编辑</el-button>&nbsp" +
-									"<el-button type='text' style='cursor: pointer;' value='delete'>删除</el-button>&nbsp" +
-									"<el-button type='text' style='cursor: pointer;' value='config'>传感点</el-button>&nbsp"
-								);
-							},
-							click(e, row) {
-								that.onClickOption(e, row);
-							},
-						},
-					],
-					data: [],
-				}
-			};
-		},
-		methods: {
-			getTable() {
-				let that = this;
-				this.tableLoading = true;
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://192.168.10.4:9002/",
-					subUrl: "benchmarking/wplist",
-					data: {
-						wpId: that.stationId,
-						startTs: that.startDate,
-						endTs: that.endDate,
-						pageNum: that.pageIndex,
-						pageSize: that.pageSize,
-					},
-					success(res) {
-						var dataTab = [];
-						if (res.data) {
-							res.data.list.forEach(item => {
-								dataTab.push({ //表格
-									recodedata: that.formatTime(item.recodedata),
-									region: item.region,
-								})
-							})
-							that.tableData.data = dataTab;
-							that.tableData.total = res.data.total;
-						} else {
-							that.tableData.data = [];
-							that.tableData.total = 0;
-						}
-						that.tableLoading = false;
-					},
-				});
-			},
-			onChangePage(params) {
-				this.pageIndex = params.pageIndex;
-				this.pageSize = params.pageSize;
-				this.getTable();
-			},
-			startAjax() {
-				var that = this;
-				// that.time = [new Date((new Date() - 3600 * 1000 * 24 * 30)).formatDate("yyyy-MM-dd"), new Date().formatDate("yyyy-MM-dd")];
-				that.time = [new Date((new Date() - 3600 * 1000 * 24 * 360)).formatDate("yyyy-MM-dd"), new Date()
-					.formatDate("yyyy-MM-dd")
-				];
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://10.155.32.4:9001/",
-					subUrl: "benchmarking/wplist",
-					success(res) {
-						that.ChangZhan = res.data;
-						// that.station = res.data[0].name
-						that.station = res.data[1].name
-					},
-				});
-
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://192.168.1.18:9002/",
-					subUrl: "basic/widget/condition",
-					success(res) {
-						let keys = Object.keys(res.data[0]);
-						let bujian = [],
-							widget = [];
-						keys.forEach((ele, index) => {
-							bujian.push({
-								label: res.data[0].ele,
-								value: ele
-							})
-							widget.push(ele)
-						})
-
-						that.widget = widget;
-						that.BuJian = bujian;
-					},
-				});
-
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://192.168.1.18:9002/",
-					subUrl: "basic/station/all",
-					success(res) {
-						let fjxhArr = [];
-						let model = [],
-							fjxh = [];
-						res.data.forEach(ele => {
-							fjxhArr.push({
-								id: ele.id,
-								value: ele.model.split("/")
-							})
-							if (ele.id == "MHS_FDC") {
-								model = ele.model.split("/");
-								model.forEach(ele => {
-									fjxh.push({
-										label: ele,
-										value: ele
-									})
-								})
-							}
-						})
-						that.fjxhArr = fjxhArr;
-						that.model = model;
-						that.fjxh = fjxh;
-					},
-				});
-			},
-			query() {
-				if (this.queryType) {
-					this.list();
-				}
-			},
-			addEdit() {
-				this.isvisiableType = 1;
-				this.tableFaulttype = '';
-				this.tableModel = '';
-				this.tableTime = '';
-				this.tableSymptom = '';
-				this.tableManufacturer = '';
-				this.tableWindturbineid = '';
-
-				// this.tableCategory: data[i].category,
-				// this.tableRemark: data[i].remark,
-				// this.tableFaultcode: data[i].faultcode,
-				// this.tableId: data[i].id,
-				// this.tableSymptomcode:data[i].Symptomcode,
-				// this.tableStationen:data[i].stationen
-
-				this.isvisiable = true;
-			},
-			onClickOption(e, row) { // 操作按钮
-				let that = this;
-				if ("delete" == e.target.getAttribute("value")) {
-					that
-						.$confirm("确认删除此条样本数据?", "提示", {
-							confirmButtonText: "删除",
-							cancelButtonText: "取消"
-						})
-						.then((_) => {
-							console.log('ok')
-							// that.requestDelete(row);
-						})
-						.catch((_) => {});
-				}
-				if ("edit" == e.target.getAttribute("value")) {
-					that.isvisiableType = 2;
-					that.$nextTick(() => {
-						let tableTime = row.tableTime.split(" - ");
-						that.tableTag = row.tableTag;
-						that.BuJian.forEach(ele => {
-							if (ele.value == row.tableFaultcode) {
-								that.tableFaulttype = ele.label
-							}
-						})
-						that.tableModel = row.tableModel;
-						that.tableTime = [Date.parse(new Date(tableTime[0])), Date.parse(new Date(tableTime[1]))];
-						that.tableSymptom = row.tableSymptom;
-						that.tableManufacturer = row.tableManufacturer;
-						that.tableWindturbineid = row.tableWindturbineid;
-
-						that.tableCategory = row.tableCategory;
-						that.tableRemark = row.tableRemark;
-						that.tableFaultcode = row.tableFaultcode;
-						that.tableId = row.tableId;
-						that.tableSymptomcode = row.tableSymptomcode;
-						that.tableStationen = row.tableStationen;
-					});
-					that.isvisiable = true;
-				}
-				if ("config" == e.target.getAttribute("value")) { //传感点
-					that.API.requestData({
-						method: "GET",
-						baseURL: "http://192.168.1.18:9002/",
-						subUrl: "point/all",
-						data: {
-							wtId: row.tableWindturbineid,
-							widget: row.tableFaultcode
-						},
-						success(res) {
-							console.log(res)
-							if (res.code == 200) {
-								that.gzCgdData = res.data;
-								that.st = Date.parse(new Date(row.tableTime.split(" - ")[0]));
-								that.gzCgd = 2;
-							}
-						},
-					});
-				}
-			},
-			onClickDialogClose() { // 弹窗右上角关闭按钮
-				this.isvisiable = false;
-				this.isvisiableType = 1;
-			},
-			dialogSave() {
-				let that = this;
-				that.tableTime[0] = that.formatDate(that.tableTime[0].valueOf());
-				that.tableTime[1] = that.formatDate(that.tableTime[1].valueOf());
-				console.log(that.tableTime)
-				that.API.requestData({
-					method: "POST",
-					baseURL: "http://192.168.1.18:9002/",
-					headers: {
-						'Content-Type': 'application/json;charset=utf-8',
-					},
-					subUrl: "case/item/edit",
-					body: {
-						category: that.tableCategory,
-						endtime: that.tableTime[1],
-						faultcode: that.tableFaultcode,
-						faulttype: that.tableFaulttype,
-						id: that.tableId,
-						manufacturer: that.tableManufacturer,
-						model: that.tableModel,
-						remark: that.tableRemark,
-						starttime: that.tableTime[0],
-						stationen: that.tableStationen,
-						symptom: that.tableSymptom,
-						symptomcode: that.tableSymptomcode,
-						tag: that.tableTag == "正样本" ? 0 : 1,
-						windturbineid: that.tableWindturbineid
-					},
-					success(res) {
-						if (res.code == 200) {
-							that.BASE.showMsg({
-								type: "success",
-								msg: "保存成功",
-							});
-							that.onClickDialogClose();
-							that.list();
-						}
-					},
-				});
-			},
-			gzCgdClick(data) {
-				this.gzCgd = data;
-			},
-			formatDate(dates) {
-				var date = new Date(dates);
-				var YY = date.getFullYear() + '-';
-				var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
-				var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
-				var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
-				var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
-				var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
-				return YY + MM + DD + " " + hh + mm + ss;
-			},
-			list() {
-				var that = this;
-				let station = '',
-					widget = ''
-				if (typeof that.time[0].valueOf() != 'string') {
-					that.time[0] = that.formatDate(that.time[0].valueOf())
-				}
-				if (typeof that.time[1].valueOf() != 'string') {
-					that.time[1] = that.formatDate(that.time[1].valueOf())
-				}
-				if (typeof that.station.valueOf() == 'string') {
-					that.ChangZhan.forEach(ele => {
-						if (ele.name == that.station) {
-							station = ele.id
-						}
-					})
-				}
-				if (typeof that.widget.valueOf() == 'string') {
-					that.BuJian.forEach(ele => {
-						if (ele.label == that.widget) {
-							widget = ele.value
-						}
-					})
-				}
-				if (that.model.length == 0) {
-					that.BASE.showMsg({
-						type: "warning",
-						msg: "请选择风机型号",
-					});
-					return
-				}
-				if (that.widget.length == 0) {
-					that.BASE.showMsg({
-						type: "warning",
-						msg: "请选择部件",
-					});
-					return
-				}
-				that.API.requestData({
-					showLoading: true,
-					method: "GET",
-					baseURL: "http://192.168.1.18:9002/",
-					subUrl: "case/fault/all",
-					data: {
-						widget: widget ? widget : that.widget,
-						station: station ? station : that.station,
-						model: that.model,
-						st: that.time[0].valueOf(),
-						et: that.time[1].valueOf()
-					},
-					success(res) {
-						if (res.code == 200) {
-							console.log(res)
-							that.tableData.data = [];
-							if (res.data.length) {
-								let data = res.data;
-								for (var i = 0; i < data.length; i++) {
-									let obj = {
-										index: i + 1,
-										tableTag: data[i].tag == 0 ? '正样本' : '负样本',
-										tableFaulttype: data[i].faulttype,
-										tableModel: data[i].model,
-										tableTime: data[i].starttime + ' - ' + data[i].endtime,
-										tableSymptom: data[i].symptom,
-										tableManufacturer: data[i].manufacturer,
-										tableWindturbineid: data[i].windturbineid,
-
-										tableCategory: data[i].category,
-										tableRemark: data[i].remark,
-										tableFaultcode: data[i].faultcode,
-										tableId: data[i].id,
-										tableSymptomcode: data[i].symptomcode,
-										tableStationen: data[i].stationen
-									};
-									that.tableData.data.push(obj);
-								}
-							}
-						}
-					},
-				});
-			},
-		},
-		created() {
-			let that = this;
-			that.startAjax();
-			setTimeout(function() {
-				that.list()
-			}, 500)
-		},
-		watch: {
-			station(res) {
-				let fjxh = [];
-				this.fjxhArr.forEach(ele => {
-					if (ele.id == res) {
-						ele.value.forEach(ele2 => {
-							fjxh.push({
-								label: ele2,
-								value: ele2
-							})
-						})
-						this.model = ele.value;
-					}
-				})
-				this.fjxh = fjxh;
-				this.queryType = true;
-			},
-			widget() {
-				this.queryType = true;
-			},
-			model() {
-				this.queryType = true;
-			},
-			time() {
-				this.queryType = true;
-			},
-		},
-	};
-</script>
-
-<style lang="less" scoped>
-	.mb10 {
-		margin-bottom: 10px;
-	}
-
-	.el-select.w {
-		width: 100%;
-	}
-
-	// .el-range-editor.w{width: 100%;}
-</style>

+ 0 - 799
src/views/sampleDatabase/fault/point - 副本.vue

@@ -1,799 +0,0 @@
-<template>
-	<el-row type="flex">
-		<div class="query-actions">
-			<button class="btn" @click="addEdit">新增</button>
-			<button class="btn" @click="dbfx">原始数据对标</button>
-			<button class="btn" @click="back">返回</button>
-		</div>
-	</el-row>
-	<el-row :type="'flex'" class="content">
-		<el-col :span="24">
-			<ComTable :data="tableData" :pageSize="pageSize" @onPagging="onChangePage" height="84vh"
-				v-loading="tableLoading" ref="curRef" element-loading-text="拼命加载中"
-				element-loading-background="rgba(0, 0, 0, 0.8)"></ComTable>
-		</el-col>
-	</el-row>
-		
-		
-	<el-dialog :title="isvisiableType == 1 ? '新增' : '编辑'" v-model="isvisiable" width="45%" top="15vh"
-		custom-class="modal" :close-on-click-modal="false" :before-close="onClickDialogClose" class="isvisiable">
-		<!-- 这里是新增或编辑 -->
-		<el-row type="flex" class="mb10">
-			<el-col :span="12">
-				<div>样本类型:</div>
-				<el-select v-model="widget" placeholder="请选择样本" popper-class="select" class="w">
-					<el-option v-for="item in widgetArr" :key="item.value" :value="item.value"
-						:label="item.label">
-					</el-option>
-				</el-select>
-			</el-col>
-			<el-col :span="12">
-				<div>风机型号:</div>
-				<el-select v-model="tableModel" placeholder="请选择风机型号" popper-class="select" class="w">
-					<el-option v-for="item in fjxh" :key="item.value" :value="item.value" :label="item.label">
-					</el-option>
-				</el-select>
-			</el-col>
-		</el-row>
-		<el-row type="flex" class="mb10">
-			<el-col :span="12">
-				<div>故障分类:</div>
-				<el-select v-model="windturbinename" placeholder="请选择故障" popper-class="select" class="w">
-					<el-option v-for="item in BuJian" :key="item.value" :value="item.value" :label="item.label">
-					</el-option>
-				</el-select>
-			</el-col>
-			<el-col :span="12">
-				<div>时间:</div>
-				<el-date-picker v-model="tableTime" type="datetimerange" range-separator="至"
-					start-placeholder="开始日期" end-placeholder="结束日期" class="w">
-				</el-date-picker>
-			</el-col>
-		</el-row>
-		<el-row type="flex" class="mb10">
-			<el-col :span="12">
-				<div>故障原因:</div>
-				<el-input placeholder="请输入故障原因" v-model="tableSymptom" :value="tableSymptom">
-				</el-input>
-			</el-col>
-			<el-col :span="12">
-				<div>风机厂商:</div>
-				<el-input placeholder="请输入风机厂商" v-model="tableManufacturer" :value="tableManufacturer">
-				</el-input>
-			</el-col>
-		</el-row>
-		<el-row type="flex" class="mb10">
-			<el-col :span="12">
-				<div>风机编号:</div>
-				<el-input placeholder="请输入风机编号" v-model="stationcn" :value="stationcn">
-				</el-input>
-			</el-col>
-		</el-row>
-		<el-row type="flex" justify="end">
-			<div class="query-actions" style="margin-top: 15px">
-				<button class="btn" @click="onClickDialogClose">取消</button>
-				<button class="btn" @click="dialogSave">保存</button>
-			</div>
-		</el-row>
-	</el-dialog>
-	<!-- 原始数据start -->
-	<el-dialog title="原始数据" v-model="yssjDialog" width="70%" top="15vh" custom-class="modal"
-		:close-on-click-modal="false" :before-close="yssjDialogClose">
-		<div class="query mg-b-8">
-			<div class="query-items">
-				<div class="query-item">
-					<div class="lable">时间:</div>
-					<div class="search-input">
-						<el-date-picker v-model="time" type="datetimerange" range-separator="至" start-placeholder="开始日期"
-							end-placeholder="结束日期">
-						</el-date-picker>
-					</div>
-				</div>
-				<div class="query-item">
-					<div class="lable">等间隔:</div>
-					<div class="search-input">
-						<el-select
-						  v-if="!chooseStatus"
-						  @change="switchChange(selectValue)"
-						  class="inputs"
-						  v-model="selectValue"
-						  placeholder="请选择"
-						>
-						  <el-option
-							v-for="item in timeoptions"
-							:key="item.value"
-							:label="item.label"
-							:value="item.value"
-						  >
-						  </el-option>
-						</el-select>
-					</div>
-				</div>
-				<div class="query-actions">
-					<button class="btn" @click="queryYssj">查询</button>
-				</div>
-			</div>
-		</div>
-		
-		<el-row type="flex">
-			<multiple-y-line-chart-normal
-			  height="500px"
-			  :list="Powertrend"
-			  :yAxises="PowertrendYAxises"
-			  :showLegend="true"
-			/>
-		</el-row>
-	</el-dialog>
-			<!-- 原始数据end -->
-</template>
-
-<script>
-	import ComTable from "@/components/coms/table/table.vue";
-		import MultipleYLineChartNormal from "../../NewPages/multiple-y-line-chart-normal.vue";
-		import Tab from "@/components/coms/tabs/tab.vue";
-	export default {
-		components: {
-			ComTable,MultipleYLineChartNormal,Tab
-		},
-		data() {
-			const that = this;
-			return {
-				Powertrend: [
-				  {
-				    title: "",
-				    yAxisIndex: 0, // 使用单位
-				    value: [],
-				  },
-				],
-				PowertrendYAxises: [
-				  {
-				    name: "功率",
-				    min: 0,
-				    max: null,
-				    unit: "(万kWh)",
-				    position: "left",
-				  },
-				  {
-				    name: "风速",
-				    min: 0,
-				    max: 25,
-				    unit: "(m/s)",
-				    position: "right",
-				  },
-				],
-				selectValue: "60",
-				timeoptions: [
-				  {
-				    value: "60",
-				    label: "一分钟",
-				  },
-				  {
-				    value: "300",
-				    label: "五分钟",
-				  },
-				  {
-				    value: "600",
-				    label: "十分钟",
-				  },
-				  {
-				    value: "1800",
-				    label: "三十分钟",
-				  },
-				  {
-				    value: "3600",
-				    label: "一小时",
-				  },
-				  {
-				    value: "86400",
-				    label: "一天",
-				  },
-				],
-				time: [],
-				yssjDialog:false,
-				point:[],
-				pointdes:[],
-				
-				widgetArr: [{label: '正样本',value: 0},{label: '负样本',value: 1}],
-				queryType: false, //没有改变select时,点击查询无效
-				pageIndex: 1,
-				pageSize: 20,
-				BuJian: [{
-					label: '部件1',
-					value: '1'
-				}, {
-					label: '部件2',
-					value: '2'
-				}],
-				ChangZhan: [{
-					label: '麻黄山风电场',
-					value: 'MHS_FDC'
-				}],
-				fjxh: [{
-					label: '类型1',
-					value: '1'
-				}],
-				fjxhArr: [{
-					id: "MHS_FDC",
-					value: ['UP77', 'UP82', 'UP105']
-				}],
-				widget: [],
-				model: [],
-				station: '',
-				windturbinename: "",
-				widget: "",
-				tableModel: "",
-				tableTime: "",
-				tableSymptom: "",
-				tableManufacturer: "",
-				stationcn: "",
-				tableCategory: "", //隐藏保存部分
-				tableRemark: "",
-				tableFaultcode: "",
-				tableId: "",
-				tableSymptomcode: "",
-				tableStationen: "",
-				isvisiable: false,
-				isvisiableType: 1, //新增为1,编辑为2
-				checkLength: 0, //对标分析只能选择5个
-				tableData: {
-					column: [{
-							name: "序号",
-							field: "index",
-							is_light: false,
-							width: '50px',
-						},
-						{
-						  name: "",
-						  field: "check",
-						  is_light: false,
-						  width: '50px',
-						  template: function () {
-						    return "<input class='check curCheckBox' type='CheckBox'/>";
-						  },
-						  click: function (event, data) {
-						    let point = data.point,
-								pointdes = data.pointdes;
-						    if (event.target.checked == false && that.checkLength <= 5) {
-						      that.point.forEach((item, i) => {
-						        if (item == point) {
-						          that.point.splice(i, 1);
-						          that.pointdes.splice(i, 1);
-						        }
-						      });
-						      that.checkLength--;
-						    } else if (event.target.checked && that.checkLength < 5) {
-						      that.point.push(point);
-						      that.pointdes.push(pointdes);
-						      that.checkLength++;
-						    } else if (that.checkLength == 5) {
-						      event.target.checked = false;
-						    }
-						  },
-						},
-						{
-							name: "风机",
-							field: "windturbineid",
-							is_light: false,
-							width: '100px',
-						},
-						{
-							name: "部件",
-							field: "widget",
-							is_light: false,
-							width: '100px',
-						},
-						{
-							name: "测点",
-							field: "point",
-							is_light: false,
-							width: '250px',
-						},
-						{
-							name: "测点描述",
-							field: "pointdes",
-							is_light: false,
-							width: '150px',
-						},
-						{
-							name: "风机型号",
-							field: "model",
-							is_light: false,
-							width: '150px',
-						},
-						{
-							name: "场站",
-							field: "stationcn",
-							is_light: false,
-							width: '150px',
-						},
-						{
-							name: "操作",
-							is_light: false,
-							width: '200px',
-							template: () => {
-								return (
-									"<el-button type='text' style='cursor: pointer;' value='edit'>编辑</el-button>&nbsp" +
-									"<el-button type='text' style='cursor: pointer;' value='delete'>删除</el-button>&nbsp" +
-									"<el-button type='text' style='cursor: pointer;' value='config'>原始数据</el-button>&nbsp"
-								);
-							},
-							click(e, row) {
-								that.onClickOption(e, row);
-							},
-						},
-					],
-					data: [{
-						index: 1,
-						windturbineid: 0,
-						widget: "MG01-01",
-						point: "0.1000",
-						pointdes: "0.1000",
-						model: "0.1000",
-						stationcn: "0.1000",
-						is_light: false,
-					}],
-				}
-			};
-		},
-		props: {
-			data: {
-				type: Array
-			},
-			st:{
-				type: String
-			}
-		},
-		methods: {
-			getTable() {
-				let that = this;
-				this.tableLoading = true;
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://192.168.10.4:9002/",
-					subUrl: "benchmarking/wplist",
-					data: {
-						wpId: that.stationId,
-						startTs: that.startDate,
-						endTs: that.endDate,
-						pageNum: that.pageIndex,
-						pageSize: that.pageSize,
-					},
-					success(res) {
-						var dataTab = [];
-						if (res.data) {
-							res.data.list.forEach(item => {
-								dataTab.push({ //表格
-									recodedata: that.formatTime(item.recodedata),
-									region: item.region,
-								})
-							})
-							that.tableData.data = dataTab;
-							that.tableData.total = res.data.total;
-						} else {
-							that.tableData.data = [];
-							that.tableData.total = 0;
-						}
-						that.tableLoading = false;
-					},
-				});
-			},
-			onChangePage(params) {
-				this.pageIndex = params.pageIndex;
-				this.pageSize = params.pageSize;
-				this.getTable();
-			},
-			startAjax() {
-				var that = this;
-				// that.time = [new Date((new Date() - 3600 * 1000 * 24 * 30)).formatDate("yyyy-MM-dd"), new Date().formatDate("yyyy-MM-dd")];
-				that.time = [new Date((new Date() - 3600 * 1000 * 24 * 360)).formatDate("yyyy-MM-dd"), new Date()
-					.formatDate("yyyy-MM-dd")
-				];
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://10.155.32.4:9001/",
-					subUrl: "benchmarking/wplist",
-					success(res) {
-						that.ChangZhan = res.data;
-						// that.station = res.data[0].name
-						that.station = res.data[1].name
-					},
-				});
-
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://192.168.1.18:9002/",
-					subUrl: "basic/widget/condition",
-					success(res) {
-						let keys = Object.keys(res.data[0]);
-						let bujian = [],
-							widget = [];
-						keys.forEach((ele, index) => {
-							bujian.push({
-								label: res.data[0].ele,
-								value: ele
-							})
-							widget.push(ele)
-						})
-
-						that.widget = widget;
-						that.BuJian = bujian;
-					},
-				});
-
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://192.168.1.18:9002/",
-					subUrl: "basic/station/all",
-					success(res) {
-						let fjxhArr = [];
-						let model = [],
-							fjxh = [];
-						res.data.forEach(ele => {
-							fjxhArr.push({
-								id: ele.id,
-								value: ele.model.split("/")
-							})
-							if (ele.id == "MHS_FDC") {
-								model = ele.model.split("/");
-								model.forEach(ele => {
-									fjxh.push({
-										label: ele,
-										value: ele
-									})
-								})
-							}
-						})
-						that.fjxhArr = fjxhArr;
-						that.model = model;
-						that.fjxh = fjxh;
-					},
-				});
-			},
-			query() {
-				if (this.queryType) {
-					this.list();
-				}
-			},
-			addEdit() {
-				this.isvisiableType = 1;
-				this.windturbinename = '';
-				this.tableModel = '';
-				this.tableTime = '';
-				this.tableSymptom = '';
-				this.tableManufacturer = '';
-				this.stationcn = '';
-
-				// this.tableCategory: data[i].category,
-				// this.tableRemark: data[i].remark,
-				// this.tableFaultcode: data[i].faultcode,
-				// this.tableId: data[i].id,
-				// this.tableSymptomcode:data[i].Symptomcode,
-				// this.tableStationen:data[i].stationen
-
-				this.isvisiable = true;
-			},
-			onClickOption(e, row) { // 操作按钮
-				let that = this;
-				if ("delete" == e.target.getAttribute("value")) {
-					that
-						.$confirm("确认删除此条样本数据?", "提示", {
-							confirmButtonText: "删除",
-							cancelButtonText: "取消"
-						})
-						.then((_) => {
-							console.log('ok')
-							// that.requestDelete(row);
-						})
-						.catch((_) => {});
-				}
-				if ("edit" == e.target.getAttribute("value")) {
-					that.isvisiableType = 2;
-					that.$nextTick(() => {
-						let tableTime = row.tableTime.split(" - ");
-						that.widget = row.widget;
-						that.BuJian.forEach(ele => {
-							if (ele.value == row.tableFaultcode) {
-								that.windturbinename = ele.label
-							}
-						})
-						that.tableModel = row.tableModel;
-						that.tableTime = [Date.parse(new Date(tableTime[0])), Date.parse(new Date(tableTime[1]))];
-						that.tableSymptom = row.tableSymptom;
-						that.tableManufacturer = row.tableManufacturer;
-						that.stationcn = row.stationcn;
-
-						that.tableCategory = row.tableCategory;
-						that.tableRemark = row.tableRemark;
-						that.tableFaultcode = row.tableFaultcode;
-						that.tableId = row.tableId;
-						that.tableSymptomcode = row.tableSymptomcode;
-						that.tableStationen = row.tableStationen;
-					});
-					that.isvisiable = true;
-				}
-				if ("config" == e.target.getAttribute("value")) { //传感点
-					that.time = [that.st - (3600 * 1000), that.st];
-					that.point =[row.point];
-					that.pointdes = [row.pointdes];
-					that.requestDetailData(that.point,that.pointdes,that.time,that.selectValue);
-					that.yssjDialog=true;
-				}
-			},
-			onClickDialogClose() { // 弹窗右上角关闭按钮
-				this.isvisiable = false;
-				this.isvisiableType = 1;
-			},
-			dialogSave() {
-				let that = this;
-				that.tableTime[0] = that.formatDate(that.tableTime[0].valueOf());
-				that.tableTime[1] = that.formatDate(that.tableTime[1].valueOf());
-				console.log(that.tableTime)
-				that.API.requestData({
-					method: "POST",
-					baseURL: "http://192.168.1.18:9002/",
-					headers: {
-						'Content-Type': 'application/json;charset=utf-8',
-					},
-					subUrl: "case/item/edit",
-					body: {
-						category: that.tableCategory,
-						endtime: that.tableTime[1],
-						faultcode: that.tableFaultcode,
-						faulttype: that.windturbinename,
-						id: that.tableId,
-						manufacturer: that.tableManufacturer,
-						model: that.tableModel,
-						remark: that.tableRemark,
-						starttime: that.tableTime[0],
-						stationen: that.tableStationen,
-						symptom: that.tableSymptom,
-						symptomcode: that.tableSymptomcode,
-						tag: that.widget == "正样本" ? 0 : 1,
-						windturbineid: that.stationcn
-					},
-					success(res) {
-						if (res.code == 200) {
-							that.BASE.showMsg({
-								type: "success",
-								msg: "保存成功",
-							});
-							that.onClickDialogClose();
-							that.list();
-						}
-					},
-				});
-			},
-			gzCgdClick(data) {
-				this.gzCgd = data;
-			},
-			formatDate(dates) {
-				var date = new Date(dates);
-				var YY = date.getFullYear() + '-';
-				var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
-				var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
-				var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
-				var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
-				var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
-				return YY + MM + DD + " " + hh + mm + ss;
-			},
-			list(data) {
-				console.log(data)
-				var that = this;
-				that.tableData.data = [];
-				if (data.length) {
-					for (var i = 0; i < data.length; i++) {
-						let obj = {
-							index: i + 1,
-							windturbineid: data[i].windturbineid,
-							widget: data[i].widget,
-							point: data[i].point,
-							pointdes: data[i].pointdes,
-							model: data[i].model,
-							stationcn: data[i].stationcn,
-							
-						};
-						that.tableData.data.push(obj);
-					}
-				}
-				
-				
-				// let station = '',
-				// 	widget = ''
-				// if (typeof that.time[0].valueOf() != 'string') {
-				// 	that.time[0] = that.formatDate(that.time[0].valueOf())
-				// }
-				// if (typeof that.time[1].valueOf() != 'string') {
-				// 	that.time[1] = that.formatDate(that.time[1].valueOf())
-				// }
-				// if (typeof that.station.valueOf() == 'string') {
-				// 	that.ChangZhan.forEach(ele => {
-				// 		if (ele.name == that.station) {
-				// 			station = ele.id
-				// 		}
-				// 	})
-				// }
-				// if (typeof that.widget.valueOf() == 'string') {
-				// 	that.BuJian.forEach(ele => {
-				// 		if (ele.label == that.widget) {
-				// 			widget = ele.value
-				// 		}
-				// 	})
-				// }
-				// if (that.model.length == 0) {
-				// 	that.BASE.showMsg({
-				// 		type: "warning",
-				// 		msg: "请选择风机型号",
-				// 	});
-				// 	return
-				// }
-				// if (that.widget.length == 0) {
-				// 	that.BASE.showMsg({
-				// 		type: "warning",
-				// 		msg: "请选择部件",
-				// 	});
-				// 	return
-				// }
-				// that.API.requestData({
-				// 	showLoading: true,
-				// 	method: "GET",
-				// 	baseURL: "http://192.168.1.18:9002/",
-				// 	subUrl: "case/fault/all",
-				// 	data: {
-				// 		widget: widget ? widget : that.widget,
-				// 		station: station ? station : that.station,
-				// 		model: that.model,
-				// 		st: that.time[0].valueOf(),
-				// 		et: that.time[1].valueOf()
-				// 	},
-				// 	success(res) {
-				// 		if (res.code == 200) {
-				// 			console.log(res)
-				// 			that.tableData.data = [];
-				// 			if (res.data.length) {
-				// 				let data = res.data;
-				// 				for (var i = 0; i < data.length; i++) {
-				// 					let obj = {
-				// 						index: i + 1,
-				// 						widget: data[i].tag == 0 ? '正样本' : '负样本',
-				// 						windturbinename: data[i].faulttype,
-				// 						tableModel: data[i].model,
-				// 						tableTime: data[i].starttime + ' - ' + data[i].endtime,
-				// 						tableSymptom: data[i].symptom,
-				// 						tableManufacturer: data[i].manufacturer,
-				// 						stationcn: data[i].windturbineid,
-
-				// 						tableCategory: data[i].category,
-				// 						tableRemark: data[i].remark,
-				// 						tableFaultcode: data[i].faultcode,
-				// 						tableId: data[i].id,
-				// 						tableSymptomcode: data[i].symptomcode,
-				// 						tableStationen: data[i].stationen
-				// 					};
-				// 					that.tableData.data.push(obj);
-				// 				}
-				// 			}
-				// 		}
-				// 	},
-				// });
-			},
-			back() {
-				this.clearDb();
-				this.$emit('gzCgdClick', 1);
-			},
-			switchChange(interval,status) {
-			  if(status === 'interval') {
-			    this.chooseStatus = false
-			    this.selectValue = '60'
-			  }else if(status === 'original'){
-			    this.chooseStatus = true
-			  }
-			  // this.requestDetailData(
-			  //     this.wpvalue,
-			  //     this.startdate,
-			  //     this.enddate,
-			  //     interval,
-			  //     this.wtId,
-			  //     this.descName
-			  //   );
-			},
-			requestDetailData(point, pointdes, time,interval) {
-			    let that = this;
-				let Powertrend = [];
-				pointdes.forEach((ele,index)=>{
-					Powertrend.push({
-						title:ele,
-						smooth: true,
-						value: [],
-					})
-				})
-				point.forEach((ele,index)=>{
-					that.API.requestData({
-						method: "GET",
-						baseURL: "http://192.168.1.18:9002/",
-						subUrl: "point/item",
-						data:{
-							point:ele,
-							startTs:time[0],
-							endTs:time[1],
-							interval:interval
-						},
-						success(res) {
-							if(res.data){
-							  res.data.forEach((cEle) => {
-								Powertrend[index].value.push({
-								  text: new Date(cEle.ts).formatDate("hh:mm"),
-								  value: cEle.doubleValue,
-								});
-							  });
-							  if((point.length - 1) == index){
-								that.Powertrend = Powertrend;
-							  }
-							}
-						},
-					});
-				})
-				
-			},
-			queryYssj(){
-				this.requestDetailData(this.point,this.pointdes,[Date.parse(new Date(this.time[0])), Date.parse(new Date(this.time[1]))],this.selectValue);
-			},
-			dbfx() {
-			  var that = this;
-			  if (that.point.length <=5) {
-				  that.Powertrend = [];
-				  that.time = [that.st - (3600 * 1000), that.st];
-				  that.requestDetailData(that.point,that.pointdes,[Date.parse(new Date(that.time[0])), Date.parse(new Date(that.time[1]))],that.selectValue);
-			    that.yssjDialog = true;
-			    that.clearDb();
-			  }
-			},
-			clearDb() {
-			  //清空对标状态
-			  this.$refs.curRef.clearCheckBox();
-			  this.point = [];
-			  this.pointdes = [];
-			  this.checkLength = 0;
-			},
-		},
-		created() {
-			this.list(this.data)
-		},
-		watch: {
-			station(res) {
-				let fjxh = [];
-				this.fjxhArr.forEach(ele => {
-					if (ele.id == res) {
-						ele.value.forEach(ele2 => {
-							fjxh.push({
-								label: ele2,
-								value: ele2
-							})
-						})
-						this.model = ele.value;
-					}
-				})
-				this.fjxh = fjxh;
-				this.queryType = true;
-			},
-			widget() {
-				this.queryType = true;
-			},
-			model() {
-				this.queryType = true;
-			},
-			time() {
-				this.queryType = true;
-			},
-		},
-	};
-</script>
-
-<style lang="less" scoped>
-	.mb10 {
-		margin-bottom: 10px;
-	}
-
-	.el-select.w {
-		width: 100%;
-	}
-</style>

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

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

@@ -0,0 +1,802 @@
+<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",
+    },
+    // 传入数据
+    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",
+          },
+          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 result;
+    },
+  },
+  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,
+          right: "40",
+          icon: "circle",
+          itemWidth: 6,
+          inactiveColor: partten.getColor("gray"),
+          textStyle: {
+            color: partten.getColor("grayl"),
+            fontSize: 12,
+          },
+        },
+        xAxis: [
+          {
+            name: this.xTitle,
+            type: "value",
+            scale: true,
+            axisLabel: {
+              formatter: "{value}",
+            },
+            splitLine: {
+              show: false,
+            },
+          },
+        ],
+        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>

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

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