Browse Source

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

chenminghua 3 năm trước cách đây
mục cha
commit
e7a05727e2

+ 5 - 0
src/router/index.js

@@ -209,6 +209,11 @@ const routes = [
     component: () => import('../views/wtSaturability/index.vue'),
   },
   {
+    path: '/windAnalysis', // 风资源分析
+    name: 'windAnalysis',
+    component: () => import('../views/windAnalysis/index.vue'),
+  },
+  {
     path: '/knowledge',
     name: 'knowledge1',
     component: () => import('../views/Knowledge/Knowledge1.vue'),

+ 15 - 8
src/views/Decision/Decision2.vue

@@ -95,7 +95,7 @@
 			<el-col :span="24" class="pd-l-8">
 				<panel :title="'风机对标列表明细'" :showLine="false">
 					<div class="project-table">
-						<Table :data="tableDataDetail"></Table>
+						<Table :data="tableDataDetail" ref="curRef"></Table>
 					</div>
 				</panel>
 			</el-col>
@@ -152,12 +152,14 @@
 								if (event.target.checked == false && that.checkLength <= 2) {
 									that.tableId.forEach((item, i) => {
 										if (item == dataId) {
-											that.tableId.splice(i, 1)
+											that.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
@@ -340,6 +342,7 @@
 							},
 							click: function(event, data) {
 								var dataId = that.tableIdArr[data.index - 1];
+								that.clearDb();
 								that.detailShow = 2;
 								// var that = this;
 								that.API.requestData({
@@ -407,19 +410,21 @@
 							is_num: false,
 							is_light: false,
 							template: function() {
-								return "<input class='check checkItem' type='CheckBox'/>";
+								return "<input class='check curCheckBox checkItem' 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.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
@@ -587,6 +592,7 @@
 				analyisDialog: [],
 				detailShow: 1,
 				ajaxData:[],
+				dbData:[]
 			};
 		},
 		created() {
@@ -799,7 +805,6 @@
 							value: slssdl
 						})
 						that.tableData.data = dataTab;
-
 						that.innerFdl = fdl;
 						that.outerFdl = fdl;
 
@@ -815,7 +820,7 @@
 			},
 			AjaxDbfx() {
 				var that = this;
-				var data = that.ajaxData;
+				var data = that.dbData;
 				that.windNum = data[0].name;
 				that.windNum2 = data[1].name;
 				that.tabs = [{
@@ -952,10 +957,12 @@
 			clearDb(){//清空对标状态
 				this.$refs.curRef.clearCheckBox();
 				this.tableId = [];
+				this.dbData = [];
 				this.checkLength = 0;
 			},
 			back(){
 				this.detailShow = 1;
+				this.clearDb();
 			}
 		}
 	};

+ 16 - 13
src/views/Decision/Decision2Cjdb.vue

@@ -69,7 +69,7 @@
 			<el-col :span="24" class="pd-l-8">
 				<panel :title="'风机对标列表明细'" :showLine="false">
 					<div class="project-table">
-						<Table :data="tableDataDetail"></Table>
+						<Table :data="tableDataDetail" ref="curRef"></Table>
 					</div>
 				</panel>
 			</el-col>
@@ -134,12 +134,14 @@
 								if (event.target.checked == false && that.checkLength <= 2) {
 									that.tableId.forEach((item, i) => {
 										if (item == dataId) {
-											that.tableId.splice(i, 1)
+											that.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
@@ -322,6 +324,7 @@
 							},
 							click: function(event, data) {
 								var dataId = that.tableIdArr[data.index - 1];
+								that.clearDb();
 								that.detailShow = 2;
 								that.API.requestData({
 									method: "GET",
@@ -387,19 +390,21 @@
 							is_num: false,
 							is_light: false,
 							template: function() {
-								return "<input class='check' type='CheckBox'/>";
+								return "<input class='check curCheckBox checkItem' 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.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
@@ -560,7 +565,8 @@
 				tabs: [],
 				analyisDialog: [],
 				detailShow: 1,
-				ajaxData: []
+				ajaxData: [],
+				dbData:[]
 			};
 		},
 		created() {
@@ -682,11 +688,6 @@
 								name: item.name
 							})
 
-							ll.push({
-								value: item.llfdl,
-								name: item.name
-							})
-
 							gzssdl.push({
 								text: item.name,
 								value: item.gzssdl
@@ -743,7 +744,7 @@
 			},
 			AjaxDbfx() {
 				var that = this;
-				var data = that.ajaxData;
+				var data = that.dbData;
 				that.windNum = data[0].name;
 				that.windNum2 = data[1].name;
 				that.tabs = [{
@@ -879,10 +880,12 @@
 			clearDb() { //清空对标状态
 				this.$refs.curRef.clearCheckBox();
 				this.tableId = [];
+				this.dbData = [];
 				this.checkLength = 0;
 			},
 			back() {
 				this.detailShow = 1;
+				this.clearDb();
 			}
 		}
 	};

+ 30 - 20
src/views/Decision/Decision2Cndb.vue

@@ -59,7 +59,7 @@
 			<el-col :span="24" class="pd-l-8">
 				<panel :title="'风机对标列表明细'" :showLine="false">
 					<div class="project-table">
-						<Table :data="tableDataDetail"></Table>
+						<Table :data="tableDataDetail" ref="curRef"></Table>
 					</div>
 				</panel>
 			</el-col>
@@ -95,8 +95,7 @@
 			let that = this;
 			return {
 				tableIdArr: [], //放checkbox的id数组
-				tableDateArr: [],
-				tableDate: [],
+				tableId: [],
 				checkLength: 0, //对标分析只能选择2个
 				tableData: {
 					column: [{
@@ -114,16 +113,18 @@
 								return "<input class='check curCheckBox' type='CheckBox'/>";
 							},
 							click: function(event, data) {
-								var dataDate = that.tableDateArr[data.index - 1];
+								var dataId = that.tableIdArr[data.index - 1];
 								if (event.target.checked == false && that.checkLength <= 2) {
-									that.tableDate.forEach((item, i) => {
-										if (item == dataDate) {
-											that.tableDate.splice(i, 1)
+									that.tableId.forEach((item, i) => {
+										if (item == dataId) {
+											that.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableDate.push(dataDate)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
@@ -306,7 +307,7 @@
 							},
 							click: function(event, data) {
 								var dataId = that.tableIdArr[data.index - 1];
-								console.log(dataId)
+								that.clearDb();
 								that.detailShow = 2;
 								// var that = this;
 								that.API.requestData({
@@ -323,7 +324,7 @@
 									success(res) {
 										var dataTab = [];
 										res.data.forEach((item, index) => {
-											that.tableIdArr.push(item.id);
+											that.tableIdArr.push(item.date);
 
 											dataTab.push({ //表格
 												index: index + 1,
@@ -372,19 +373,21 @@
 							is_num: false,
 							is_light: false,
 							template: function() {
-								return "<input class='check' type='CheckBox'/>";
+								return "<input class='check curCheckBox checkItem' 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.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
@@ -543,7 +546,8 @@
 				tabs: [],
 				analyisDialog: [],
 				detailShow: 1,
-				ajaxData: []
+				ajaxData: [],
+				dbData:[]
 			};
 		},
 		created() {
@@ -619,8 +623,7 @@
 							xdssdl = [],
 							slssdl = [];
 						res.data.forEach((item, index) => {
-							that.tableDateArr.push(item.date);
-							that.tableIdArr.push(item.id);
+							that.tableIdArr.push(item.date);
 							dataTab.push({ //表格
 								index: index + 1,
 								zhpm: item.zhpm,
@@ -703,9 +706,14 @@
 			},
 			AjaxDbfx() {
 				var that = this;
-				var data = that.ajaxData;
-				that.windNum = data[0].date.substr(0, 10);
-				that.windNum2 = data[1].date.substr(0, 10);
+				var data = that.dbData;
+				if(that.detailShow == 1){
+					that.windNum = data[0].date.substr(0, 10);
+					that.windNum2 = data[1].date.substr(0, 10);
+				}if(that.detailShow == 2){
+					that.windNum = data[0].name;
+					that.windNum2 = data[1].name;
+				}
 				that.tabs = [{
 					name: "发电量",
 					windData1: data[0].fdl,
@@ -830,7 +838,7 @@
 			},
 			dbfx() {
 				var that = this;
-				if (that.tableDate.length == 2) {
+				if (that.tableId.length == 2) {
 					that.dialogVisible = true;
 					this.AjaxDbfx();
 					this.clearDb();
@@ -839,10 +847,12 @@
 			clearDb() { //清空对标状态
 				this.$refs.curRef.clearCheckBox();
 				this.tableId = [];
+				this.dbData = [];
 				this.checkLength = 0;
 			},
 			back() {
 				this.detailShow = 1;
+				this.clearDb();
 			}
 		}
 	};

+ 16 - 9
src/views/Decision/Decision2Xldb.vue

@@ -89,7 +89,7 @@
 			<el-col :span="24" class="pd-l-8">
 				<panel :title="'风机对标列表明细'" :showLine="false">
 					<div class="project-table">
-						<Table :data="tableDataDetail"></Table>
+						<Table :data="tableDataDetail" ref="curRef"></Table>
 					</div>
 				</panel>
 			</el-col>
@@ -155,12 +155,14 @@
 								if (event.target.checked == false && that.checkLength <= 2) {
 									that.tableId.forEach((item, i) => {
 										if (item == dataId) {
-											that.tableId.splice(i, 1)
+											that.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
@@ -343,6 +345,7 @@
 							},
 							click: function(event, data) {
 								var dataId = that.tableIdArr[data.index - 1];
+								that.clearDb();
 								that.detailShow = 2;
 								that.API.requestData({
 									method: "GET",
@@ -409,24 +412,25 @@
 							is_num: false,
 							is_light: false,
 							template: function() {
-								return "<input class='check' type='CheckBox'/>";
+								return "<input class='check curCheckBox checkItem' 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.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
 								}
-								console.log(that.tableId)
 							},
 						},
 						{
@@ -589,7 +593,8 @@
 				tabs: [],
 				analyisDialog: [],
 				detailShow: 1,
-				ajaxData: []
+				ajaxData: [],
+				dbData:[]
 			};
 		},
 		created() {
@@ -831,7 +836,7 @@
 			AjaxDbfx() {
 
 				var that = this;
-				var data = that.ajaxData;
+				var data = that.dbData;
 				that.windNum = data[0].name;
 				that.windNum2 = data[1].name;
 				that.tabs = [{
@@ -968,10 +973,12 @@
 			clearDb() { //清空对标状态
 				this.$refs.curRef.clearCheckBox();
 				this.tableId = [];
+				this.dbData = [];
 				this.checkLength = 0;
 			},
 			back() {
 				this.detailShow = 1;
+				this.clearDb();
 			}
 		}
 	};

+ 16 - 8
src/views/Decision/Decision2Xmdb.vue

@@ -79,7 +79,7 @@
 			<el-col :span="24" class="pd-l-8">
 				<panel :title="'风机对标列表明细'" :showLine="false">
 					<div class="project-table">
-						<Table :data="tableDataDetail"></Table>
+						<Table :data="tableDataDetail" ref="curRef"></Table>
 					</div>
 				</panel>
 			</el-col>
@@ -144,12 +144,14 @@
 								if (event.target.checked == false && that.checkLength <= 2) {
 									that.tableId.forEach((item, i) => {
 										if (item == dataId) {
-											that.tableId.splice(i, 1)
+											that.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
@@ -332,6 +334,7 @@
 							},
 							click: function(event, data) {
 								var dataId = that.tableIdArr[data.index - 1];
+								that.clearDb();
 								that.detailShow = 2;
 								// var that = this;
 								that.API.requestData({
@@ -399,19 +402,21 @@
 							is_num: false,
 							is_light: false,
 							template: function() {
-								return "<input class='check' type='CheckBox'/>";
+								return "<input class='check curCheckBox checkItem' 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.tableId.splice(i, 1);
+											that.dbData.splice(i, 1);
 										}
 									})
 									that.checkLength--;
 								} else if (event.target.checked && that.checkLength < 2) {
-									that.tableId.push(dataId)
+									that.tableId.push(dataId);
+									that.dbData.push(data);
 									that.checkLength++;
 								} else if (that.checkLength == 2) {
 									event.target.checked = false;
@@ -576,7 +581,8 @@
 				tabs: [],
 				analyisDialog: [],
 				detailShow: 1,
-				ajaxData: []
+				ajaxData: [],
+				dbData:[]
 			};
 		},
 		created() {
@@ -782,7 +788,7 @@
 			},
 			AjaxDbfx() {
 				var that = this;
-				var data = that.ajaxData;
+				var data = that.dbData;
 				that.windNum = data[0].name;
 				that.windNum2 = data[1].name;
 				that.tabs = [{
@@ -918,10 +924,12 @@
 			clearDb() { //清空对标状态
 				this.$refs.curRef.clearCheckBox();
 				this.tableId = [];
+				this.dbData = [];
 				this.checkLength = 0;
 			},
 			back() {
 				this.detailShow = 1;
+				this.clearDb();
 			}
 		}
 	};

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1242 - 333
src/views/Decision/Decision3.vue


+ 50 - 0
src/views/cutAnalyse/index.vue

@@ -60,114 +60,133 @@ export default {
             field: "windturbineid",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总小风切入",
             field: "inputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总小风切入合格率",
             field: "inputsmallratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总大风切入",
             field: "inputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总大风切入合格率",
             field: "inputbigratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总小风切出",
             field: "outputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总小风切出合格率",
             field: "outputsmallratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总大风切出",
             field: "outputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总大风切出合格率",
             field: "outputbigmaxratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日小风切入",
             field: "dayinputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日小风切入合格率",
             field: "dayinputsmallratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日小风切出",
             field: "dayoutputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日小风切出合格率",
             field: "dayoutputsmallratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日大风切入",
             field: "dayinputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日大风切入合格率",
             field: "dayinputbigratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日大风切出",
             field: "dayoutputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日大风切出合格率",
             field: "dayoutputbigratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月小风切入",
             field: "monthinputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月小风切入合格率",
             field: "monthinputsmallratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月大风切入",
@@ -180,78 +199,91 @@ export default {
             field: "monthinputbigratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月小风切出",
             field: "monthoutputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月小风切出合格率",
             field: "monthoutputsmallratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月大风切出",
             field: "monthoutputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月大风切出合格率",
             field: "monthoutputbigratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年小风切入",
             field: "yearinputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年小风切入合格率",
             field: "yearinputsmallratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年大风切入",
             field: "yearinputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年大风切入合格率",
             field: "yearinputbigratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年小风切出",
             field: "yearoutputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年小风切出合格率",
             field: "yearoutputsmallratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年大风切出",
             field: "yearoutputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年大风切出合格率",
             field: "yearoutputbigratio",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "操作",
@@ -275,108 +307,126 @@ export default {
             field: "windturbineid",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日期",
             field: "time",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总小风切入",
             field: "inputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总大风切入",
             field: "inputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总小风切出",
             field: "outputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "总大风切出",
             field: "outputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日小风切入",
             field: "dayinputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日小风切出",
             field: "dayoutputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日大风切入",
             field: "dayinputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "日大风切出",
             field: "dayoutputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月小风切入",
             field: "monthinputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月大风切入",
             field: "monthinputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月小风切出",
             field: "monthoutputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "月大风切出",
             field: "monthoutputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年小风切入",
             field: "yearinputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年大风切入",
             field: "yearinputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年小风切出",
             field: "yearoutputsmall",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "年大风切出",
             field: "yearoutputbig",
             is_num: false,
             is_light: false,
+            sortable: true
           }
         ],
         data: [],

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

@@ -96,7 +96,7 @@ export default {
           id: "statistic",
           text: "统计分析",
           data: [
-             {
+            {
               text: "能效分析",
               icon: "svg-wind-site",
               path: "/nxfx",
@@ -137,6 +137,18 @@ export default {
                   path: "/wtSaturability",
                 }
               ]
+            },
+            {
+              text: "风光资源分析",
+              icon: "svg-wind-site",
+              path: "/fgzyfx",
+              children: [
+                {
+                  text: "风资源分析",
+                  icon: "svg-wind-site",
+                  path: "/windAnalysis",
+                }
+              ]
             }
           ],
         },

+ 93 - 0
src/views/windAnalysis/index.vue

@@ -0,0 +1,93 @@
+<template>
+  <div class="health">
+    <div class="selections mg-b-16">
+      <div class="item" @click="tabSelect(0)" :class="{ active: tabIndex == 0 }">风场功率风速排布图</div>
+      <div class="item" @click="tabSelect(1)" :class="{ active: tabIndex == 1 }">项目功率风速排布图</div>
+      <div class="item" @click="tabSelect(2)" :class="{ active: tabIndex == 2 }">线路功率风速排布图</div>
+    </div>
+    <div class="curHeight" v-if="tabIndex == 0">
+      <Tab1 />
+    </div>
+    <div class="curHeight" v-if="tabIndex == 1">
+      <Tab2 />
+    </div>
+    <div class="curHeight" v-if="tabIndex == 2">
+      <Tab3 />
+    </div>
+  </div>
+</template>
+
+<script>
+import Tab1 from "./tab1.vue";
+import Tab2 from "./tab2.vue";
+import Tab3 from "./tab3.vue";
+export default {
+  // 名称
+  name: "wtSaturability",
+
+  // 使用组件
+  components: {
+    Tab1,
+    Tab2,
+    Tab3
+  },
+
+  // 数据
+  data () {
+    const that = this;
+    return {
+      tabIndex: 0,
+    };
+  },
+
+  // 函数
+  methods: {
+    tabSelect (state) {
+      this.tabIndex = state;
+    },
+    // 请求服务
+    requestData () {
+      
+    }
+  },
+
+  created () {
+    this.requestData();
+  },
+
+  mounted () { },
+
+  unmounted () { },
+};
+</script>
+
+<style lang="less" scope>
+.health {
+  .selections {
+    display: flex;
+
+    .item {
+      flex: 0 0 128px;
+      text-align: center;
+      line-height: 33px;
+      margin-right: 8px;
+      color: @font-color;
+      font-size: @fontsize-s;
+      background: fade(@gray, 20);
+      border: 1px solid fade(@gray, 20);
+
+      &:hover,
+      &.active {
+        background: fade(@green, 20);
+        border: 1px solid @green;
+        color: @green;
+        cursor: pointer;
+      }
+    }
+  }
+
+  .curHeight {
+    height: 87vh;
+  }
+}
+</style>

+ 171 - 0
src/views/windAnalysis/tab1.vue

@@ -0,0 +1,171 @@
+<template>
+  <div class="draught-fan-list">
+    <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="wpId" clearable placeholder="请选择" popper-class="select">
+              <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+					<div class="lable">日期:</div>
+					<div class="search-input">
+						<el-date-picker v-model="recorddate" 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 green" @click="search">搜索</button>
+      </div>
+    </div>
+    <Mlc height="650px" :list="chartData" :units="chartUnit" :showLegend="true" />
+  </div>
+</template>
+
+<script>
+import Mlc from "@com/chart/line/multiple-line-chart.vue";
+export default {
+  // 名称
+  name: "cutAnalyse",
+
+  // 使用组件
+  components: {
+    Mlc
+  },
+
+  // 数据
+  data () {
+    return {
+      isAsc: "asc",
+      wpArray: [],
+      wtArray: [],
+      wpId: "",
+      wtId: "MG01_01",
+      recorddate:new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
+      chartData: [{
+        title: "",
+        yAxisIndex: 0,
+        value: []
+      }],
+      chartUnit: ["功率(万kw)"]
+    };
+  },
+
+  // 函数
+  methods: {
+    // 获取风场
+    getWp (reGetWp) {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/windfarmAjax",
+        success (res) {
+          that.wpArray = res.data;
+          that.wpId = res.data[0].id;
+          that.getChartData();
+        }
+      });
+    },
+
+    // 获取图表数据
+    getChartData () {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        subUrl: "powersaturation/powersaturationamonutchart",
+        data: {
+          wtId: that.wtId
+        },
+        success (res) {
+
+          const keyArray = [{
+            key: "value1",
+            title: "功率"
+          }];
+
+          let chartData = [{
+            title: "功率",
+            yAxisIndex: 0,
+            value: []
+          }];
+
+          keyArray.forEach((keyEle, keyIndex) => {
+            res.data.forEach(ele => {
+              chartData[keyIndex].value.push({
+                text: "",
+                value: ele[keyEle.key]
+              });
+            });
+          });
+
+          that.chartData = chartData;
+        }
+      });
+    },
+
+    search () {
+      if (!this.wpId) {
+        this.BASE.showMsg({
+          msg: '场站为必选项'
+        });
+      } else {
+        this.getChartData();
+      }
+    }
+  },
+
+  created () {
+    this.getWp();
+  },
+
+  mounted () { },
+
+  unmounted () { },
+};
+</script>
+
+<style lang="less" scoped>
+.draught-fan-list {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+
+  .btn-group-tabs {
+    display: flex;
+    flex-direction: row;
+
+    .photovoltaic {
+      margin-left: 1.481vh;
+    }
+  }
+
+  .df-table {
+    border: 0.093vh solid fade(@darkgray, 50%);
+    position: relative;
+    overflow: auto;
+    flex-grow: 1;
+    margin-top: 1.481vh;
+    height: 30vh;
+
+    &:before {
+      content: '';
+      width: 0.37vh;
+      height: 0.37vh;
+      background: @write;
+      position: absolute;
+      left: 0.278vh;
+      top: 0.278vh;
+    }
+
+    tbody {
+      height: calc(100vh - 166px);
+    }
+  }
+}
+</style>

+ 197 - 0
src/views/windAnalysis/tab2.vue

@@ -0,0 +1,197 @@
+<template>
+  <div class="draught-fan-list">
+    <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="wpId" clearable placeholder="请选择" popper-class="select" @change="(wpId) => { getProject(); }">
+              <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">项目:</div>
+          <div class="search-input">
+            <el-select v-model="projectId" clearable placeholder="请选择" popper-class="select">
+              <el-option v-for="item in projectArray" :key="item.id" :value="item.id" :label="item.name" />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+					<div class="lable">日期:</div>
+					<div class="search-input">
+						<el-date-picker v-model="recorddate" 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 green" @click="search">搜索</button>
+      </div>
+    </div>
+    <Mlc height="650px" :list="chartData" :units="chartUnit" :showLegend="true" />
+  </div>
+</template>
+
+<script>
+import Mlc from "@com/chart/line/multiple-line-chart.vue";
+export default {
+  // 名称
+  name: "cutAnalyse",
+
+  // 使用组件
+  components: {
+    Mlc
+  },
+
+  // 数据
+  data () {
+    return {
+      isAsc: "asc",
+      wpArray: [],
+      projectArray: [],
+      wpId: "",
+      projectId:"",
+      wtId: "MG01_01",
+      recorddate:new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
+      chartData: [{
+        title: "",
+        yAxisIndex: 0,
+        value: []
+      }],
+      chartUnit: ["功率(万kw)"]
+    };
+  },
+
+  // 函数
+  methods: {
+    // 获取风场
+    getWp (reGetWp) {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/windfarmAjax",
+        success (res) {
+          that.wpArray = res.data;
+          that.wpId = res.data[0].id;
+          that.getProject();
+        }
+      });
+    },
+
+    // 获取期数
+    getProject(){
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/projectAjax",
+        data:{
+          wpIds: that.wpId
+        },
+        success (res) {
+          that.projectArray = res.data;
+          that.projectId = res.data[0].id;
+          that.getChartData();
+        }
+      });
+    },
+
+    // 获取图表数据
+    getChartData () {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        subUrl: "powersaturation/powersaturationamonutchart",
+        data: {
+          wtId: that.wtId
+        },
+        success (res) {
+
+          const keyArray = [{
+            key: "value1",
+            title: "功率"
+          }];
+
+          let chartData = [{
+            title: "功率",
+            yAxisIndex: 0,
+            value: []
+          }];
+
+          keyArray.forEach((keyEle, keyIndex) => {
+            res.data.forEach(ele => {
+              chartData[keyIndex].value.push({
+                text: "",
+                value: ele[keyEle.key]
+              });
+            });
+          });
+
+          that.chartData = chartData;
+        }
+      });
+    },
+
+    search () {
+      if (!this.wpId || !this.projectId) {
+        this.BASE.showMsg({
+          msg: '场站与项目为必选项'
+        });
+      } else {
+        this.getChartData();
+      }
+    }
+  },
+
+  created () {
+    this.getWp();
+  },
+
+  mounted () { },
+
+  unmounted () { },
+};
+</script>
+
+<style lang="less" scoped>
+.draught-fan-list {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+
+  .btn-group-tabs {
+    display: flex;
+    flex-direction: row;
+
+    .photovoltaic {
+      margin-left: 1.481vh;
+    }
+  }
+
+  .df-table {
+    border: 0.093vh solid fade(@darkgray, 50%);
+    position: relative;
+    overflow: auto;
+    flex-grow: 1;
+    margin-top: 1.481vh;
+    height: 30vh;
+
+    &:before {
+      content: '';
+      width: 0.37vh;
+      height: 0.37vh;
+      background: @write;
+      position: absolute;
+      left: 0.278vh;
+      top: 0.278vh;
+    }
+
+    tbody {
+      height: calc(100vh - 166px);
+    }
+  }
+}
+</style>

+ 197 - 0
src/views/windAnalysis/tab3.vue

@@ -0,0 +1,197 @@
+<template>
+  <div class="draught-fan-list">
+    <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="wpId" clearable placeholder="请选择" popper-class="select" @change="(wpId) => { getLine(); }">
+              <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">线路:</div>
+          <div class="search-input">
+            <el-select v-model="lineId" clearable placeholder="请选择" popper-class="select">
+              <el-option v-for="item in lineArray" :key="item.id" :value="item.id" :label="item.name" />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+					<div class="lable">日期:</div>
+					<div class="search-input">
+						<el-date-picker v-model="recorddate" 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 green" @click="search">搜索</button>
+      </div>
+    </div>
+    <Mlc height="650px" :list="chartData" :units="chartUnit" :showLegend="true" />
+  </div>
+</template>
+
+<script>
+import Mlc from "@com/chart/line/multiple-line-chart.vue";
+export default {
+  // 名称
+  name: "cutAnalyse",
+
+  // 使用组件
+  components: {
+    Mlc
+  },
+
+  // 数据
+  data () {
+    return {
+      isAsc: "asc",
+      wpArray: [],
+      lineArray: [],
+      wpId: "",
+      lineId:"",
+      wtId: "MG01_01",
+      recorddate:new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
+      chartData: [{
+        title: "",
+        yAxisIndex: 0,
+        value: []
+      }],
+      chartUnit: ["功率(万kw)"]
+    };
+  },
+
+  // 函数
+  methods: {
+    // 获取风场
+    getWp (reGetWp) {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/windfarmAjax",
+        success (res) {
+          that.wpArray = res.data;
+          that.wpId = res.data[0].id;
+          that.getLine();
+        }
+      });
+    },
+
+    // 获取线路
+    getLine(){
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/lineWpIdAjax",
+        data:{
+          wpId: that.wpId
+        },
+        success (res) {
+          that.lineArray = res.data;
+          that.lineId = res.data[0].id;
+          that.getChartData();
+        }
+      });
+    },
+
+    // 获取图表数据
+    getChartData () {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        subUrl: "powersaturation/powersaturationamonutchart",
+        data: {
+          wtId: that.wtId
+        },
+        success (res) {
+
+          const keyArray = [{
+            key: "value1",
+            title: "功率"
+          }];
+
+          let chartData = [{
+            title: "功率",
+            yAxisIndex: 0,
+            value: []
+          }];
+
+          keyArray.forEach((keyEle, keyIndex) => {
+            res.data.forEach(ele => {
+              chartData[keyIndex].value.push({
+                text: "",
+                value: ele[keyEle.key]
+              });
+            });
+          });
+
+          that.chartData = chartData;
+        }
+      });
+    },
+
+    search () {
+      if (!this.wpId || !this.lineId) {
+        this.BASE.showMsg({
+          msg: '场站与线路为必选项'
+        });
+      } else {
+        this.getChartData();
+      }
+    }
+  },
+
+  created () {
+    this.getWp();
+  },
+
+  mounted () { },
+
+  unmounted () { },
+};
+</script>
+
+<style lang="less" scoped>
+.draught-fan-list {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+
+  .btn-group-tabs {
+    display: flex;
+    flex-direction: row;
+
+    .photovoltaic {
+      margin-left: 1.481vh;
+    }
+  }
+
+  .df-table {
+    border: 0.093vh solid fade(@darkgray, 50%);
+    position: relative;
+    overflow: auto;
+    flex-grow: 1;
+    margin-top: 1.481vh;
+    height: 30vh;
+
+    &:before {
+      content: '';
+      width: 0.37vh;
+      height: 0.37vh;
+      background: @write;
+      position: absolute;
+      left: 0.278vh;
+      top: 0.278vh;
+    }
+
+    tbody {
+      height: calc(100vh - 166px);
+    }
+  }
+}
+</style>

+ 7 - 3
src/views/wtSaturability/index.vue

@@ -9,23 +9,27 @@
       <Tab1 />
     </div>
     <div class="curHeight" v-if="tabIndex == 1">
-      111
+      <Tab2 />
     </div>
     <div class="curHeight" v-if="tabIndex == 2">
-      222
+      <Tab3 />
     </div>
   </div>
 </template>
 
 <script>
 import Tab1 from "./tab1.vue";
+import Tab2 from "./tab2.vue";
+import Tab3 from "./tab3.vue";
 export default {
   // 名称
   name: "wtSaturability",
 
   // 使用组件
   components: {
-    Tab1
+    Tab1,
+    Tab2,
+    Tab3
   },
 
   // 数据

+ 53 - 18
src/views/wtSaturability/tab1.vue

@@ -5,13 +5,11 @@
         <div class="query-item">
           <div class="lable">场站:</div>
           <div class="search-input">
-            <el-select v-model="wpId" clearable placeholder="请选择" popper-class="select">
+            <el-select v-model="wpId" clearable placeholder="请选择" popper-class="select" @change="(wpId) => { getWt(wpId, true); }">
               <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
             </el-select>
           </div>
         </div>
-      </div>
-      <div class="query-items">
         <div class="query-item">
           <div class="lable">风机:</div>
           <div class="search-input">
@@ -22,11 +20,11 @@
         </div>
       </div>
       <div class="query-actions">
-        <button class="btn green" @click="search()">搜索</button>
+        <button class="btn green" @click="search">搜索</button>
       </div>
     </div>
     <div class="df-table">
-      <ComTable height="100vh" :data="tableData"></ComTable>
+      <ComTable height="35vh" :data="tableData"></ComTable>
     </div>
     <Mlc height="300px" :list="chartData" :units="chartUnit" :showLegend="true" />
   </div>
@@ -60,24 +58,28 @@ export default {
             field: "windturbineid",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "风速",
             field: "speed",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "实际拟合功率",
             field: "actualpower",
             is_num: false,
             is_light: false,
+            sortable: true
           },
           {
             name: "最优拟合功率",
             field: "optimalpower",
             is_num: false,
             is_light: false,
+            sortable: true
           }
         ],
         data: [],
@@ -87,14 +89,14 @@ export default {
         yAxisIndex: 0,
         value: []
       }],
-      chartUnit: ["功率(MW)"]
+      chartUnit: ["功率(MW)", "(m/s)"]
     };
   },
 
   // 函数
   methods: {
     // 获取风场
-    getWp () {
+    getWp (reGetWp) {
       let that = this;
       that.API.requestData({
         method: "GET",
@@ -102,13 +104,13 @@ export default {
         success (res) {
           that.wpArray = res.data;
           that.wpId = res.data[0].id;
-          that.getWt(that.wpId)
+          that.getWt(that.wpId, reGetWp);
         }
       });
     },
 
     // 获取风机
-    getWt (wpid) {
+    getWt (wpid, reGetWp) {
       let that = this;
       if (that.wpId) {
         that.API.requestData({
@@ -121,13 +123,15 @@ export default {
           success (res) {
             that.wtArray = res.data;
             that.wtId = res.data[0].id;
-            that.getTab1Data();
+            if (!reGetWp) {
+              that.getTabData();
+            }
           }
         });
       }
     },
 
-    getTab1Data () {
+    getTabData () {
       let that = this;
       that.API.requestData({
         method: "POST",
@@ -137,10 +141,41 @@ export default {
         },
         success (res) {
           that.tableData.data = res.data.list;
+          that.getChartData();
+        }
+      });
+    },
 
-          const key = ["actualpower", "optimalpower", "optmalpower"];
+    // 获取图表数据
+    getChartData () {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        subUrl: "powersaturation/powersaturationamonutchart",
+        data: {
+          wtId: that.wtId
+        },
+        success (res) {
+
+          const keyArray = [{
+            key: "value1",
+            title: "风速"
+          }, {
+            key: "value2",
+            title: "实际拟合功率"
+          }, {
+            key: "value3",
+            title: "最优拟合功率"
+          }, {
+            key: "value4",
+            title: "保证功率"
+          }];
 
           let chartData = [{
+            title: "风速",
+            yAxisIndex: 1,
+            value: []
+          }, {
             title: "实际拟合功率",
             yAxisIndex: 0,
             value: []
@@ -154,11 +189,11 @@ export default {
             value: []
           }];
 
-          key.forEach((keyEle, keyIndex)=>{
-            res.data.list.forEach(ele=>{
+          keyArray.forEach((keyEle, keyIndex) => {
+            res.data.forEach(ele => {
               chartData[keyIndex].value.push({
-                text:ele.id,
-                value:ele[keyEle]
+                text: "",
+                value: ele[keyEle.key]
               });
             });
           });
@@ -174,7 +209,7 @@ export default {
           msg: '场站与风机为必选项'
         });
       } else {
-        this.getTab1Data();
+        this.getTabData();
       }
     }
   },
@@ -211,7 +246,7 @@ export default {
     overflow: auto;
     flex-grow: 1;
     margin-top: 1.481vh;
-    height:60vh;
+    height: 30vh;
 
     &:before {
       content: '';

+ 336 - 0
src/views/wtSaturability/tab2.vue

@@ -0,0 +1,336 @@
+<template>
+  <div class="draught-fan-list">
+    <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="wpId" clearable placeholder="请选择" popper-class="select" @change="(wpId) => { getWt(wpId, true); }">
+              <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">风机:</div>
+          <div class="search-input">
+            <el-select v-model="wtId" clearable placeholder="请选择" popper-class="select">
+              <el-option v-for="item in wtArray" :key="item.id" :value="item.id" :label="item.name" />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+					<div class="lable">日期:</div>
+					<div class="search-input">
+						<el-date-picker v-model="recorddate" 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 green" @click="search">搜索</button>
+      </div>
+    </div>
+    <div class="df-table">
+      <ComTable height="35vh" :data="tableData"></ComTable>
+    </div>
+    <Mlc height="300px" :list="chartData" :units="chartUnit" :showLegend="true" />
+    <el-dialog title="月风电功率编辑" v-model="dialogShow" width="85%" top="10vh" custom-class="modal" :close-on-click-modal="true">
+      <el-form class="mg-b-16" label-width="100px" inline>
+        <el-form-item class="mg-b-8" label="风机编号:">
+          <el-input v-model="wtId" readonly placeholder=""></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="年份:">
+          <el-input v-model="editItem._year" readonly placeholder=""></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="月份:">
+          <el-input v-model="editItem._month" readonly placeholder=""></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="风速:">
+          <el-input v-model="editItem.speed" readonly placeholder=""></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="实际拟合:">
+          <el-input v-model="editItem.actualpower" placeholder="请输入"></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="最优拟合:">
+          <el-input v-model="editItem.optimalpower" placeholder="请输入"></el-input>
+        </el-form-item>
+      </el-form>
+      <button style="width:100%;" class="btn" @click="editWtInfo">修改</button>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import ComTable from "@com/coms/table/table.vue";
+import Mlc from "@com/chart/line/multiple-line-chart.vue";
+export default {
+  // 名称
+  name: "cutAnalyse",
+
+  // 使用组件
+  components: {
+    ComTable,
+    Mlc
+  },
+
+  // 数据
+  data () {
+    const that = this;
+    return {
+      isAsc: "asc",
+      wpArray: [],
+      wtArray: [],
+      wpId: "",
+      wtId: "",
+      editItem:{},
+      dialogShow:false,
+      recorddate:new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
+      tableData: {
+        column: [
+          {
+            name: "风机",
+            field: "windturbineid",
+            is_num: false,
+            is_light: false,
+            sortable: true
+          },
+          {
+            name: "风速",
+            field: "speed",
+            is_num: false,
+            is_light: false,
+            sortable: true
+          },
+          {
+            name: "实际拟合功率",
+            field: "actualpower",
+            is_num: false,
+            is_light: false,
+            sortable: true
+          },
+          {
+            name: "最优拟合功率",
+            field: "optimalpower",
+            is_num: false,
+            is_light: false,
+            sortable: true
+          },
+          // {
+          //   name: "操作",
+          //   field: "",
+          //   is_num: false,
+          //   is_light: false,
+          //   template() {
+					// 			return "<el-button type='text' style='cursor: pointer;'>修改</el-button>";
+					// 	},
+          //   click(e, row){
+          //     that.editItem = row;
+          //     that.editItem._year = new Date(that.recorddate).getFullYear();
+          //     that.editItem._month = (new Date(that.recorddate).getMonth() + 1);
+          //     that.dialogShow = true;
+          //   }
+          // }
+        ],
+        data: [],
+      },
+      chartData: [{
+        title: "",
+        yAxisIndex: 0,
+        value: []
+      }],
+      chartUnit: ["功率(MW)", "(m/s)"]
+    };
+  },
+
+  // 函数
+  methods: {
+    // 获取风场
+    getWp (reGetWp) {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/windfarmAjax",
+        success (res) {
+          that.wpArray = res.data;
+          that.wpId = res.data[0].id;
+          that.getWt(that.wpId, reGetWp);
+        }
+      });
+    },
+
+    // 获取风机
+    getWt (wpid, reGetWp) {
+      let that = this;
+      if (that.wpId) {
+        that.API.requestData({
+          method: "GET",
+          baseURL: "http://10.155.32.4:9001",
+          subUrl: "benchmarking/wtList",
+          data: {
+            wpid
+          },
+          success (res) {
+            that.wtArray = res.data;
+            that.wtId = res.data[0].id;
+            if (!reGetWp) {
+              that.getTabData();
+            }
+          }
+        });
+      }
+    },
+
+    getTabData () {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        subUrl: "powersaturation/powersaturationmonthlist",
+        data: {
+          wtId: that.wtId,
+          year: new Date(that.recorddate).getFullYear(),
+          month: (new Date(that.recorddate).getMonth() + 1)
+        },
+        success (res) {
+          that.tableData.data = res.data.list;
+          that.getChartData();
+        }
+      });
+    },
+
+    // 获取图表数据
+    getChartData () {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        subUrl: "powersaturation/powersaturationmonthchart",
+        data: {
+          wtId: that.wtId,
+          year: new Date(that.recorddate).getFullYear(),
+          month: (new Date(that.recorddate).getMonth() + 1)
+        },
+        success (res) {
+
+          const keyArray = [{
+            key: "value1",
+            title: "风速"
+          }, {
+            key: "value2",
+            title: "实际拟合功率"
+          }, {
+            key: "value3",
+            title: "最优拟合功率"
+          }, {
+            key: "value4",
+            title: "保证功率"
+          }];
+
+          let chartData = [{
+            title: "风速",
+            yAxisIndex: 1,
+            value: []
+          }, {
+            title: "实际拟合功率",
+            yAxisIndex: 0,
+            value: []
+          }, {
+            title: "最优拟合功率",
+            yAxisIndex: 0,
+            value: []
+          }, {
+            title: "保证功率",
+            yAxisIndex: 0,
+            value: []
+          }];
+
+          keyArray.forEach((keyEle, keyIndex) => {
+            res.data.forEach(ele => {
+              chartData[keyIndex].value.push({
+                text: "",
+                value: ele[keyEle.key]
+              });
+            });
+          });
+
+          that.chartData = chartData;
+        }
+      });
+    },
+
+    // 编辑
+    editWtInfo(){
+      let that = this;
+
+      that.editItem.actualpower += "";
+      that.editItem.optimalpower += "";
+
+      if(!that.editItem.actualpower || !that.editItem.optimalpower){
+        that.BASE.showMsg({
+          msg:"实际拟合与最优拟合不可为空"
+        });
+      }else{
+        
+      }
+    },
+
+    search () {
+      if (!this.wpId || !this.wtId) {
+        this.BASE.showMsg({
+          msg: '场站与风机为必选项'
+        });
+      } else {
+        this.getTabData();
+      }
+    }
+  },
+
+  created () {
+    this.getWp();
+  },
+
+  mounted () { },
+
+  unmounted () { },
+};
+</script>
+
+<style lang="less" scoped>
+.draught-fan-list {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+
+  .btn-group-tabs {
+    display: flex;
+    flex-direction: row;
+
+    .photovoltaic {
+      margin-left: 1.481vh;
+    }
+  }
+
+  .df-table {
+    border: 0.093vh solid fade(@darkgray, 50%);
+    position: relative;
+    overflow: auto;
+    flex-grow: 1;
+    margin-top: 1.481vh;
+    height: 30vh;
+
+    &:before {
+      content: '';
+      width: 0.37vh;
+      height: 0.37vh;
+      background: @write;
+      position: absolute;
+      left: 0.278vh;
+      top: 0.278vh;
+    }
+
+    tbody {
+      height: calc(100vh - 166px);
+    }
+  }
+}
+</style>

+ 334 - 0
src/views/wtSaturability/tab3.vue

@@ -0,0 +1,334 @@
+<template>
+  <div class="draught-fan-list">
+    <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="wpId" clearable placeholder="请选择" popper-class="select" @change="(wpId) => { getWt(wpId, true); }">
+              <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">风机:</div>
+          <div class="search-input">
+            <el-select v-model="wtId" clearable placeholder="请选择" popper-class="select">
+              <el-option v-for="item in wtArray" :key="item.id" :value="item.id" :label="item.name" />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+					<div class="lable">日期:</div>
+					<div class="search-input">
+						<el-date-picker v-model="recorddate" 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 green" @click="search">搜索</button>
+      </div>
+    </div>
+    <div class="df-table">
+      <ComTable height="35vh" :data="tableData"></ComTable>
+    </div>
+    <Mlc height="300px" :list="chartData" :units="chartUnit" :showLegend="true" />
+    <el-dialog title="月风电功率编辑" v-model="dialogShow" width="85%" top="10vh" custom-class="modal" :close-on-click-modal="true">
+      <el-form class="mg-b-16" label-width="100px" inline>
+        <el-form-item class="mg-b-8" label="风机编号:">
+          <el-input v-model="wtId" readonly placeholder=""></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="年份:">
+          <el-input v-model="editItem._year" readonly placeholder=""></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="月份:">
+          <el-input v-model="editItem._month" readonly placeholder=""></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="风速:">
+          <el-input v-model="editItem.speed" readonly placeholder=""></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="实际拟合:">
+          <el-input v-model="editItem.actualpower" placeholder="请输入"></el-input>
+        </el-form-item>
+        <el-form-item class="mg-b-8" label="最优拟合:">
+          <el-input v-model="editItem.optimalpower" placeholder="请输入"></el-input>
+        </el-form-item>
+      </el-form>
+      <button style="width:100%;" class="btn" @click="editWtInfo">修改</button>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import ComTable from "@com/coms/table/table.vue";
+import Mlc from "@com/chart/line/multiple-line-chart.vue";
+export default {
+  // 名称
+  name: "cutAnalyse",
+
+  // 使用组件
+  components: {
+    ComTable,
+    Mlc
+  },
+
+  // 数据
+  data () {
+    const that = this;
+    return {
+      isAsc: "asc",
+      wpArray: [],
+      wtArray: [],
+      wpId: "",
+      wtId: "",
+      editItem:{},
+      dialogShow:false,
+      recorddate:new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
+      tableData: {
+        column: [
+          {
+            name: "风机",
+            field: "windturbineid",
+            is_num: false,
+            is_light: false,
+            sortable: true
+          },
+          {
+            name: "风速",
+            field: "speed",
+            is_num: false,
+            is_light: false,
+            sortable: true
+          },
+          {
+            name: "实际拟合功率",
+            field: "actualpower",
+            is_num: false,
+            is_light: false,
+            sortable: true
+          },
+          {
+            name: "最优拟合功率",
+            field: "optimalpower",
+            is_num: false,
+            is_light: false,
+            sortable: true
+          },
+          // {
+          //   name: "操作",
+          //   field: "",
+          //   is_num: false,
+          //   is_light: false,
+          //   template() {
+					// 			return "<el-button type='text' style='cursor: pointer;'>修改</el-button>";
+					// 	},
+          //   click(e, row){
+          //     that.editItem = row;
+          //     that.editItem._year = new Date(that.recorddate).getFullYear();
+          //     that.editItem._month = (new Date(that.recorddate).getMonth() + 1);
+          //     that.dialogShow = true;
+          //   }
+          // }
+        ],
+        data: [],
+      },
+      chartData: [{
+        title: "",
+        yAxisIndex: 0,
+        value: []
+      }],
+      chartUnit: ["功率(MW)", "(m/s)"]
+    };
+  },
+
+  // 函数
+  methods: {
+    // 获取风场
+    getWp (reGetWp) {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/windfarmAjax",
+        success (res) {
+          that.wpArray = res.data;
+          that.wpId = res.data[0].id;
+          that.getWt(that.wpId, reGetWp);
+        }
+      });
+    },
+
+    // 获取风机
+    getWt (wpid, reGetWp) {
+      let that = this;
+      if (that.wpId) {
+        that.API.requestData({
+          method: "GET",
+          baseURL: "http://10.155.32.4:9001",
+          subUrl: "benchmarking/wtList",
+          data: {
+            wpid
+          },
+          success (res) {
+            that.wtArray = res.data;
+            that.wtId = res.data[0].id;
+            if (!reGetWp) {
+              that.getTabData();
+            }
+          }
+        });
+      }
+    },
+
+    getTabData () {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        subUrl: "powersaturation/powersaturationlist",
+        data: {
+          wtId: that.wtId,
+          recorddate: that.recorddate
+        },
+        success (res) {
+          that.tableData.data = res.data.list;
+          that.getChartData();
+        }
+      });
+    },
+
+    // 获取图表数据
+    getChartData () {
+      let that = this;
+      that.API.requestData({
+        method: "POST",
+        subUrl: "powersaturation/powersaturationchart",
+        data: {
+          wtId: that.wtId,
+          recorddate: that.recorddate
+        },
+        success (res) {
+
+          const keyArray = [{
+            key: "value1",
+            title: "风速"
+          }, {
+            key: "value2",
+            title: "实际拟合功率"
+          }, {
+            key: "value3",
+            title: "最优拟合功率"
+          }, {
+            key: "value4",
+            title: "保证功率"
+          }];
+
+          let chartData = [{
+            title: "风速",
+            yAxisIndex: 1,
+            value: []
+          }, {
+            title: "实际拟合功率",
+            yAxisIndex: 0,
+            value: []
+          }, {
+            title: "最优拟合功率",
+            yAxisIndex: 0,
+            value: []
+          }, {
+            title: "保证功率",
+            yAxisIndex: 0,
+            value: []
+          }];
+
+          keyArray.forEach((keyEle, keyIndex) => {
+            res.data.forEach(ele => {
+              chartData[keyIndex].value.push({
+                text: "",
+                value: ele[keyEle.key]
+              });
+            });
+          });
+
+          that.chartData = chartData;
+        }
+      });
+    },
+
+    // 编辑
+    editWtInfo(){
+      let that = this;
+
+      that.editItem.actualpower += "";
+      that.editItem.optimalpower += "";
+
+      if(!that.editItem.actualpower || !that.editItem.optimalpower){
+        that.BASE.showMsg({
+          msg:"实际拟合与最优拟合不可为空"
+        });
+      }else{
+        
+      }
+    },
+
+    search () {
+      if (!this.wpId || !this.wtId) {
+        this.BASE.showMsg({
+          msg: '场站与风机为必选项'
+        });
+      } else {
+        this.getTabData();
+      }
+    }
+  },
+
+  created () {
+    this.getWp();
+  },
+
+  mounted () { },
+
+  unmounted () { },
+};
+</script>
+
+<style lang="less" scoped>
+.draught-fan-list {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+
+  .btn-group-tabs {
+    display: flex;
+    flex-direction: row;
+
+    .photovoltaic {
+      margin-left: 1.481vh;
+    }
+  }
+
+  .df-table {
+    border: 0.093vh solid fade(@darkgray, 50%);
+    position: relative;
+    overflow: auto;
+    flex-grow: 1;
+    margin-top: 1.481vh;
+    height: 30vh;
+
+    &:before {
+      content: '';
+      width: 0.37vh;
+      height: 0.37vh;
+      background: @write;
+      position: absolute;
+      left: 0.278vh;
+      top: 0.278vh;
+    }
+
+    tbody {
+      height: calc(100vh - 166px);
+    }
+  }
+}
+</style>