ソースを参照

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

chenminghua 4 年 前
コミット
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();
 			}
 		}
 	};

+ 1242 - 333
src/views/Decision/Decision3.vue

@@ -1,341 +1,1250 @@
 <template>
-  <div class="decision-page-3">
-    <!-- 查询样式统一处理 样式在 assets/styles/form.less 文件中 -->
-    <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" clearable placeholder="请选择" popper-class="select">
-              <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
-            </el-select>
-            <!-- <div class="unit svg-icon svg-icon-gray">
-              <svg-icon :svgid="'svg-arrow-down'" />
-            </div> -->
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">项目:</div>
-          <div class="search-input">
-            <el-select v-model="value2" multiple placeholder="请选择" popper-class="select">
-              <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
-            </el-select>
-            <!-- <div class="unit svg-icon svg-icon-gray">
-              <svg-icon :svgid="'svg-arrow-down'" />
-            </div> -->
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">线路:</div>
-          <div class="search-input">
-            <el-select v-model="value3" multiple placeholder="请选择" popper-class="select">
-              <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
-            </el-select>
-            <!-- <div class="unit svg-icon svg-icon-gray">
-              <svg-icon :svgid="'svg-arrow-down'" />
-            </div> -->
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">开始日期:</div>
-          <div class="search-input">
-            <el-date-picker v-model="value4" type="date" placeholder="选择日期" popper-class="date-select"> </el-date-picker>
-            <!-- <div class="unit svg-icon svg-icon-gray">
-              <svg-icon :svgid="'svg-arrow-down'" />
-            </div> -->
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">结束日期:</div>
-          <div class="search-input">
-            <el-date-picker v-model="value5" type="date" placeholder="选择日期" popper-class="date-select"> </el-date-picker>
-            <div class="unit svg-icon svg-icon-gray">
-              <svg-icon :svgid="''" />
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green">搜索</button>
-        <button class="btn">明细信息</button>
-        <button class="btn">导出</button>
-      </div>
-    </div>
-    <div class="actions mg-b-8">
-      <button class="btn green">风场</button>
-      <button class="btn">项目</button>
-      <button class="btn">集电线路</button>
-    </div>
-    <!-- 列表 -->
-    <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">3.123</div>
-                  <div class="direction-chart">
-                    <DirectionRadarChart :width="'70%'" :height="'232px'" :value="90" />
-                    <div class="legend mg-t-16">
-                      <span class="dot"></span>
-                      <span>静风频率为2</span>
-                    </div>
-                  </div>
-                </div>
-              </td>
-            </tr>
-          </tbody>
-        </table>
-      </div>
-      <!-- 日功率曲线 -->
-      <div>
-        <toolbar-panel :title="'日功率曲线'">
-          <template v-slot:tools>
-            <div class="tools">
-              <div class="tool-block">
-                <div class="legend bg-green"></div>
-                <div class="legend-text">理论功率</div>
-              </div>
-              <div class="tool-block">
-                <div class="legend bg-orange"></div>
-                <div class="legend-text">预测功率4小时</div>
-              </div>
-            </div>
-          </template>
-          <double-line-chart :height="'200px'" />
-          <normal-line-chart :height="'200px'" />
-        </toolbar-panel>
-      </div>
-    </div>
-  </div>
+	<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)" 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-select v-model="value2" @change="XiangMuChange(value2)" clearable placeholder="请选择"
+							popper-class="select">
+							<el-option v-for="(item,index) in XiangMu" :key="item.id" :value="index" :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-item">
+					<div class="lable">结束日期:</div>
+					<div class="search-input">
+						<el-date-picker v-model="value5" @change="EndChange(value5)" type="date"
+							value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
+						</el-date-picker>
+						<div class="unit svg-icon svg-icon-gray">
+							<svg-icon :svgid="''" />
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="query-actions">
+				<button class="btn green">搜索</button>
+				<button class="btn" @click="dbfx">对标分析</button>
+				<button class="btn" v-show="detailShow==2" @click="back">返回</button>
+			</div>
+		</div>
+		<!-- 列表 -->
+		<div class="info" v-show="detailShow==1">
+			<div class="mg-b-16">
+				<div class="project-table">
+					<Table :data="tableData" ref="curRef"></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">3.123</div>
+									<div class="direction-chart">
+										<DirectionRadarChart :width="'70%'" :height="'232px'" :value="90" />
+										<div class="legend mg-t-16">
+											<span class="dot"></span>
+											<span>静风频率为2</span>
+										</div>
+									</div>
+								</div>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+			</div> -->
+			<el-row class="mg-b-16">
+				<el-col :span="12">
+					<panel title="发电量占比">
+						<dual-pie-chart height="21.296vh" :innerData="innerFdl" :outerData="outerFdl" />
+					</panel>
+				</el-col>
+				<el-col :span="12">
+					<panel :title="XiangMu[value2].name.substr(0,XiangMu[value2].name.length - 1) + '占比'">
+						<dual-pie-chart height="21.296vh" :innerData="innerCz" :outerData="outerCz" />
+					</panel>
+				</el-col>
+			</el-row>
+			<panel title="损失电量分析">
+				<multiple-bar-chart height="300px" :list="analyis" :customerTooltip="true" @tooltip="tooltip"
+					:units='["(万KWh)"]' />
+			</panel>
+		</div>
+		<el-row :type="'flex'" class="content" v-show="detailShow==2">
+			<el-col :span="24" class="pd-l-8">
+				<panel :title="'风机对标列表明细'" :showLine="false">
+					<div class="project-table">
+						<Table :data="tableDataDetail" ref="curRef"></Table>
+					</div>
+				</panel>
+			</el-col>
+		</el-row>
+		<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 DoubleLineChart from "../../components/chart/line/double-line-chart.vue";
-import NormalLineChart from "../../components/chart/line/normal-line-chart.vue";
-import DirectionRadarChart from "../../components/chart/radar/direction-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, DirectionRadarChart, ToolbarPanel, DoubleLineChart, NormalLineChart },
-  data() {
-    return {
-      tableData: {
-        column: [
-          {
-            name: "",
-            field: "index",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "项目",
-            field: "name",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "项目",
-            field: "lqf",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "项目",
-            field: "yggl",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "项目",
-            field: "yyy",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "项目",
-            field: "pcspp",
-            is_num: false,
-            is_light: false,
-          },
-        ],
-        data: [
-          {
-            index: 1,
-            name: "MG01-01",
-            lqf: "0.1000",
-            yggl: "0.1000",
-            yyy: "0.10",
-            pcspp: "0.1000",
-            u1: "0.1000",
-            u2: "0.1000",
-            v1: "0.1000",
-            v2: "0.1000",
-            w1: "0.1000",
-            w2: "0.1000",
-            zca: "0.1000",
-            zcb: "0.1000",
-            clx: "0.1000",
-            clx1: "0.1000",
-            clx2: "0.1000",
-            jc: "0.1000",
-            hh: "0.1000",
-            hj: "0.1000",
-            is_light: false,
-          },
-        ],
-      },
-      options: [
-        {
-          value: "选项1",
-          label: "黄金糕",
-        },
-        {
-          value: "选项2",
-          label: "双皮奶",
-        },
-        {
-          value: "选项3",
-          label: "蚵仔煎",
-        },
-        {
-          value: "选项4",
-          label: "龙须面",
-        },
-        {
-          value: "选项5",
-          label: "北京烤鸭",
-        },
-      ],
-      value1: [],
-      value2: [],
-      value3: [],
-      value4: "",
-      value5: "",
-    };
-  },
-  created() {
-    for (let i = 1; i < 20; i++) {
-      this.tableData.data.push(JSON.parse(JSON.stringify(this.tableData.data[0])));
-      this.tableData.data[i].index = i + 1;
-    }
-  },
-};
+	import MultipleBarChart from "../../components/chart/bar/multiple-bar-chart.vue";
+	import DualPieChart from "../../components/chart/pie/dual-pie-chart.vue";
+	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";
+	import Dayinfo from "./dayinfo.vue";
+	
+	export default {
+		components: {
+			Panel,
+			Table,
+			SvgIcon,
+			DualPieChart,
+			MultipleBarChart,
+			Dayinfo,
+			ToolbarPanel
+		},
+		data() {
+			let that = this;
+			return {
+				tableIdArr: [], //放checkbox的id数组
+				tableId: [],
+				checkLength: 0, //对标分析只能选择2个
+				tableData: {
+					column: that.column1,
+					data: [],
+				},
+				tableDataDetail: {
+					column: [{
+							name: "",
+							field: "index",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "",
+							field: "check",
+							is_num: false,
+							is_light: false,
+							template: function() {
+								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.dbData.splice(i, 1);
+										}
+									})
+									that.checkLength--;
+								} else if (event.target.checked && that.checkLength < 2) {
+									that.tableId.push(dataId);
+									that.dbData.push(data);
+									that.checkLength++;
+								} else if (that.checkLength == 2) {
+									event.target.checked = false;
+								}
+							},
+						},
+						{
+							name: "风机名称",
+							field: "name",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "综合排名",
+							field: "zhpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						},
+						{
+							name: "故障损失",
+							field: "gzssdl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						},
+						{
+							name: "检修损失排名",
+							field: "jxssdlpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						},
+						{
+							name: "检修损失",
+							field: "jxssdl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						},
+						{
+							name: "性能损失排名",
+							field: "xnssdlpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						},
+						{
+							name: "性能损失",
+							field: "xnssdl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						},
+						{
+							name: "限电损失排名",
+							field: "xdssdlpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						},
+						{
+							name: "限电损失",
+							field: "xdssdl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "受累损失排名",
+							field: "slssdlpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "受累损失",
+							field: "slssdl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "故障损失率排名",
+							field: "gzsslpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "故障损失率(%)",
+							field: "gzssl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "检修损失率排名",
+							field: "jxsslpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "检修损失率(%)",
+							field: "jxssl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "弃风率排名",
+							field: "qflpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "弃风率(%)",
+							field: "qfl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "性能损失率排名",
+							field: "xnsslpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "性能损失率(%)",
+							field: "xnssl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "受累损失率排名",
+							field: "slsslpm",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}, {
+							name: "受累损失率(%)",
+							field: "slssl",
+							is_num: false,
+							is_light: false,
+							sortable: true,
+						}
+					],
+					data: [],
+				},
+				ChangZhan: [], //场站
+				XiangMu: [{ //项目
+					name: '弃风率',
+					id: 1
+				}, {
+					name: '故障损失率',
+					id: 2
+				}, {
+					name: '检修损失率',
+					id: 3
+				}, {
+					name: '性能损失率',
+					id: 4
+				}, {
+					name: '受累损失率',
+					id: 5
+				}],
+				value1: [],
+				value2: 0,
+				value3: [],
+				value4: "",
+				value5: "",
+				innerFdl: [], //发电量占比
+				outerFdl: [],
+				innerCz: [], //各场站损失电量占比
+				outerCz: [],
+				analyis: [], //损失电量分析
+				dialogVisible: false,
+				radarValue: [],
+				windNum: 'dd',
+				windNum2: 'dd',
+				tabs: [],
+				analyisDialog: [],
+				detailShow: 1,
+				ajaxData: [],
+				column1: [{ //弃风率
+						name: "",
+						field: "index",
+						is_num: false,
+						is_light: false,
+					},
+					{
+						name: "",
+						field: "check",
+						is_num: false,
+						is_light: false,
+						template: () => {
+							return "<input class='check curCheckBox checkItem' type='CheckBox' />";
+						},
+						click: function(event, data) {
+							that.checkClick(event, data);
+						},
+					},
+					{
+						name: "名称",
+						field: "name",
+						is_num: false,
+						is_light: false,
+					}, {
+						name: "限电损失排名",
+						field: "xdssdlpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "限电损失",
+						field: "xdssdl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					}, {
+						name: "弃风率排名",
+						field: "qflpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					}, {
+						name: "弃风率(%)",
+						field: "qfl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					}, {
+						name: "操作",
+						field: "cz",
+						is_num: false,
+						is_light: false,
+						template: function() {
+							return "<a class='action'>详情</a>";
+						},
+						click: function(event, data) {
+							that.detailClick(data);
+						}
+					}
+				],
+				column2: [{ //故障损失率
+						name: "",
+						field: "index",
+						is_num: false,
+						is_light: false,
+					},
+					{
+						name: "",
+						field: "check",
+						is_num: false,
+						is_light: false,
+						template: () => {
+							return "<input class='check curCheckBox checkItem' type='CheckBox' />";
+						},
+						click: function(event, data) {
+							that.checkClick(event, data);
+						},
+					},
+					{
+						name: "名称",
+						field: "name",
+						is_num: false,
+						is_light: false,
+					},
+					{
+						name: "故障损失排名",
+						field: "gzssdlpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "故障损失",
+						field: "gzssdl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "故障损失率排名",
+						field: "gzsslpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					}, {
+						name: "故障损失率(%)",
+						field: "gzssl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "操作",
+						field: "cz",
+						is_num: false,
+						is_light: false,
+						template: function() {
+							return "<a class='action'>详情</a>";
+						},
+						click: function(event, data) {
+							that.detailClick(data);
+						}
+					}
+				],
+				column3: [{ //检修损失率
+						name: "",
+						field: "index",
+						is_num: false,
+						is_light: false,
+					},
+					{
+						name: "",
+						field: "check",
+						is_num: false,
+						is_light: false,
+						template: () => {
+							return "<input class='check curCheckBox checkItem' type='CheckBox' />";
+						},
+						click: function(event, data) {
+							that.checkClick(event, data);
+						},
+					},
+					{
+						name: "名称",
+						field: "name",
+						is_num: false,
+						is_light: false,
+					},
+
+					{
+						name: "检修损失排名",
+						field: "jxssdlpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "检修损失",
+						field: "jxssdl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "检修损失率排名",
+						field: "jxsslpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					}, {
+						name: "检修损失率(%)",
+						field: "jxssl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "操作",
+						field: "cz",
+						is_num: false,
+						is_light: false,
+						template: function() {
+							return "<a class='action'>详情</a>";
+						},
+						click: function(event, data) {
+							that.detailClick(data);
+						}
+					}
+				],
+				column4: [{ //性能损失率
+						name: "",
+						field: "index",
+						is_num: false,
+						is_light: false,
+					},
+					{
+						name: "",
+						field: "check",
+						is_num: false,
+						is_light: false,
+						template: () => {
+							return "<input class='check curCheckBox checkItem' type='CheckBox' />";
+						},
+						click: function(event, data) {
+							that.checkClick(event, data);
+						},
+					},
+					{
+						name: "名称",
+						field: "name",
+						is_num: false,
+						is_light: false,
+					},
+					{
+						name: "性能损失排名",
+						field: "xnssdlpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "性能损失",
+						field: "xnssdl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "性能损失率排名",
+						field: "xnsslpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					}, {
+						name: "性能损失率(%)",
+						field: "xnssl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "操作",
+						field: "cz",
+						is_num: false,
+						is_light: false,
+						template: function() {
+							return "<a class='action'>详情</a>";
+						},
+						click: function(event, data) {
+							that.detailClick(data);
+						}
+					}
+				],
+				column5: [{ //受累损失率
+						name: "",
+						field: "index",
+						is_num: false,
+						is_light: false,
+					},
+					{
+						name: "",
+						field: "check",
+						is_num: false,
+						is_light: false,
+						template: () => {
+							return "<input class='check curCheckBox checkItem' type='CheckBox' />";
+						},
+						click: function(event, data) {
+							that.checkClick(event, data);
+						},
+					},
+					{
+						name: "名称",
+						field: "name",
+						is_num: false,
+						is_light: false,
+					},
+					{
+						name: "受累损失排名",
+						field: "slssdlpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					}, {
+						name: "受累损失",
+						field: "slssdl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "受累损失率排名",
+						field: "slsslpm",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					}, {
+						name: "受累损失率(%)",
+						field: "slssl",
+						is_num: false,
+						is_light: false,
+						sortable: true,
+					},
+					{
+						name: "操作",
+						field: "cz",
+						is_num: false,
+						is_light: false,
+						template: function() {
+							return "<a class='action'>详情</a>";
+						},
+						click: function(event, data) {
+							that.detailClick(data);
+						}
+					}
+				],
+			};
+		},
+		created() {
+			this.ChangZhanVal();
+			this.value4 = this.getTime(1);
+			this.value5 = this.getTime(2);
+			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.AjaxCommon();
+				this.clearDb();
+			},
+			XiangMuChange(val) {
+				this.tableType(this.value2)
+				this.clearDb();
+			},
+			BeginChange(val) {
+				this.value4 = val;
+				this.AjaxCommon();
+				this.clearDb();
+			},
+			EndChange(val) {
+				this.value5 = 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: "http://10.155.32.4:9001/",
+					subUrl: "benchmarking/wxssl",
+					data: {
+						wpids: that.value1,
+						projectids: [],
+						lineids: [],
+						beginDate: that.value4,
+						endDate: that.value5,
+						target: '',
+						sort: ''
+					},
+					success(res) {
+						that.ajaxData = res.data;
+						var analyis = [],
+							gzssdl = [],
+							jxssdl = [],
+							xnssdl = [],
+							xdssdl = [],
+							slssdl = [];
+
+						that.ajaxData.forEach((item, index) => {
+							that.tableIdArr.push(item.id);
+							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.tableType(that.value2);
+						that.analyis = analyis;
+					}
+				});
+			},
+			AjaxDbfx() {
+				var that = this;
+				var data = that.dbData;
+				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.dbData = [];
+				this.checkLength = 0;
+			},
+			back() {
+				this.detailShow = 1;
+				this.clearDb();
+			},
+			detailClick(data) {
+				var that = this;
+				var dataId = that.tableIdArr[data.index - 1];
+				that.clearDb();
+				that.detailShow = 2;
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://10.155.32.4:9001/",
+					subUrl: "benchmarking/details",
+					data: {
+						id: dataId,
+						beginDate: that.value4,
+						endDate: that.value5,
+						target: '',
+						sort: ''
+					},
+					success(res) {
+						var dataTab = [];
+						res.data.forEach((item, index) => {
+							that.tableIdArr.push(item.id);
+
+							dataTab.push({ //表格
+								index: index + 1,
+								name: item.name,
+								zhpm: item.zhpm,
+								gzssdl: item.gzssdl,
+								jxssdlpm: item.jxssdlpm,
+								jxssdl: item.jxssdl,
+								xnssdlpm: item.xnssdlpm,
+								xnssdl: item.xnssdl,
+								xdssdlpm: item.xdssdlpm,
+								xdssdl: item.xdssdl,
+								slssdlpm: item.slssdlpm,
+								slssdl: item.slssdl,
+								fnlylpm: item.fnlylpm,
+								fnlyl: item.fnlyl,
+								gzsslpm: item.gzsslpm,
+								gzssl: item.gzssl,
+								jxsslpm: item.jxsslpm,
+								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.tableDataDetail.data = dataTab;
+					}
+				});
+			},
+			checkClick(event, data) {
+				var that = this;
+				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.dbData.splice(i, 1);
+						}
+					})
+					that.checkLength--;
+				} else if (event.target.checked && that.checkLength < 2) {
+					that.tableId.push(dataId);
+					that.dbData.push(data);
+					that.checkLength++;
+				} else if (that.checkLength == 2) {
+					event.target.checked = false;
+				}
+			},
+			tableType(a) {
+				var that = this;
+				var dataTab = [],
+					fdl = [],
+					cz = [];
+				that.ajaxData.forEach((item, index) => {
+					fdl.push({
+						value: item.fdl,
+						name: item.name
+					})
+
+					if (a == 0) {
+						dataTab.push({ //弃风率
+							index: index + 1,
+							name: item.name,
+							xdssdlpm: item.xdssdlpm,
+							xdssdl: item.xdssdl,
+							qflpm: item.qflpm,
+							qfl: item.qfl,
+							is_light: false
+						})
+						cz.push({
+							value: item.xdssdl,
+							name: item.name
+						})
+					}
+					if (a == 1) {
+						dataTab.push({ //故障损失率
+							index: index + 1,
+							name: item.name,
+							gzssdlpm: item.gzssdlpm,
+							gzssdl: item.gzssdl,
+							gzsslpm: item.gzsslpm,
+							gzssl: item.gzssl,
+							is_light: false
+						})
+						cz.push({
+							value: item.gzssdl,
+							name: item.name
+						})
+					}
+					if (a == 2) {
+						dataTab.push({ //检修损失率
+							index: index + 1,
+							name: item.name,
+							jxssdlpm: item.jxssdlpm,
+							jxssdl: item.jxssdl,
+							jxsslpm: item.jxsslpm,
+							jxssl: item.jxssl,
+							is_light: false
+						})
+						cz.push({
+							value: item.jxssdl,
+							name: item.name
+						})
+					}
+					if (a == 3) {
+						dataTab.push({ //性能损失率
+							index: index + 1,
+							name: item.name,
+							xnssdlpm: item.xnssdlpm,
+							xnssdl: item.xnssdl,
+							xnsslpm: item.xnsslpm,
+							xnssl: item.xnssl,
+							is_light: false
+						})
+						cz.push({
+							value: item.xnssdl,
+							name: item.name
+						})
+					}
+					if (a == 4) {
+						dataTab.push({ //受累损失率
+							index: index + 1,
+							name: item.name,
+							slssdlpm: item.slssdlpm,
+							slssdl: item.slssdl,
+							slsslpm: item.slsslpm,
+							slssl: item.slssl,
+							is_light: false
+						})
+						cz.push({
+							value: item.slssdl,
+							name: item.name
+						})
+					}
+				})
+
+				that.innerFdl = fdl;
+				that.outerFdl = fdl;
+
+				that.innerCz = cz;
+				that.outerCz = cz;
+				that.tableData.data = dataTab;
+				if (a == 0) {
+					that.tableData.column = that.column1;
+				}
+				if (a == 1) {
+					that.tableData.column = that.column2;
+				}
+				if (a == 2) {
+					that.tableData.column = that.column3;
+				}
+				if (a == 3) {
+					that.tableData.column = that.column4;
+				}
+				if (a == 4) {
+					that.tableData.column = that.column5;
+				}
+
+			}
+		}
+	};
 </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;
-            }
-          }
-        }
-      }
-    }
-  }
-}
+	.decision-page-3 {
+		.content .project-table {
+			tbody {
+				height: calc(100vh - 24.5vh);
+			}
+		}
+		.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;
+							}
+						}
+					}
+				}
+			}
+		}
+		.action {
+			text-decoration: underline;
+			color: @green;
+			cursor: pointer;
+		}
+	}
 </style>

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