Browse Source

Merge branch 'mw2' of http://61.161.152.110:10101/r/electronic-map into mw2

# Conflicts:
#	src/components/chart/line/double-line-chart.vue
#	src/router/index.js
#	src/views/layout/Menu.vue
解决冲突,及被覆盖的合计功能
mw_666 3 years ago
parent
commit
f6f57dbdb0

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

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

+ 110 - 14
src/components/coms/table/table.vue

@@ -13,7 +13,7 @@
           <td
             v-for="(col, i) of data.column"
             :key="i"
-            :style="{ width: col.width, color: row.color }"
+            :style="{ width: col.width }"
             :class="{ light: hoverRow == row || hoverCol == col, num: col.is_num, 'always-light': col.is_light || row.is_light }"
             @mouseenter="hover(row, col)"
             @mouseleave="leave()"
@@ -70,11 +70,6 @@ export default {
       type: Boolean,
       default: true,
     },
-    // 列高亮
-    showColHover: {
-      type: Boolean,
-      default: false,
-    },
     canScroll: {
       type: Boolean,
       default: true,
@@ -141,14 +136,14 @@ export default {
   },
   // 函数
   methods: {
-    clearCheckBox(time) {
-      this.$nextTick(() => {
-        setTimeout(() => {
+    clearCheckBox(time){
+      this.$nextTick(()=>{
+        setTimeout(()=>{
           const domArray = document.querySelectorAll(".curCheckBox");
-          for (let i = 0; i < domArray.length; i++) {
-            domArray[i].checked = false;
+          for(let i=0;i<domArray.length;i++){
+            domArray[i].checked=false;
           }
-        }, time || 300);
+        },(time || 300));
       });
     },
     onClick(col, data) {
@@ -177,7 +172,7 @@ export default {
     hover(row, col) {
       if (this.showHover) {
         this.hoverRow = row;
-        if (this.showColHover) this.hoverCol = col;
+        this.hoverCol = col;
       }
     },
     leave() {
@@ -212,4 +207,105 @@ export default {
 };
 </script>
 
-<style lang="less"></style>
+<style lang="less">
+@titleGray: #9ca5a8;
+@rowGray: #606769;
+@darkBack: #536268;
+.com-table {
+  width: 100%;
+  border-collapse: collapse;
+
+  thead {
+    tr {
+      display: table;
+      table-layout: fixed;
+      width: 100%;
+
+      th {
+        background-color: fade(@darkBack, 20%);
+        height: 30px;
+        line-height: 30px;
+        color: @titleGray;
+        font-weight: 400;
+        font-size: @fontsize-s;
+        position: sticky;
+        top: 0;
+        cursor: pointer;
+
+        &.light,
+        &.always-light {
+          color: @green;
+        }
+      }
+    }
+  }
+
+  tbody {
+    display: block;
+
+    tr {
+      display: table;
+      table-layout: fixed;
+      width: 100%;
+
+      &:nth-child(2n) {
+        background-color: fade(@rowGray, 20%);
+      }
+
+      td {
+        padding: 0.556vh 0;
+        color: @rowGray;
+        text-align: center;
+        font-size: @fontsize-s;
+        overflow: hidden; //隐藏文字
+        text-overflow: ellipsis; //显示 ...
+        white-space: nowrap; //不换行
+
+        &.light,
+        &.always-light {
+          color: @green !important;
+        }
+
+        &.num {
+          font-family: "Bicubik";
+          font-weight: 400;
+        }
+      }
+    }
+  }
+
+  .el-pagination {
+    color: @gray;
+    .el-pagination__total {
+      color: @gray;
+    }
+
+    button {
+      &.btn-next,
+      &.btn-prev {
+        background: center center no-repeat fade(@gray, 20);
+        color: @gray-l;
+      }
+      &:disabled {
+        color: @gray-l;
+        background-color: fade(@gray, 20);
+        cursor: not-allowed;
+      }
+    }
+
+    .el-pager li {
+      color: @gray-l;
+      background: fade(@gray, 20);
+      &.active {
+        color: @green;
+      }
+    }
+
+    .el-input__inner {
+      color: @gray-l;
+      background: fade(@gray, 20);
+      border: 1px solid fade(@gray, 20);
+    }
+  }
+}
+</style>

File diff suppressed because it is too large
+ 714 - 593
src/router/index.js


+ 69 - 24
src/views/Decision/Decision1.vue

@@ -67,16 +67,56 @@
 		<el-row :type="'flex'" class="content">
 			<el-col :span="12" class="pd-r-8">
 				<toolbar-panel title="风机绩效榜" :showLine="false">
-					<bar-line-chart :height="'calc(100vh - 200px)'" :bardata="bardata" :lineData="lineData" :color="barColor" lineName="理论发电量"/>
+					<bar-line-chart :height="'calc(100vh - 200px)'" :bardata="bardata" :lineData="lineData"
+						:color="barColor" lineName="理论发电量" />
 				</toolbar-panel>
 			</el-col>
 			<el-col :span="12" class="pd-l-8">
 				<panel :title="'项目列表'" :showLine="false">
-                    <div class="project-table">
+					<div class="project-table">
 						<!-- 分页Table -->
-                        <Table :data="tableData" :pageSize="20" @onPagging="onChangePage" :height="'calc(100vh - 32vh)'"></Table>
-                        <!-- <Table :data="tableData"></Table> -->
-                    </div>
+						<Table :data="tableData" :pageSize="20" @onPagging="onChangePage"
+							:height="'calc(100vh - 32vh)'">
+							<template v-slot:tr v-if="tableData.data.length > 0">
+								<tr>
+									<td style="width: 50px;">
+										{{tableDataEnd.index}}
+									</td>
+									<td>
+										{{tableDataEnd.name}}
+									</td>
+									<td>
+										{{tableDataEnd.llfdl}}
+									</td>
+									<td>
+										{{tableDataEnd.sjfdl}}
+									</td>
+									<td>
+										{{tableDataEnd.speed}}
+									</td>
+									<td>
+										{{tableDataEnd.fjhjx}}
+									</td>
+									<td>
+										{{tableDataEnd.jhjx}}
+									</td>
+									<td>
+										{{tableDataEnd.sl}}
+									</td>
+									<td>
+										{{tableDataEnd.xd}}
+									</td>
+									<td>
+										{{tableDataEnd.xn}}
+									</td>
+									<td>
+										{{tableDataEnd.fnlly}}
+									</td>
+								</tr>
+							</template>
+						</Table>
+						<!-- <Table :data="tableData"></Table> -->
+					</div>
 				</panel>
 			</el-col>
 		</el-row>
@@ -88,7 +128,7 @@
 	import Panel from "../../components/coms/panel/panel.vue";
 	import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 	import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
-	import Table from "../../components/coms/table/table.vue";
+	import Table from "./table.vue";
 	import partten from "@/helper/partten.js";
 	export default {
 		components: {
@@ -107,7 +147,7 @@
 							field: "index",
 							is_num: false,
 							is_light: false,
-                            width: "50px",
+							width: "50px",
 						},
 						{
 							name: "名称",
@@ -120,67 +160,68 @@
 							field: "llfdl",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "SCADA发电量",
 							field: "sjfdl",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "风速",
 							field: "speed",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "非计划检修",
 							field: "fjhjx",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "计划检修",
 							field: "jhjx",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "受累",
 							field: "sl",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "限电",
 							field: "xd",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "性能",
 							field: "xn",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "风能利用率%",
 							field: "fnlly",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						}
 					],
 					data: [],
 				},
+				tableDataEnd: [], //合计
 				ChangZhan: [], //场站
 				XiangMu: [], //项目
 				XianLu: [], //线路
@@ -189,7 +230,9 @@
 				value3: [],
 				value4: "",
 				value5: "",
-				barColor: [partten.getColor("purple"), partten.getColor("green"), partten.getColor("pink"), partten.getColor("red"), partten.getColor("orange"), partten.getColor("grayl")],
+				barColor: [partten.getColor("purple"), partten.getColor("green"), partten.getColor("pink"), partten
+					.getColor("red"), partten.getColor("orange"), partten.getColor("grayl")
+				],
 				TypeClass: 1, //风场,项目,集电线路 的按钮颜色,默认第一个
 				bardata: [],
 				lineData: [],
@@ -206,7 +249,7 @@
 				var that = this;
 				that.API.requestData({
 					method: "GET",
-					baseURL : "http://10.155.32.4:9001/",
+					baseURL: "http://10.155.32.4:9001/",
 					subUrl: "benchmarking/wplist",
 					success(res) {
 						that.ChangZhan = res.data;
@@ -225,7 +268,7 @@
 				var that = this;
 				that.API.requestData({
 					method: "GET",
-					baseURL : "http://10.155.32.4:9001/",
+					baseURL: "http://10.155.32.4:9001/",
 					subUrl: "benchmarking/projectList",
 					data: {
 						wpids: val
@@ -246,7 +289,7 @@
 				var that = this;
 				that.API.requestData({
 					method: "GET",
-					baseURL : "http://10.155.32.4:9001/",
+					baseURL: "http://10.155.32.4:9001/",
 					subUrl: "benchmarking/lineList",
 					data: {
 						projects: val
@@ -299,7 +342,7 @@
 				var that = this;
 				that.API.requestData({
 					method: "GET",
-					baseURL : "http://10.155.32.4:9001/",
+					baseURL: "http://10.155.32.4:9001/",
 					subUrl: "benchmarking/fjjxb",
 					data: {
 						wpids: that.value1,
@@ -358,6 +401,8 @@
 							};
 
 						}
+						that.tableDataEnd = data2[data2.length - 1];
+						data2.pop();
 						that.tableData.data = data2;
 					}
 				});
@@ -365,9 +410,9 @@
 			mxClick() {
 				this.$router.push("/decision/decision1Mx")
 			},
-     onChangePage(params) {
-      console.log(params);
-    },
+			onChangePage(params) {
+				console.log(params);
+			},
 		}
 	};
 </script>

+ 91 - 24
src/views/Decision/Decision1Mx.vue

@@ -69,13 +69,73 @@
 				<el-row :type="'flex'" class="content">
 					<el-col :span="10" class="pd-r-8">
 						<toolbar-panel title="风机绩效榜明细" :showLine="false">
-							<bar-line-chart :height="'calc(100vh - 200px)'" :bardata="bardata" :lineData="lineData" :color="barColor" lineName="理论发电量"/>
+							<bar-line-chart :height="'calc(100vh - 200px)'" :bardata="bardata" :lineData="lineData"
+								:color="barColor" lineName="理论发电量" />
 						</toolbar-panel>
 					</el-col>
 					<el-col :span="14" class="pd-l-8">
 						<panel :title="'项目列表'" :showLine="false">
 							<div class="project-table">
-								<Table :data="tableData"></Table>
+								<Table :data="tableData">
+									<template v-slot:tr v-if="tableData.data.length > 0">
+										<tr>
+											<td>
+												{{tableDataEnd.index}}
+											</td>
+											<td>
+												{{tableDataEnd.name}}
+											</td>
+											<td>
+												{{tableDataEnd.llfdl}}
+											</td>
+											<td>
+												{{tableDataEnd.sjfdl}}
+											</td>
+											<td>
+												{{tableDataEnd.speed}}
+											</td>
+											<td>
+												{{tableDataEnd.fjhjx1}}
+											</td>
+											<td>
+												{{tableDataEnd.fjhjx2}}
+											</td>
+											<td>
+												{{tableDataEnd.jhjx1}}
+											</td>
+											<td>
+												{{tableDataEnd.jhjx2}}
+											</td>
+											<td>
+												{{tableDataEnd.sl1}}
+											</td>
+											<td>
+												{{tableDataEnd.sl2}}
+											</td>
+											<td>
+												{{tableDataEnd.xd1}}
+											</td>
+											<td>
+												{{tableDataEnd.xd2}}
+											</td>
+											<td>
+												{{tableDataEnd.xn1}}
+											</td>
+											<td>
+												{{tableDataEnd.xn2}}
+											</td>
+											<td>
+												{{tableDataEnd.xn3}}
+											</td>
+											<td>
+												{{tableDataEnd.xn4}}
+											</td>
+											<td>
+												{{tableDataEnd.fnlly}}
+											</td>
+										</tr>
+									</template>
+								</Table>
 							</div>
 						</panel>
 					</el-col>
@@ -90,7 +150,7 @@
 	import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 	import Panel from "../../components/coms/panel/panel.vue";
 	import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
-	import Table from "../../components/coms/table/table.vue";
+	import Table from "./table.vue";
 	import partten from "@/helper/partten.js";
 	export default {
 		components: {
@@ -121,116 +181,117 @@
 							field: "llfdl",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "SCADA发电量",
 							field: "sjfdl",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "风速",
 							field: "speed",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "故障损失",
 							field: "fjhjx1",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "故障受累",
 							field: "fjhjx2",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "检修损失",
 							field: "jhjx1",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "检修受累",
 							field: "jhjx2",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "电网受累",
 							field: "sl1",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "天气受累",
 							field: "sl2",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "限电降出",
 							field: "xd1",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "限电停机",
 							field: "xd2",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "待风损失",
 							field: "xn1",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "手动停机",
 							field: "xn2",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "正常发电",
 							field: "xn3",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "缺陷降出",
 							field: "xn4",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						},
 						{
 							name: "风能利用率%",
 							field: "fnlly",
 							is_num: false,
 							is_light: false,
-							sortable:true
+							sortable: true
 						}
 					],
 					data: [],
 				},
+				tableDataEnd: [], //合计
 				ChangZhan: [], //场站
 				XiangMu: [], //项目
 				XianLu: [], //线路
@@ -239,7 +300,11 @@
 				value3: [],
 				value4: "",
 				value5: "",
-				barColor: [partten.getColor("purple"), partten.getColor("green"), partten.getColor("pink"), partten.getColor("red"), partten.getColor("orange"), partten.getColor("grayl"),partten.getColor("yellow"),partten.getColor("gray"),partten.getColor("blue"),partten.getColor("cyan"),partten.getColor("brown"),partten.getColor("mauve")],
+				barColor: [partten.getColor("purple"), partten.getColor("green"), partten.getColor("pink"), partten
+					.getColor("red"), partten.getColor("orange"), partten.getColor("grayl"), partten.getColor(
+					"yellow"), partten.getColor("gray"), partten.getColor("blue"), partten.getColor("cyan"), partten
+					.getColor("brown"), partten.getColor("mauve")
+				],
 				TypeClass: 1, //风场,项目,集电线路 的按钮颜色,默认第一个
 				bardata: [],
 				lineData: [],
@@ -256,7 +321,7 @@
 				var that = this;
 				that.API.requestData({
 					method: "GET",
-					baseURL : "http://10.155.32.4:9001/",
+					baseURL: "http://10.155.32.4:9001/",
 					subUrl: "benchmarking/wplist",
 					success(res) {
 						that.ChangZhan = res.data;
@@ -275,7 +340,7 @@
 				var that = this;
 				that.API.requestData({
 					method: "GET",
-					baseURL : "http://10.155.32.4:9001/",
+					baseURL: "http://10.155.32.4:9001/",
 					subUrl: "benchmarking/projectList",
 					data: {
 						wpids: val
@@ -296,7 +361,7 @@
 				var that = this;
 				that.API.requestData({
 					method: "GET",
-					baseURL : "http://10.155.32.4:9001/",
+					baseURL: "http://10.155.32.4:9001/",
 					subUrl: "benchmarking/lineList",
 					data: {
 						projects: val
@@ -349,7 +414,7 @@
 				var that = this;
 				that.API.requestData({
 					method: "GET",
-					baseURL : "http://10.155.32.4:9001/",
+					baseURL: "http://10.155.32.4:9001/",
 					subUrl: "benchmarking/fjjxbmx",
 					data: {
 						wpids: that.value1,
@@ -420,6 +485,8 @@
 							};
 
 						}
+						that.tableDataEnd = data2[data2.length - 1];
+						data2.pop();
 						that.tableData.data = data2;
 					}
 				});

+ 5 - 2
src/views/Decision/Decision2.vue

@@ -64,7 +64,7 @@
 			<toolbar-panel title="风机绩效榜" :showLine="false"></toolbar-panel>
 			<div class="mg-b-16">
 				<div class="project-table">
-					<Table :data="tableData" :canScroll="false" ref="curRef"></Table>
+					<Table :data="tableData" :canScroll="false" ref="curRef" @onSort="onSort"></Table>
 				</div>
 			</div>
 			<el-row class="mg-b-16">
@@ -95,7 +95,7 @@
 			<el-col :span="24" class="pd-l-8">
 				<panel :title="'风机对标列表明细'" :showLine="false">
 					<div class="project-table">
-						<Table :data="tableDataDetail" ref="curRef"></Table>
+						<Table :data="tableDataDetail" ref="curRef" @onSort="onSort"></Table>
 					</div>
 				</panel>
 			</el-col>
@@ -963,6 +963,9 @@
 			back(){
 				this.detailShow = 1;
 				this.clearDb();
+			},
+			onSort(){
+				this.clearDb();
 			}
 		}
 	};

+ 5 - 2
src/views/Decision/Decision2Cjdb.vue

@@ -43,7 +43,7 @@
 			<toolbar-panel title="场际对标" :showLine="false"></toolbar-panel>
 			<div class="mg-b-16">
 				<div class="project-table">
-					<Table :data="tableData" :canScroll="false" ref="curRef"></Table>
+					<Table :data="tableData" :canScroll="false" ref="curRef" @onSort="onSort"></Table>
 				</div>
 			</div>
 			<el-row class="mg-b-16">
@@ -69,7 +69,7 @@
 			<el-col :span="24" class="pd-l-8">
 				<panel :title="'风机对标列表明细'" :showLine="false">
 					<div class="project-table">
-						<Table :data="tableDataDetail" ref="curRef"></Table>
+						<Table :data="tableDataDetail" ref="curRef" @onSort="onSort"></Table>
 					</div>
 				</panel>
 			</el-col>
@@ -886,6 +886,9 @@
 			back() {
 				this.detailShow = 1;
 				this.clearDb();
+			},
+			onSort(){
+				this.clearDb();
 			}
 		}
 	};

+ 5 - 2
src/views/Decision/Decision2Cndb.vue

@@ -43,7 +43,7 @@
 			<toolbar-panel title="场内对标" :showLine="false"></toolbar-panel>
 			<div class="mg-b-16">
 				<div class="project-table">
-					<Table :data="tableData" :canScroll="false" ref="curRef"></Table>
+					<Table :data="tableData" :canScroll="false" ref="curRef" @onSort="onSort"></Table>
 				</div>
 			</div>
 			<el-row :type="'flex'" class="content">
@@ -59,7 +59,7 @@
 			<el-col :span="24" class="pd-l-8">
 				<panel :title="'风机对标列表明细'" :showLine="false">
 					<div class="project-table">
-						<Table :data="tableDataDetail" ref="curRef"></Table>
+						<Table :data="tableDataDetail" ref="curRef" @onSort="onSort"></Table>
 					</div>
 				</panel>
 			</el-col>
@@ -853,6 +853,9 @@
 			back() {
 				this.detailShow = 1;
 				this.clearDb();
+			},
+			onSort(){
+				this.clearDb();
 			}
 		}
 	};

+ 2 - 0
src/views/Decision/Decision2Xldb.vue

@@ -134,12 +134,14 @@
 							field: "index",
 							is_num: false,
 							is_light: false,
+							width: "50px",
 						},
 						{
 							name: "",
 							field: "check",
 							is_num: false,
 							is_light: false,
+							width: "50px",
 							template: function() {
 								return "<input class='check curCheckBox' type='CheckBox'/>";
 							},

+ 5 - 2
src/views/Decision/Decision2Xmdb.vue

@@ -53,7 +53,7 @@
 			<toolbar-panel title="项目对标" :showLine="false"></toolbar-panel>
 			<div class="mg-b-16">
 				<div class="project-table">
-					<Table :data="tableData" :canScroll="false" ref="curRef"></Table>
+					<Table :data="tableData" :canScroll="false" ref="curRef" @onSort="onSort"></Table>
 				</div>
 			</div>
 			<el-row class="mg-b-16">
@@ -79,7 +79,7 @@
 			<el-col :span="24" class="pd-l-8">
 				<panel :title="'风机对标列表明细'" :showLine="false">
 					<div class="project-table">
-						<Table :data="tableDataDetail" ref="curRef"></Table>
+						<Table :data="tableDataDetail" ref="curRef" @onSort="onSort"></Table>
 					</div>
 				</panel>
 			</el-col>
@@ -930,6 +930,9 @@
 			back() {
 				this.detailShow = 1;
 				this.clearDb();
+			},
+			onSort(){
+				this.clearDb();
 			}
 		}
 	};

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

@@ -0,0 +1,513 @@
+<template>
+	<div class="decision-page-3">
+		<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="value1" @change="ChangZhanChange(value1)" clearable 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="value2" @change="XiangMuChange(value2)" multiple multiple-limit="5"
+							placeholder="请选择" popper-class="select">
+							<el-option v-for="item in XiangMu" :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-date-picker v-model="value4" @change="BeginChange(value4)" type="date"
+							value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
+						</el-date-picker>
+					</div>
+				</div>
+				<div class="query-actions">
+					<button class="btn" @click="reset">重置</button>
+				</div>
+			</div>
+			<div class="actions mg-b-8">
+				<button class="btn" :class="TypeClass==0?'green':''" @click="TypeClick(0)">日风电机对比</button>
+				<button class="btn" :class="TypeClass==1?'green':''" @click="TypeClick(1)">月风电机对比</button>
+				<button class="btn" :class="TypeClass==2?'green':''" @click="TypeClick(2)">年风电机对比</button>
+			</div>
+		</div>
+		<!-- 列表 -->
+		<toolbar-panel title="单机横向对比" :showLine="false"></toolbar-panel>
+		<div class="info">
+			<div class="mg-b-16">
+				<div class="project-table">
+					<Table :data="tableData"></Table>
+				</div>
+			</div>
+			<!-- 风资源列表 -->
+			<div class="direction-info mg-b-16">
+				<table class="com-table">
+					<tbody>
+						<tr>
+							<td v-for="(col, i) of tableData.column" :key="i">
+								<div v-if="i == 0">22</div>
+								<div v-if="i == 1">风资源</div>
+								<div v-if="i != 0 && i != 1">
+									<div class="direction-title">{{listName[i - 2]}}</div>
+									<div class="direction-chart" :class="(i-2) < fzyData.length?'':'hide'">
+										<normal-radar-chart :width="'70%'" :height="'232px'" :value="fzyData[i-2]" />
+									</div>
+								</div>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+			<!-- 日功率曲线 -->
+			<div>
+				<toolbar-panel :title="'日功率曲线'">
+					<template v-slot:tools>
+						<div class="tools">
+							<div class="tool-block" v-for="(item , index) in listName">
+								<div class="legend" :class="'bg-'+(index + 1)"></div>
+								<div class="legend-text">{{item}}</div>
+							</div>
+						</div>
+					</template>
+					<double-line-chart :height="'200px'" :list="list" />
+				</toolbar-panel>
+			</div>
+		</div>
+	</div>
+
+</template>
+
+<script>
+	import DoubleLineChart from "../../components/chart/line/double-line-chart.vue";
+	import NormalRadarChart from "../../components/chart/radar/normal-radar-chart.vue";
+	import SvgIcon from "../../components/coms/icon/svg-icon.vue";
+	import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
+	import Table from "../../components/coms/table/table.vue";
+	export default {
+		components: {
+			Table,
+			SvgIcon,
+			ToolbarPanel,
+			DoubleLineChart,
+			NormalRadarChart
+		},
+		data() {
+			return {
+				tableData: {
+					column: [{
+							name: "",
+							field: "index",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "项目",
+							field: "name",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "",
+							field: "data1",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "",
+							field: "data2",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "",
+							field: "data3",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "",
+							field: "data4",
+							is_num: false,
+							is_light: false,
+						}, {
+							name: "",
+							field: "data5",
+							is_num: false,
+							is_light: false,
+						}
+					],
+					data: [],
+				},
+				ChangZhan: [], //场站
+				XiangMu: [], //项目
+				value1: [],
+				value2: [],
+				value4: "",
+				fzyData: [],
+				list: [],
+				listName: [],
+				TypeClass:0,
+				ajaxArr:['daydjhxdbtop','monthdjhxdbtop','yeardjhxdbtop'],
+				ajaxName:'daydjhxdbtop'
+			};
+		},
+		created() {
+			this.ChangZhanVal();
+			this.value4 = this.getTime(1);
+			this.AjaxCommon();
+		},
+		methods: {
+			ChangZhanVal() {
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://10.155.32.4:9001/",
+					subUrl: "benchmarking/wplist",
+					success(res) {
+						that.ChangZhan = res.data;
+					}
+				});
+			},
+			ChangZhanChange(val) {
+				this.value1 = val;
+				this.value2 = [];
+				this.AjaxCommon();
+				this.XiangMuVal(val);
+			},
+			XiangMuVal(val) {
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://10.155.32.4:9001/",
+					subUrl: "benchmarking/wtList",
+					data: {
+						wpid: val
+					},
+					success(res) {
+						that.XiangMu = res.data;
+					}
+				});
+			},
+			XiangMuChange(val) {
+				var that = this;
+				that.value2 = val;
+				that.AjaxCommon();
+			},
+			getTime(val) { //时间戳处理,val=1是默认开始时间(当前月第一天),val=2是默认结束时间(今天)
+				var date = new Date();
+				var year = date.getFullYear(),
+					month = date.getMonth() + 1,
+					day = date.getDate();
+				month >= 1 && month <= 9 ? (month = '0' + month) : '';
+				day >= 0 && day <= 9 ? (day = '0' + day) : '';
+				var begin = year + '-' + month + '-01';
+				var end = year + '-' + month + '-' + day;
+				if (val == 1) {
+					return begin;
+				} else if (val == 2) {
+					return end;
+				}
+			},
+			AjaxCommon() {
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://10.155.32.4:9001/",
+					subUrl: "benchmarking/"+that.ajaxName,
+					data: {
+						wpid: that.value1,
+						wtids: that.value2,
+						date: that.value4,
+						target: '',
+						sort: ''
+					},
+					success(res) {
+						var data = res.data,
+							data2 = [],
+							chart = [],
+							fzy = [],
+							fzyArr = [],
+							jfpl = [],
+							jfplArr = [];
+						let thisItem = [];
+						jfpl = data.pop(); //静风频率
+						fzy = data.pop(); //风资源
+						data.forEach((ele, index) => {
+							for (let key in ele) {
+								if (key !== "name") {
+									thisItem.push(ele[key])
+								}
+							}
+						})
+
+						var count = thisItem.length / data.length;
+
+						data.forEach((item, index) => {
+							data2.push({
+								index: index + 1,
+								name: item.name,
+								data1: thisItem[index * count],
+								data2: count >= 2 ? thisItem[index * count + 1] : [],
+								data3: count >= 3 ? thisItem[index * count + 2] : [],
+								data4: count >= 4 ? thisItem[index * count + 3] : [],
+								data5: count >= 5 ? thisItem[index * count + 4] : [],
+								is_light: false
+							})
+						})
+
+						Object.keys(fzy).map((key) => {
+							fzyArr.push(fzy[key])
+						})
+						Object.keys(jfpl).map((key) => {
+							jfplArr.push(jfpl[key])
+						})
+						fzyArr.pop();
+						var jfplName = jfplArr.pop();
+						var indicator = ["北", "北北西", "北西", "西北西", "西", "西南西", "南西", "南南西", "南", "南南东", "东南", "东南东",
+							"东", "东北东", "北东", "北北东"
+						];
+
+						var fzyDataArr = [];
+						fzyArr.forEach((item, index) => {
+							var arr = [];
+							item.forEach((e, i) => {
+								arr.push(e.value)
+							});
+							fzyDataArr.push([{
+								indicator: indicator,
+								data: [{
+									value: arr
+								}],
+								name: jfplArr[index]
+							}])
+						});
+						that.fzyData = fzyDataArr;
+						that.tableData.data = data2;
+					}
+				});
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://10.155.32.4:9001/",
+					subUrl: "benchmarking/djhxdbbottom",
+					data: {
+						wpid: that.value1,
+						wtids: that.value2,
+						date: that.value4
+					},
+					success(res) {
+						var data = res.data;
+
+						var arrName = [],
+							arrKey = [],
+							arrData = [],
+							tempArray = [];
+						data.forEach(ele => {
+							for (let key in ele) {
+								if (key !== "name") {
+									arrKey.push(key)
+									arrData.push(ele[key])
+								} else {
+									arrName.push(ele[key])
+								}
+							}
+						});
+						that.listName = arrName;
+						for (var i = 0; i < arrKey.length - 1; i++) { //冒泡排序
+							for (var j = 0; j < arrKey.length - 1 - i; j++) {
+								if (parseInt(arrKey[j]) > parseInt(arrKey[j + 1])) {
+									var temp = arrKey[j];
+									arrKey[j] = arrKey[j + 1];
+									arrKey[j + 1] = temp;
+									var temp2 = arrData[j];
+									arrData[j] = arrData[j + 1];
+									arrData[j + 1] = temp2;
+								}
+							}
+						}
+						for (var i = 0; i < data.length; i++) {
+							var arr = [];
+							arrData.forEach((e, index) => {
+								if ((index * data.length + i) < arrData.length) {
+									arr.push({
+										text: arrKey[index * data.length + i],
+										value: arrData[index * data.length + i],
+									})
+								}
+							})
+							tempArray.push({
+								title: arrName[i],
+								value: arr
+							})
+						}
+						that.list = tempArray
+					}
+
+				});
+			},
+			reset() { //重置
+				this.value1 = [];
+				this.value2 = [];
+				this.value4 = this.getTime(1);
+				this.AjaxCommon();
+			},
+			TypeClick(val) {
+				this.TypeClass = val;
+				// 重置状态start
+				this.value1 = [];
+				this.value2 = [];
+				this.value4 = this.getTime(1);
+				this.ajaxName=this.ajaxArr[val];
+				this.AjaxCommon();
+				// 重置状态end
+			},
+		}
+	};
+</script>
+
+<style lang="less">
+	.decision-page-3 {
+		.com-panel {
+			.panel-title {
+				color: @gray-l;
+			}
+
+			.tools {
+				display: flex;
+
+				.tool-block {
+					display: flex;
+					align-items: center;
+					margin-left: 0.741vh;
+
+					.legend {
+						flex: auto;
+						width: 0.741vh;
+						height: 0.741vh;
+						margin-right: 0.741vh;
+
+						&.long {
+							width: 2.963vh;
+							height: 0.37vh;
+						}
+					}
+
+					.legend-text {
+						color: @gray-l;
+						font-size: @fontsize-s;
+					}
+				}
+			}
+		}
+
+		.info {
+			overflow: auto;
+			height: calc(100vh - 150px);
+		}
+
+		.project-table {
+			overflow: auto;
+
+			.com-table {
+				tbody {
+					padding-right: 0px;
+				}
+
+				th,
+				td {
+					color: #b2bdc0;
+
+					&:nth-child(1) {
+						width: 32px;
+					}
+
+					&:nth-child(2) {
+						width: 183px;
+					}
+				}
+			}
+		}
+
+		.direction-info {
+			.com-table {
+				tbody {
+					padding-right: 0px;
+				}
+
+				th,
+				td {
+					color: #b2bdc0;
+					padding: 0;
+
+					&:nth-child(1) {
+						width: 32px;
+						background-color: fade(#536268, 20);
+					}
+
+					&:nth-child(2) {
+						width: 183px;
+						background-color: fade(#536268, 40);
+					}
+
+					.direction-title {
+						background-color: fade(#536268, 20);
+						font-size: @fontsize-s;
+						line-height: 2.963vh;
+					}
+
+					.direction-chart {
+						padding-top: 48px;
+
+						.legend {
+							display: flex;
+							align-items: center;
+							justify-content: center;
+							margin-top: 32px;
+							margin-bottom: 16px;
+
+							.dot {
+								width: 7px;
+								height: 7px;
+								background: @green;
+								display: inline-block;
+								margin-right: 8px;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+
+	.hide {
+		opacity: 0;
+	}
+
+	.bg-1 {
+		background: #05bb4c
+	}
+
+	.bg-2 {
+		background: #f8de5b
+	}
+
+	.bg-3 {
+		background: #4b55ae
+	}
+
+	.bg-4 {
+		background: #fa8c16
+	}
+
+	.bg-5 {
+		background: #1DA0D7
+	}
+</style>

+ 1 - 1
src/views/Decision/Decision4.vue

@@ -25,7 +25,7 @@
 				
 			</div>
 		</div>
-		
+		<toolbar-panel title="值际对标" :showLine="false"></toolbar-panel>
 		<div class="mg-b-16">
 			<div class="project-table">
 				<Table :data="tableData"></Table>

+ 5 - 2
src/views/Decision/Decision4Czzl.vue

@@ -24,7 +24,7 @@
 
 			</div>
 		</div>
-
+		<toolbar-panel title="操作指令统计" :showLine="false"></toolbar-panel>
 		<div class="mg-b-16">
 			<div class="project-table">
 				<Table :data="tableData"></Table>
@@ -58,11 +58,13 @@
 	import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 	import Panel from "../../components/coms/panel/panel.vue";
 	import Table from "../../components/coms/table/table.vue";
+	import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
 	export default {
 		components: {
 			Panel,
 			Table,
-			SvgIcon
+			SvgIcon,
+			ToolbarPanel
 		},
 		data() {
 			let that = this;
@@ -79,6 +81,7 @@
 							field: "nameOfDuty",
 							is_num: false,
 							is_light: false,
+							width: "250px",
 						},
 						{
 							name: "启动",

+ 312 - 0
src/views/Decision/table.vue

@@ -0,0 +1,312 @@
+<template>
+  <table class="com-table">
+    <thead>
+      <tr>
+        <th v-for="(col, index) of data.column" :key="index" :class="{ light: col.is_light }" :style="{ width: col.width }" @click="onSort(col)">
+          {{ col.name }}
+        </th>
+      </tr>
+    </thead>
+    <el-scrollbar>
+      <tbody :style="{ height: height }">
+        <tr v-for="(row, index) of tableData" :key="index">
+          <td
+            v-for="(col, i) of data.column"
+            :key="i"
+            :style="{ width: col.width }"
+            :class="{ light: hoverRow == row || hoverCol == col, num: col.is_num, 'always-light': col.is_light || row.is_light }"
+            @mouseenter="hover(row, col)"
+            @mouseleave="leave()"
+          >
+            <component :is="col.type ? col.type : 'div'" v-bind="col.props" v-html="template(col, row[col.field])" @click="onClick(col, row)"> </component>
+          </td>
+        </tr>
+		<slot name="tr"></slot>
+      </tbody>
+    </el-scrollbar>
+    <el-pagination class="mg-t-8" v-if="pageable" @current-change="handleCurrentChange" :current-page="currentPage4" :page-size="pageSize" layout="total, prev, pager, next, jumper" :total="data.total"> </el-pagination>
+  </table>
+</template>
+
+<script>
+export default {
+  // 名称
+  name: "ComTable",
+  // 使用组件
+  components: {},
+  // 传入参数
+  props: {
+    /**
+             * {
+                    column: [{
+                        name: "风机名称",
+                        field: "name",
+                        type:'div',
+                        width:'', // 宽度
+                        is_num: false, // 是否为数字
+                        is_light: false, // 是否高亮
+                        template:function(){ }
+                        click:function(){} //点击事件
+                        sortable:fasle // 排序
+                        // 新增用于在表格中使用动态三方组件
+                        type:'el-tag', // * 新增 用于传入三方组件名称 实现三方组件引入  component :is 方式实现
+                        props:{}, // * 新增 用户传入三方组件的 props 与type同时使用
+                    },{
+                        name: "冷却风温度",
+                        field: "lqf",
+                        is_num: true,
+                        is_light: false
+                    }],
+                    data: [{
+                        name: "1E01",
+                        lqf: 15.78,
+                        is_light: false
+                    }],
+                    total:200
+                }
+             */
+    data: Object,
+    // hover 样式
+    showHover: {
+      type: Boolean,
+      default: true,
+    },
+    canScroll: {
+      type: Boolean,
+      default: true,
+    },
+    pageSize: {
+      type: Number,
+      default: 0,
+    },
+    height: {
+      type: String,
+      default: "",
+    },
+  },
+  // 自定义事件
+  emits: {
+    // 分页事件
+    onPagging: null,
+  },
+  // 数据
+  data() {
+    return {
+      hoverRow: -1,
+      hoverCol: -1,
+      sortCol: "",
+      sortType: "",
+      currentPage: 1,
+    };
+  },
+  computed: {
+    tableData() {
+      let that = this;
+      if (this.sortCol == "") {
+        return this.data.data;
+      } else {
+        let data = this.data.data;
+
+        data.sort((a, b) => {
+          let rev = 1;
+          if (that.sortType == "ASC") rev = 1;
+          else if (that.sortType == "DESC") rev = -1;
+
+          if (a[that.sortCol] > b[that.sortCol]) return rev * 1;
+          if (a[that.sortCol] < b[that.sortCol]) return rev * -1;
+          return 0;
+        });
+        return data;
+      }
+    },
+    pageable() {
+      return this.pageSize != 0;
+    },
+    pages() {
+      if (this.pageable) return parseInt(this.data.total / this.pageSize) + 1;
+      else return 0;
+    },
+    startRow() {
+      if (this.pageable) return (this.currentPage - 1) * this.pageSize;
+      else return 0;
+    },
+    endRow() {
+      if (this.pageable) return this.currentPage * this.pageSize;
+      else return this.data.data.length;
+    },
+  },
+  // 函数
+  methods: {
+    clearCheckBox(time){
+      this.$nextTick(()=>{
+        setTimeout(()=>{
+          const domArray = document.querySelectorAll(".curCheckBox");
+          for(let i=0;i<domArray.length;i++){
+            domArray[i].checked=false;
+          }
+        },(time || 300));
+      });
+    },
+    onClick(col, data) {
+      if (col.click) col.click(event, data);
+    },
+    onSort(col) {
+      if (col.sortable == true) {
+        this.sortCol = col.field;
+        switch (this.sortType) {
+          case "":
+            this.sortType = "DESC";
+            break;
+          case "DESC":
+            this.sortType = "ASC";
+            break;
+          case "ASC":
+            this.sortType = "";
+            break;
+        }
+      }
+    },
+    template(col, data) {
+      if (!col.template) return data;
+      else return col.template(data);
+    },
+    hover(row, col) {
+      if (this.showHover) {
+        this.hoverRow = row;
+        this.hoverCol = col;
+      }
+    },
+    leave() {
+      this.hoverRow = -1;
+      this.hoverCol = -1;
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.$emit("onPagging", {
+        pageIndex: this.currentPage,
+        pageSize: this.pageSize,
+        start: this.startRow,
+        end: this.endRow,
+      });
+    },
+  },
+  // 生命周期钩子
+  beforeCreate() {
+    // 创建前
+  },
+  created() {
+    // 创建后
+  },
+  beforeMount() {
+    // 渲染前
+  },
+  mounted() {
+    // 渲染后
+  },
+  beforeUpdate() {},
+  updated() {},
+};
+</script>
+
+<style lang="less">
+@titleGray: #9ca5a8;
+@rowGray: #606769;
+@darkBack: #536268;
+.com-table {
+  width: 100%;
+  border-collapse: collapse;
+
+  thead {
+    tr {
+      display: table;
+      table-layout: fixed;
+      width: 100%;
+
+      th {
+        background-color: fade(@darkBack, 20%);
+        height: 30px;
+        line-height: 30px;
+        color: @titleGray;
+        font-weight: 400;
+        font-size: @fontsize-s;
+        position: sticky;
+        top: 0;
+        cursor: pointer;
+
+        &.light,
+        &.always-light {
+          color: @green;
+        }
+      }
+    }
+  }
+
+  tbody {
+    display: block;
+
+    tr {
+      display: table;
+      table-layout: fixed;
+      width: 100%;
+
+      &:nth-child(2n) {
+        background-color: fade(@rowGray, 20%);
+      }
+
+      td {
+        padding: 0.556vh 0;
+        color: @rowGray;
+        text-align: center;
+        font-size: @fontsize-s;
+        overflow: hidden; //隐藏文字
+        text-overflow: ellipsis; //显示 ...
+        white-space: nowrap; //不换行
+
+        &.light,
+        &.always-light {
+          color: @green !important;
+        }
+
+        &.num {
+          font-family: "Bicubik";
+          font-weight: 400;
+        }
+      }
+    }
+  }
+
+  .el-pagination {
+    color: @gray;
+    .el-pagination__total {
+      color: @gray;
+    }
+
+    button {
+      &.btn-next,
+      &.btn-prev {
+        background: center center no-repeat fade(@gray, 20);
+        color: @gray-l;
+      }
+      &:disabled {
+        color: @gray-l;
+        background-color: fade(@gray, 20);
+        cursor: not-allowed;
+      }
+    }
+
+    .el-pager li {
+      color: @gray-l;
+      background: fade(@gray, 20);
+      &.active {
+        color: @green;
+      }
+    }
+
+    .el-input__inner {
+      color: @gray-l;
+      background: fade(@gray, 20);
+      border: 1px solid fade(@gray, 20);
+    }
+  }
+}
+</style>

+ 0 - 546
src/views/HealthControl/HealthDay.vue

@@ -1,546 +0,0 @@
-<template>
-	<div class="decision-page-2">
-		<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="value2" @change="MoKuaiChange(value2)" multiple placeholder="请选择"
-							popper-class="select">
-							<el-option v-for="item in MoKuai" :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="value1" @change="ChangZhanChange(value1)" multiple 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-date-picker v-model="value4" @change="BeginChange(value4)" type="date"
-							value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
-						</el-date-picker>
-					</div>
-				</div>
-			</div>
-			<div class="query-actions">
-				<button class="btn" @click="dbfx">对比</button>
-			</div>
-		</div>
-
-		<div class="mg-b-16">
-			<div class="project-table">
-				<Table :data="tableData" :canScroll="false" ref="curRef"></Table>
-			</div>
-		</div>
-		<el-dialog title="对标排名分析" v-model="dialogVisible" width="70%" top="10vh" custom-class="modal"
-			:close-on-click-modal="false">
-			<dayinfo :radarValue="radarValue" :windNum="windNum" :windNum2="windNum2" :tabs="tabs"
-				:analyisDialog="analyisDialog" />
-		</el-dialog>
-	</div>
-</template>
-
-<script>
-	import SvgIcon from "../../components/coms/icon/svg-icon.vue";
-	import Panel from "../../components/coms/panel/panel.vue";
-	import Table from "../../components/coms/table/table.vue";
-	import Dayinfo from "./dayinfo.vue";
-	export default {
-		components: {
-			Panel,
-			Table,
-			SvgIcon,
-			Dayinfo
-		},
-		data() {
-			let that = this;
-			return {
-				tableIdArr: [], //放checkbox的id数组
-				tableId: [],
-				checkLength: 0, //对标分析只能选择2个
-				tableData: {
-					column: [{
-							name: "",
-							field: "index",
-							is_num: false,
-							is_light: false,
-						},
-						{
-							name: "",
-							field: "check",
-							is_num: false,
-							is_light: false,
-							template:() => {
-								return "<input class='check curCheckBox' type='CheckBox' />";
-							},
-							click: function(event, data) {
-								var dataId = that.tableIdArr[data.index - 1];
-								if (event.target.checked == false && that.checkLength <= 2) {
-									that.tableId.forEach((item, i) => {
-										if (item == dataId) {
-											that.tableId.splice(i, 1)
-										}
-									})
-									that.checkLength--;
-								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
-									that.checkLength++;
-								} else if (that.checkLength == 2) {
-									event.target.checked = false;
-								}
-							},
-						},
-						{
-							name: "风机编号",
-							field: "name",
-							is_num: false,
-							is_light: false,
-						},
-						{
-							name: "等级",
-							field: "dj",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},
-						{
-							name: "综合排名",
-							field: "zhpm",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},
-						{
-							name: "发电量",
-							field: "fdl",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},
-						{
-							name: "理论发电量",
-							field: "llfdl",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},
-						{
-							name: "平均风速",
-							field: "pjfs",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},
-						{
-							name: "平均功率",
-							field: "pjgl",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},
-						{
-							name: "故障损失电量",
-							field: "gzssdl",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},
-						{
-							name: "限电损失电量",
-							field: "xdssdl",
-							is_num: false,
-							is_light: true,
-							sortable: true,
-						},
-						{
-							name: "维护损失电量",
-							field: "whssdl",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},
-						{
-							name: "性能损失电量",
-							field: "xnssdl",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},
-						{
-							name: "利用小时数",
-							field: "lyxss",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						}, {
-							name: "拟合优度",
-							field: "nhyd",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						}, {
-							name: "设备可利用率",
-							field: "sbklyl",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						}, {
-							name: "等效可用系数",
-							field: "dxkyxs",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						}, {
-							name: "有效风时数",
-							field: "yxfss",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						},{
-							name: "平均切入风速",
-							field: "pjqrfs",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						}, {
-							name: "静风频率",
-							field: "jfpl",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						}, {
-							name: "功率一致性系数",
-							field: "glyzxxs",
-							is_num: false,
-							is_light: false,
-							sortable: true,
-						}
-					],
-					data: [],
-				},
-				ChangZhan: [], //场站
-				MoKuai: [], //项目
-				value1: [],
-				value2: [],
-				value3: "",
-				dialogVisible: false,
-				radarValue: [],
-				windNum: 'dd',
-				windNum2: 'dd',
-				tabs: [],
-				analyisDialog: [],
-				ajaxData:[],
-			};
-		},
-		created() {
-			this.ChangZhanVal();
-			this.value3 = this.getTime(1);
-			this.AjaxCommon();
-			this.MoKuaiVal();
-		},
-		methods: {
-			MoKuaiVal(val) {
-				var that = this;
-				that.API.requestData({
-					method: "GET",
-					baseURL : "10.155.32.4:8034",
-					subUrl: "evaluation/modelMainList",
-					success(res) {
-						console.log(JSON.stringify(res))
-						that.MoKuai = res.data;
-					}
-				});
-			},
-			MoKuaiChange(val) {
-				this.value2 = val;
-				this.value3 = [];
-				this.AjaxCommon();
-				this.XianLuVal(val);
-				this.clearDb();
-			},
-			ChangZhanVal() {
-				var that = this;
-				that.API.requestData({
-					method: "GET",
-					baseURL : "10.155.32.4:8034",
-					subUrl: "evaluation/wplist",
-					success(res) {
-						that.ChangZhan = res.data;
-					}
-				});
-			},
-			ChangZhanChange(val) {
-				this.value1 = val;
-				this.value2 = [];
-				this.value3 = [];
-				this.AjaxCommon();
-				this.MoKuaiVal(val);
-				this.clearDb();
-			},
-			BeginChange(val) {
-				this.value4 = val;
-				this.AjaxCommon();
-				this.clearDb();
-			},
-			getTime(val) { //时间戳处理,val=1是默认开始时间(当前月第一天),val=2是默认结束时间(今天)
-				var date = new Date();
-				var year = date.getFullYear(),
-					month = date.getMonth() + 1,
-					day = date.getDate();
-				month >= 1 && month <= 9 ? (month = '0' + month) : '';
-				day >= 0 && day <= 9 ? (day = '0' + day) : '';
-				var begin = year + '-' + month + '-01';
-				var end = year + '-' + month + '-' + day;
-				if (val == 1) {
-					return begin;
-				} else if (val == 2) {
-					return end;
-				}
-			},
-			AjaxCommon() {
-				var that = this;
-				that.API.requestData({ //五项损失率
-					method: "GET",
-					baseURL : "10.155.32.4:8034",
-					subUrl: "evaluation/wxssl",
-					data: {
-						wpids: that.value1,
-						projectids: that.value2,
-						lineids: that.value3,
-						beginDate: that.value4,
-						endDate: that.value5,
-						target: '',
-						sort: ''
-					},
-					success(res) {
-						that.ajaxData = res.data;
-						var dataTab = []; //表格
-						res.data.forEach((item, index) => {
-							that.tableIdArr.push(item.id);
-							dataTab.push({ //表格
-								index: index + 1,
-								name: item.name,
-								dj: item.dj,
-								zhpm: item.zhpm,
-								fdl: item.fdl,
-								llfdl: item.llfdl,
-								pjfs: item.gzssdl,
-								pjgl: item.pjgl,
-								gzssdl: item.gzssdl,
-								lyxss: item.lyxss,
-								whssdl: item.whssdl,
-								xnssdl: item.xnssdl,
-								lyxss: item.lyxss,
-								nhyd: item.nhyd,
-								sbklyl: item.sbklyl,
-								dxkyxs: item.dxkyxs,
-								yxfss: item.yxfss,
-								pjqrfs: item.pjqrfs,
-								jfpl: item.jfpl,
-								glyzxxs: item.glyzxxs,
-								jxssl: item.jxssl,
-								qflpm: item.qflpm,
-								qfl: item.qfl,
-								xnsslpm: item.xnsslpm,
-								xnssl: item.xnssl,
-								slsslpm: item.slsslpm,
-								slssl: item.slssl,
-								is_light: false
-							})
-
-						})
-						that.tableData.data = dataTab;
-					}
-				});
-			},
-			AjaxDbfx() {
-				var that = this;
-				var data = that.ajaxData;
-				that.windNum = data[0].name;
-				that.windNum2 = data[1].name;
-				that.tabs = [{
-					name: "发电量",
-					windData1: data[0].fdl,
-					windData2: data[1].fdl
-				}, {
-					name: "故障损失电量",
-					windData1: data[0].gzssdl,
-					windData2: data[1].gzssdl
-				}, {
-					name: "检修损失电量",
-					windData1: data[0].jxssdl,
-					windData2: data[1].jxssdl
-				}, {
-					name: "性能未达标损失电量",
-					windData1: data[0].xnssdl,
-					windData2: data[1].xnssdl
-				}, {
-					name: "受累损失电量",
-					windData1: data[0].slssdl,
-					windData2: data[1].slssdl
-				}, {
-					name: "风能利用率",
-					windData1: data[0].fnlyl,
-					windData2: data[1].fnlyl
-				}, {
-					name: "故障损失率",
-					windData1: data[0].gzssl,
-					windData2: data[1].gzssl
-				}, {
-					name: "检修损失率",
-					windData1: data[0].jxssl,
-					windData2: data[1].jxssl
-				}, {
-					name: "弃风率",
-					windData1: data[0].qfl,
-					windData2: data[1].qfl
-				}, {
-					name: "性能损失率",
-					windData1: data[0].xnssl,
-					windData2: data[1].xnssl
-				}, {
-					name: "受累损失率",
-					windData1: data[0].slssl,
-					windData2: data[1].slssl
-				}];
-				
-				that.radarValue = [{
-					indicator: ["风能利用率", "故障损失率", "检修损失率", "弃风率", "性能损失率", "受累损失率"],
-					data: [{
-						value: [data[0].fnlylpm, data[0].gzsslpm, data[0].jxsslpm, data[0].qflpm,
-							data[0].xnsslpm, data[0].slsslpm
-						]
-					}, {
-						value: [data[1].fnlylpm, data[1].gzsslpm, data[1].jxsslpm, data[1].qflpm,
-							data[1].xnsslpm, data[1].slsslpm
-						]
-					}]
-				}];
-				
-				var analyis = [],
-					gzssdl = [],
-					jxssdl = [],
-					xnssdl = [],
-					xdssdl = [],
-					slssdl = [];
-				data.forEach((item, index) => {
-					gzssdl.push({
-						text: item.name,
-						value: item.gzssdl
-					});
-					jxssdl.push({
-						text: item.name,
-						value: item.jxssdl
-					});
-					xnssdl.push({
-						text: item.name,
-						value: item.xnssdl
-					});
-					xdssdl.push({
-						text: item.name,
-						value: item.xdssdl
-					});
-					slssdl.push({
-						text: item.name,
-						value: item.slssdl
-					});
-				})
-				analyis.push({
-					title: "故障损失电量",
-					yAxisIndex: 0,
-					value: gzssdl
-				}, {
-					title: "检修损失电量",
-					yAxisIndex: 0,
-					value: jxssdl
-				}, {
-					title: "性能损失电量",
-					yAxisIndex: 0,
-					value: xnssdl
-				}, {
-					title: "限电损失电量",
-					yAxisIndex: 0,
-					value: xdssdl
-				}, {
-					title: "受累损失电量",
-					yAxisIndex: 0,
-					value: slssdl
-				})
-				that.analyisDialog = analyis;
-				
-			},
-			tooltip(param, callback) {
-				var color = ["#05bb4c", "#4b55ae", "#fa8c16", "#f8de5b"];
-
-				var result = param[0].axisValue;
-				param.forEach((value, index) => {
-					result += "<br />" +
-						`<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:${color[index]};"></span>` +
-						value.seriesName + ":" + value.value;
-				});
-				callback(result);
-				return true;
-			},
-			dbfx() {
-				var that = this;
-				if (that.tableId.length == 2) {
-					that.dialogVisible = true;
-					this.AjaxDbfx();
-					this.clearDb();
-				}
-			},
-			clearDb(){//清空对标状态
-				this.$refs.curRef.clearCheckBox();
-				this.tableId = [];
-				this.checkLength = 0;
-			}
-		}
-	};
-</script>
-
-<style lang="less">
-	.decision-page-2 {
-		.content .project-table {
-			tbody {
-				height: calc(100vh - 24.5vh);
-			}
-		}
-
-		.project-table {
-			overflow: auto;
-
-			tbody {
-				height: 279px;
-			}
-
-			th,
-			td {
-				color: #b2bdc0;
-
-				&:nth-child(1) {
-					width: 50px;
-				}
-
-				&:nth-child(2) {
-					width: 50px;
-				}
-			}
-		}
-
-		.action {
-			text-decoration: underline;
-			color: @green;
-			cursor: pointer;
-		}
-	}
-</style>

+ 0 - 8
src/views/HealthControl/HealthMonth.vue

@@ -1,8 +0,0 @@
-<template>
-</template>
-
-<script>
-</script>
-
-<style>
-</style>

+ 0 - 8
src/views/HealthControl/HealthYear.vue

@@ -1,8 +0,0 @@
-<template>
-</template>
-
-<script>
-</script>
-
-<style>
-</style>

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

@@ -390,10 +390,19 @@ export default {
               path: "/decision/decision3",
             },
             {
+              text: "单机横向对比",
+              icon: "svg-matrix",
+              path: "/decision/decision3db",
+            },{
+              text: "操作指令统计",
+              icon: "svg-matrix",
+              path: "/decision/decision4czzl",
+            },
+            {
               text: "值际对标",
               icon: "svg-matrix",
               path: "/decision/decision4",
-            },
+			},
             {
               text: "排行榜",
               icon: "svg-matrix",