Browse Source

风机绩效榜

mw_666 3 years ago
parent
commit
59f3f813b8

+ 427 - 274
src/views/Decision/Decision1.vue

@@ -1,289 +1,442 @@
 <template>
-  <div class="decision-page-1">
-    <!-- 查询样式统一处理 样式在 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>
-        </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>
-        </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>
-        </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>
-        </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>
-        </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>
-    <el-row :type="'flex'" class="content">
-      <el-col :span="12" class="pd-r-8">
-        <toolbar-panel :title="123" :showLine="false">
-          <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">计划检修损失</div>
-              </div>
-              <div class="tool-block">
-                <div class="legend bg-yellow"></div>
-                <div class="legend-text">非计划检修损失</div>
-              </div>
-              <div class="tool-block">
-                <div class="legend bg-red"></div>
-                <div class="legend-text">限电损失</div>
-              </div>
-              <div class="tool-block">
-                <div class="legend bg-purple"></div>
-                <div class="legend-text">受累损失</div>
-              </div>
-              <div class="tool-block">
-                <div class="legend bg-blue"></div>
-                <div class="legend-text">性能损失</div>
-              </div>
-            </div>
-          </template>
-          <bar-line-chart :height="'calc(100vh - 200px)'" :color="barColor" />
-        </toolbar-panel>
-      </el-col>
-      <el-col :span="12" class="pd-l-8">
-        <panel :title="'项目列表'" :showLine="false">
-          <div class="project-table">
-            <Table :data="tableData"></Table>
-          </div>
-        </panel>
-      </el-col>
-    </el-row>
-  </div>
+	<div class="decision-page-1">
+		<!-- 查询样式统一处理 样式在 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" @change="ChangZhanChange(value1)" clearable placeholder="请选择"
+							popper-class="select">
+							<el-option v-for="item in ChangZhan" :key="item.id" :value="item.id" :label="item.name">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">项目:</div>
+					<div class="search-input">
+						<el-select v-model="value2" @change="XiangMuChange(value2)" multiple placeholder="请选择"
+							popper-class="select">
+							<el-option v-for="item in XiangMu" :key="item.id" :value="item.id" :label="item.name">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">线路:</div>
+					<div class="search-input">
+						<el-select v-model="value3" @change="XianLuChange(value3)" multiple placeholder="请选择"
+							popper-class="select">
+							<el-option v-for="item in XianLu" :key="item.id" :label="item.name" :value="item.id">
+							</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="mxClick()">明细信息</button>
+				<button class="btn">导出</button>
+			</div>
+		</div>
+		<div class="actions mg-b-8">
+			<button class="btn" :class="TypeClass==1?'green':''" @click="TypeClick(1)">风场</button>
+			<button class="btn" :class="TypeClass==2?'green':''" @click="TypeClick(2)">项目</button>
+			<button class="btn" :class="TypeClass==3?'green':''" @click="TypeClick(3)">集电线路</button>
+		</div>
+		<el-row :type="'flex'" class="content">
+			<el-col :span="12" class="pd-r-8">
+				<toolbar-panel title="风机绩效榜" :showLine="false">
+					<bar-line-chart :height="'calc(100vh - 200px)'" :bardata="bardata" :lineData="lineData" :color="barColor" lineName="理论发电量"/>
+				</toolbar-panel>
+			</el-col>
+			<el-col :span="12" class="pd-l-8">
+				<panel :title="'项目列表'" :showLine="false">
+					<div class="project-table">
+						<Table :data="tableData"></Table>
+					</div>
+				</panel>
+			</el-col>
+		</el-row>
+	</div>
 </template>
 
 <script>
-import BarLineChart from "../../components/chart/combination/bar-line-chart.vue";
-import Panel from "../../components/coms/panel/panel.vue";
-import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
-import Table from "../../components/coms/table/table.vue";
-import partten from "@/helper/partten.js";
-
-export default {
-  components: { ToolbarPanel, BarLineChart, Panel, Table },
-  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: "SCADA发电量",
-            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,
-          },
-          {
-            name: "计划检修",
-            field: "u1",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "受累",
-            field: "u2",
-            is_num: false,
-            is_light: true,
-          },
-          {
-            name: "限电",
-            field: "v1",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "性能",
-            field: "v2",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "风能率用率%",
-            field: "w1",
-            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: "北京烤鸭",
-        },
-      ],
-      barColor: [partten.getColor("green"), partten.getColor("orange"), partten.getColor("yellow"), partten.getColor("red"), partten.getColor("purple"), partten.getColor("blue")],
-      value1: [],
-      value2: [],
-      value3: [],
-      value4: "",
-      value5: "",
-    };
-  },
-  created() {
-    for (let i = 1; i < 50; i++) {
-      this.tableData.data.push(JSON.parse(JSON.stringify(this.tableData.data[0])));
-      this.tableData.data[i].index = i + 1;
-    }
-  },
-};
+	import BarLineChart from "../../components/chart/combination/bar-line-chart.vue";
+	import Panel from "../../components/coms/panel/panel.vue";
+	import SvgIcon from "../../components/coms/icon/svg-icon.vue";
+	import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
+	import Table from "../../components/coms/table/table.vue";
+	import partten from "@/helper/partten.js";
+	export default {
+		components: {
+			ToolbarPanel,
+			BarLineChart,
+			Panel,
+			Table,
+			partten,
+			SvgIcon
+		},
+		data() {
+			return {
+				tableData: {
+					column: [{
+							name: "",
+							field: "index",
+							is_num: false,
+							is_light: false
+						},
+						{
+							name: "名称",
+							field: "name",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "理论发电量",
+							field: "llfdl",
+							is_num: false,
+							is_light: false,
+							sortable:true
+						},
+						{
+							name: "SCADA发电量",
+							field: "sjfdl",
+							is_num: false,
+							is_light: false,
+							sortable:true
+						},
+						{
+							name: "风速",
+							field: "speed",
+							is_num: false,
+							is_light: false,
+							sortable:true
+						},
+						{
+							name: "非计划检修",
+							field: "fjhjx",
+							is_num: false,
+							is_light: false,
+							sortable:true
+						},
+						{
+							name: "计划检修",
+							field: "jhjx",
+							is_num: false,
+							is_light: false,
+							sortable:true
+						},
+						{
+							name: "受累",
+							field: "sl",
+							is_num: false,
+							is_light: true,
+							sortable:true
+						},
+						{
+							name: "限电",
+							field: "xd",
+							is_num: false,
+							is_light: false,
+							sortable:true
+						},
+						{
+							name: "性能",
+							field: "xn",
+							is_num: false,
+							is_light: false,
+							sortable:true
+						},
+						{
+							name: "风能利用率%",
+							field: "fnlly",
+							is_num: false,
+							is_light: false,
+							sortable:true
+						}
+					],
+					data: [],
+				},
+				ChangZhan: [], //场站
+				XiangMu: [], //项目
+				XianLu: [], //线路
+				value1: [],
+				value2: [],
+				value3: [],
+				value4: "",
+				value5: "",
+				barColor: [partten.getColor("green"), partten.getColor("orange"), partten.getColor("yellow"), partten.getColor("red"), partten.getColor("purple"), partten.getColor("blue")],
+				TypeClass: 1, //风场,项目,集电线路 的按钮颜色,默认第一个
+				bardata: [],
+				lineData: [],
+				tool: [{ //搜索的表头
+					color: 'bg-purple',
+					name: '实际电量'
+				}, {
+					color: 'bg-blue',
+					name: '计划检修损失'
+				}, {
+					color: 'bg-green',
+					name: '非计划检修损失'
+				}, {
+					color: 'bg-red',
+					name: '限电损失'
+				}, {
+					color: 'bg-orange',
+					name: '受累损失'
+				}, {
+					color: 'bg-yellow',
+					name: '性能损失'
+				}],
+				dataUpDown: []//功能暂未完成,前端部分table表头点击不了
+			};
+		},
+		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",
+					subUrl: "benchmarking/wplist",
+					success(res) {
+						that.ChangZhan = res.data;
+					}
+				});
+			},
+			ChangZhanChange(val) {
+				this.TypeClass = "";
+				this.value1 = val;
+				this.value2 = [];
+				this.value3 = [];
+				this.AjaxCommon();
+				this.XiangMuVal(val);
+			},
+			XiangMuVal(val) {
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					subUrl: "benchmarking/projectList",
+					data: {
+						wpids: val
+					},
+					success(res) {
+						that.XiangMu = res.data;
+					}
+				});
+			},
+			XiangMuChange(val) {
+				this.TypeClass = "";
+				this.value2 = val;
+				this.value3 = [];
+				this.AjaxCommon();
+				this.XianLuVal(val);
+			},
+			XianLuVal(val) {
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					subUrl: "benchmarking/lineList",
+					data: {
+						projects: val
+					},
+					success(res) {
+						that.XianLu = res.data;
+					}
+				});
+			},
+			XianLuChange(val) {
+				this.TypeClass = "";
+				this.value3 = val;
+				this.AjaxCommon();
+			},
+			BeginChange(val) {
+				this.value4 = val;
+				this.AjaxCommon();
+			},
+			EndChange(val) {
+				this.value5 = val;
+				this.AjaxCommon();
+			},
+			TypeClick(val) {
+				if (val != this.TypeClass && this.TypeClass) {
+					this.TypeClass = val;
+					// 重置状态start
+					this.value1 = [];
+					this.value2 = [];
+					this.value3 = [];
+					this.value4 = this.getTime(1);
+					this.value5 = this.getTime(2);
+					this.AjaxCommon();
+					// 重置状态end
+				}
+			},
+			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",
+					subUrl: "benchmarking/fjjxb",
+					data: {
+						wpids: that.value1,
+						projectids: that.value2,
+						lineids: that.value3,
+						beginDate: that.value4,
+						endDate: that.value5,
+						type: that.TypeClass,
+						target: '',
+						sort: ''
+					},
+					success(res) {
+						console.log(res)
+						var name = [],
+							data = [],
+							llfdl = [],
+							legend = ["实际电量", "计划检修损失", "非计划检修损失", "限电损失", "受累损失", "性能损失"],
+							data2 = []; //项目列表
+						res.data.forEach((item, index) => {
+							name.push(item.name);
+							data.push([item.sjfdl, item.jhjx, item.fjhjx, item.xd, item.sl, item.xn])
+							llfdl.push(item.llfdl);
+							data2.push({
+								index: index + 1,
+								name: item.name,
+								llfdl: item.llfdl,
+								sjfdl: item.sjfdl,
+								speed: item.speed,
+								fjhjx: item.fjhjx,
+								jhjx: item.jhjx,
+								sl: item.sl,
+								xd: item.xd,
+								xn: item.xn,
+								fnlly: item.fnlly,
+								is_light: false
+							})
+						})
+						name.pop();
+						data.pop();
+						llfdl.pop();
+						if (data.length > 0) {
+							let arr1 = [];
+							const length = data[0].length;
+							for (var i = 0; i < length; i++) {
+								let arr2 = [];
+								data.forEach(ele => {
+									arr2.push(ele[i])
+								});
+								arr1.push(arr2);
+							}
+							that.lineData = llfdl;
+							that.bardata = {
+								area: name,
+								legend: legend,
+								data: arr1
+							};
+				
+						}
+						that.tableData.data = data2;
+					}
+				});
+			},
+			mxClick() {
+				this.$router.push("/decision/decision1Mx")
+			}
+		}
+	};
 </script>
 
 <style lang="less">
-.decision-page-1 {
-  .com-panel .panel-title {
-    line-height: 3.4259vh;
-  }
+	.decision-page-1 {
+		.com-panel .panel-title {
+			line-height: 3.4259vh;
+		}
+
+		.tools {
+			display: flex;
+			line-height: 3.4259vh;
+
+			.tool-block {
+				display: flex;
+				align-items: center;
+				margin-left: 0.741vh;
+
+				.legend {
+					flex: auto;
+					width: 0.741vh;
+					height: 0.741vh;
+					margin-right: 0.741vh;
 
-  .tools {
-    display: flex;
-    line-height: 3.4259vh;
+					&.long {
+						width: 2.963vh;
+						height: 0.37vh;
+					}
+				}
 
-    .tool-block {
-      display: flex;
-      align-items: center;
-      margin-left: 0.741vh;
+				.legend-text {
+					color: @gray-l;
+					font-size: @fontsize-s;
+				}
+			}
+		}
 
-      .legend {
-        flex: auto;
-        width: 0.741vh;
-        height: 0.741vh;
-        margin-right: 0.741vh;
+		.project-table {
+			overflow: auto;
 
-        &.long {
-          width: 2.963vh;
-          height: 0.37vh;
-        }
-      }
+			tbody {
+				height: calc(100vh - 24.5vh);
+			}
 
-      .legend-text {
-        color: @gray-l;
-        font-size: @fontsize-s;
-      }
-    }
-  }
+			td {
+				color: #b2bdc0;
+			}
+		}
 
-  .project-table {
-    overflow: auto;
+		.contentMx {
+			width: 100%;
+			overflow-x: auto;
+		}
 
-    tbody {
-      height: calc(100vh - 24.5vh);
-    }
-    td {
-      color: #b2bdc0;
-    }
-  }
-}
+		.activeMx {
+			width: 150%;
+		}
+	}
 </style>

+ 577 - 0
src/views/Decision/Decision1Mx.vue

@@ -0,0 +1,577 @@
+<template>
+	<div class="decision-page-1">
+		<!-- 查询样式统一处理 样式在 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" @change="ChangZhanChange(value1)" clearable placeholder="请选择"
+							popper-class="select">
+							<el-option v-for="item in ChangZhan" :key="item.id" :value="item.id" :label="item.name">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">项目:</div>
+					<div class="search-input">
+						<el-select v-model="value2" @change="XiangMuChange(value2)" multiple placeholder="请选择"
+							popper-class="select">
+							<el-option v-for="item in XiangMu" :key="item.id" :value="item.id" :label="item.name">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">线路:</div>
+					<div class="search-input">
+						<el-select v-model="value3" @change="XianLuChange(value3)" multiple placeholder="请选择"
+							popper-class="select">
+							<el-option v-for="item in XianLu" :key="item.id" :label="item.name" :value="item.id">
+							</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" @click="mxClick()">搜索</button>
+				<button class="btn green">明细信息</button>
+				<button class="btn">导出</button>
+			</div>
+		</div>
+		<div class="actions mg-b-8">
+			<button class="btn" :class="TypeClass==1?'green':''" @click="TypeClick(1)">风场</button>
+			<button class="btn" :class="TypeClass==2?'green':''" @click="TypeClick(2)">项目</button>
+			<button class="btn" :class="TypeClass==3?'green':''" @click="TypeClick(3)">集电线路</button>
+		</div>
+		<div class="contentMx">
+			<div class="activeMx">
+				<el-row :type="'flex'" class="content">
+					<el-col :span="12" class="pd-r-8">
+						<toolbar-panel :title="toolTitle" :showLine="false">
+							<template v-slot:tools>
+								<div class="tools">
+									<div class="tool-block" v-for="item in tool">
+										<div class="legend" :class="item.color"></div>
+										<div class="legend-text">{{item.name}}</div>
+									</div>
+								</div>
+							</template>
+							<bar-line-chart :height="'calc(100vh - 200px)'" :bardata="bardata" :lineData="lineData" />
+						</toolbar-panel>
+					</el-col>
+					<el-col :span="12" class="pd-l-8">
+						<panel :title="'项目列表'" :showLine="false">
+							<div class="project-table">
+								<Table :data="tableData" @toClick="(res) => { this.thClick(res); }"></Table>
+							</div>
+						</panel>
+					</el-col>
+				</el-row>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import BarLineChart from "../../components/chart/combination/bar-line-chart.vue";
+	import SvgIcon from "../../components/coms/icon/svg-icon.vue";
+	import Panel from "../../components/coms/panel/panel.vue";
+	import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
+	import Table from "../../components/coms/table/table.vue";
+	export default {
+		components: {
+			ToolbarPanel,
+			BarLineChart,
+			Panel,
+			Table,
+			SvgIcon
+		},
+		data() {
+			return {
+				tableData: {
+					column: [{
+							name: "",
+							field: "index",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "名称",
+							field: "name",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "理论发电量",
+							field: "llfdl",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "SCADA发电量",
+							field: "sjfdl",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "风速",
+							field: "speed",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "故障损失",
+							field: "fjhjx1",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "故障受累",
+							field: "fjhjx2",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "检修损失",
+							field: "jhjx1",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "检修受累",
+							field: "jhjx2",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "电网受累",
+							field: "sl1",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "天气受累",
+							field: "sl2",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "限电降出",
+							field: "xd1",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "限电停机",
+							field: "xd2",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "待风损失",
+							field: "xn1",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "手动停机",
+							field: "xn2",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "正常发电",
+							field: "xn3",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "缺陷降出",
+							field: "xn4",
+							is_num: false,
+							is_light: false,
+						},
+						{
+							name: "风能利用率%",
+							field: "fnlly",
+							is_num: false,
+							is_light: false,
+						}
+					],
+					data: [],
+				},
+				ChangZhan: [], //场站
+				XiangMu: [], //项目
+				XianLu: [], //线路
+				value1: [],
+				value2: [],
+				value3: [],
+				value4: "",
+				value5: "",
+				TypeClass: 1, //风场,项目,集电线路 的按钮颜色,默认第一个
+				bardata: [],
+				lineData: [],
+				toolTitle: '风机绩效榜明细',
+				tool: [{
+					color: 'bg-purple',
+					name: '实际电量'
+				}, {
+					color: 'bg-blue',
+					name: '故障损失'
+				}, {
+					color: 'bg-green',
+					name: '故障受累'
+				}, {
+					color: 'bg-red',
+					name: '检修受累'
+				}, {
+					color: 'bg-orange',
+					name: '电网受累'
+				}, {
+					color: 'bg-yellow',
+					name: '天气受累'
+				}, {
+					color: 'bg-cyan',
+					name: '限电降出'
+				}, {
+					color: 'bg-mauve',
+					name: '限电停机'
+				}, {
+					color: 'bg-pink',
+					name: '待风损失'
+				}, {
+					color: 'bg-brown',
+					name: '手动停机'
+				}, {
+					color: 'bg-pink2',
+					name: '正常发电'
+				}, {
+					color: 'bg-blue2',
+					name: '缺陷降出'
+				}],
+				dataUpDown: [] //功能暂未完成,前端部分table表头点击不了
+			};
+		},
+		created() {
+			this.ChangZhanVal();
+			this.value4 = this.getTime(1);
+			this.value5 = this.getTime(2);
+			this.AjaxCommon();
+
+
+			// var that = this;
+			// that.API.requestData({
+			// 	method: "GET",
+			// 	subUrl: "benchmarking/fjjxb",
+			// 	data: {
+			// 		wpids: that.value1,
+			// 		projectids: that.value2,
+			// 		lineids: that.value3,
+			// 		beginDate: that.value4,
+			// 		endDate: that.value5,
+			// 		type: that.TypeClass,
+			// 		target: 'llfdl',//当前点击的名称
+			// 		sort: 1//1或2
+			// 	},
+			// 	success(res) {
+			// 		console.log(JSON.stringify(res))
+			// 	}
+			// });
+			// http://10.155.32.33:9001/
+		},
+		methods: {
+			ChangZhanVal() {
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					subUrl: "benchmarking/wplist",
+					success(res) {
+						that.ChangZhan = res.data;
+					}
+				});
+			},
+			ChangZhanChange(val) {
+				this.TypeClass = "";
+				this.value1 = val;
+				this.value2 = [];
+				this.value3 = [];
+				this.AjaxCommon();
+				this.XiangMuVal(val);
+			},
+			XiangMuVal(val) {
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					subUrl: "benchmarking/projectList",
+					data: {
+						wpids: val
+					},
+					success(res) {
+						that.XiangMu = res.data;
+					}
+				});
+			},
+			XiangMuChange(val) {
+				this.TypeClass = "";
+				this.value2 = val;
+				this.value3 = [];
+				this.AjaxCommon();
+				this.XianLuVal(val);
+			},
+			XianLuVal(val) {
+				var that = this;
+				that.API.requestData({
+					method: "GET",
+					subUrl: "benchmarking/lineList",
+					data: {
+						projects: val
+					},
+					success(res) {
+						that.XianLu = res.data;
+					}
+				});
+			},
+			XianLuChange(val) {
+				this.TypeClass = "";
+				this.value3 = val;
+				this.AjaxCommon();
+			},
+			BeginChange(val) {
+				this.value4 = val;
+				this.AjaxCommon();
+			},
+			EndChange(val) {
+				this.value5 = val;
+				this.AjaxCommon();
+			},
+			TypeClick(val) {
+				if (val != this.TypeClass && this.TypeClass) {
+					this.TypeClass = val;
+					// 重置状态start
+					this.value1 = [];
+					this.value2 = [];
+					this.value3 = [];
+					this.value4 = this.getTime(1);
+					this.value5 = this.getTime(2);
+					this.AjaxCommon();
+					// 重置状态end
+				}
+			},
+			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",
+					subUrl: "benchmarking/fjjxb",
+					data: {
+						wpids: that.value1,
+						projectids: that.value2,
+						lineids: that.value3,
+						beginDate: that.value4,
+						endDate: that.value5,
+						type: that.TypeClass,
+						target: '',
+						sort: ''
+					},
+					success(res) {
+						console.log(res)
+						var name = [],
+							data = [],
+							llfdl = [],
+							legend = ["实际电量", "故障损失", "故障受累", "检修受累", "电网受累", "天气受累", "限电降出", "限电停机", "待风损失",
+								"手动停机", "正常发电", "缺陷降出"
+							],
+							data2 = []; //项目列表
+						res.data.forEach((item, index) => {
+							name.push(item.name);
+							llfdl.push(item.llfdl);
+							data.push([item.sjfdl, item.fjhjx1, item.fjhjx2, item.jhjx1, item.jhjx2, item
+								.sl1, item.sl2, item.xd1, item.xd2, item.xn1, item.xn2, item.xn3,
+								item.xn4
+							])
+							data2.push({
+								index: index + 1,
+								name: item.name,
+								llfdl: item.llfdl,
+								sjfdl: item.sjfdl,
+								speed: item.speed,
+								fjhjx1: item.fjhjx1,
+								fjhjx2: item.fjhjx2,
+								jhjx1: item.jhjx1,
+								jhjx2: item.jhjx2,
+								sl1: item.sl1,
+								sl2: item.sl2,
+								xd1: item.xd1,
+								xd2: item.xd2,
+								xn1: item.xn1,
+								xn2: item.xn2,
+								xn3: item.xn3,
+								xn4: item.xn4,
+								fnlly: item.fnlly,
+								is_light: false
+							})
+						})
+						name.pop();
+						data.pop();
+						llfdl.pop();
+						if (data.length > 0) {
+							let arr1 = [];
+							const length = data[0].length;
+							for (var i = 0; i < length; i++) {
+								let arr2 = [];
+								data.forEach(ele => {
+									arr2.push(ele[i])
+								});
+								arr1.push(arr2);
+							}
+							that.lineData = llfdl;
+							that.bardata = {
+								area: name,
+								legend: legend,
+								data: arr1
+							};
+
+						}
+						that.tableData.data = data2;
+					}
+				});
+			},
+			mxClick() {
+				this.$router.push("/decision1")
+			},
+			thClick: function(i) {
+				console.log(i) // 当子组件触发按钮时,msg获取值为 哈哈啊哈哈
+			}
+		}
+	};
+</script>
+
+<style lang="less">
+	.decision-page-1 {
+		.com-panel .panel-title {
+			line-height: 3.4259vh;
+		}
+
+		.tools {
+			display: flex;
+			line-height: 3.4259vh;
+
+			.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;
+				}
+			}
+		}
+
+		.project-table {
+			overflow: auto;
+
+			tbody {
+				height: calc(100vh - 24.5vh);
+			}
+
+			td {
+				color: #b2bdc0;
+			}
+		}
+
+		.contentMx {
+			width: 100%;
+			overflow-x: auto;
+		}
+
+		.activeMx {
+			width: 130%;
+		}
+	}
+
+	.main {
+		overflow: auto;
+	}
+
+	// .main .main-body{height: calc(100vh - 6.63vh);}
+	.bg-olive {
+		background-color: #8dc63f;
+		color: #ffffff;
+	}
+
+	.bg-cyan {
+		background-color: #1cbbb4;
+	}
+
+	.bg-mauve {
+		background-color: #9c26b0;
+	}
+
+	.bg-pink {
+		background-color: #e03997;
+	}
+
+	.bg-brown {
+		background-color: #a5673f;
+	}
+
+	.bg-pink2 {
+		background-color: #FF0099;
+	}
+
+	.bg-blue2 {
+		background-color: #07ABF5;
+	}
+
+	.bg-green2 {
+		background-color: #1D3638;
+	}
+</style>

+ 49 - 0
src/views/Decision/Decision2Cndb.vue

@@ -0,0 +1,49 @@
+<template>
+	<div class="decision-page-2">
+		场内对标
+		<normal-radar-chart :height="'500px'" />
+	</div>
+</template>
+
+<script>
+	import NormalRadarChart from "../../components/chart/radar/normal-radar-chart.vue";
+	export default {
+		components: {
+			NormalRadarChart
+		},
+		data() {
+			return {}
+		},
+		created() {
+			
+		},
+		methods: {
+			
+		}
+	};
+</script>
+
+<style lang="less">
+	.decision-page-2 {
+		.project-table {
+			overflow: auto;
+
+			tbody {
+				height: 189px;
+			}
+
+			th,
+			td {
+				color: #b2bdc0;
+
+				&:nth-child(1) {
+					width: 50px;
+				}
+
+				&:nth-child(2) {
+					width: 50px;
+				}
+			}
+		}
+	}
+</style>

+ 166 - 0
src/views/Decision/dayinfo.vue

@@ -0,0 +1,166 @@
+<template>
+	<div class="health-day-info">
+		<div class="body">
+			<div class="left">
+				<div class="chart-body">
+					<normal-radar-chart :height="'500px'" :value="radarValue" />
+				</div>
+				<div class="chart-body">
+					<normal-radar-chart :height="'500px'" :value="radarValue" />
+				</div>
+			</div>
+			<div class="left">
+				<div class="header">
+					<span class="herder-info">
+						基础指标
+					</span>
+				</div>
+				<table class="table-form">
+					<tr>
+						<td class="white">指标</td>
+						<td class="white">{{windNum}}</td>
+						<td class="white">{{windNum2}}</td>
+					</tr>
+					<tr v-for="item in tabs">
+						<td class="white">{{item.name}}</td>
+						<td class="white">{{item.windData1}}</td>
+						<td class="white">{{item.windData2}}</td>
+					</tr>
+				</table>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import NormalRadarChart from "../../components/chart/radar/normal-radar-chart.vue";
+	export default {
+		components: {
+			NormalRadarChart
+		},
+		props: {
+			windNum: {
+				type: String,
+				default: '麻黄山24号风机',
+			},
+			windNum2: {
+				type: String,
+				default: '麻黄山2号风机',
+			},
+			radarValue: {
+				type: Array,
+				default: () => [{
+					indicator: ["风能利用率", "故障损失率", "检修损失率", "弃风率", "性能损失率", "受累损失率", "复位及时率", "消缺及时率","状态转换率"],
+					data: [{
+						value: [44200, 14200, 20000, 35000, 50000, 38000, 44200, 14200, 20000],
+						name:'adf'
+					}],
+				}],
+			},
+			tabs: {
+				type: Array,
+				default: () => [{
+					name: "发电量",
+					windData1: 1,
+					windData2: 14
+				}, {
+					name: "故障损失电量",
+					windData1: 2,
+					windData2: 13
+				}, {
+					name: "检修损失电量",
+					windData1: 3,
+					windData2: 12
+				}, {
+					name: "性能未达标损失电量",
+					windData1: 4,
+					windData2: 11
+				}, {
+					name: "受累损失电量",
+					windData1: 5,
+					windData2: 10
+				}, {
+					name: "风能利用率",
+					windData1: 6,
+					windData2: 9
+				}, {
+					name: "故障损失率",
+					windData1: 7,
+					windData2: 8
+				}, {
+					name: "检修损失率",
+					windData1: 8,
+					windData2: 7
+				}, {
+					name: "弃风率",
+					windData1: 9,
+					windData2: 6
+				}, {
+					name: "性能损失率",
+					windData1: 10,
+					windData2: 5
+				}, {
+					name: "受累损失率",
+					windData1: 11,
+					windData2: 4
+				}, {
+					name: "复位及时率",
+					windData1: 12,
+					windData2: 3
+				}, {
+					name: "消缺及时率",
+					windData1: 13,
+					windData2: 2
+				}, {
+					name: "状态转换率",
+					windData1: 14,
+					windData2: 1
+				}],
+			},
+		},
+	};
+</script>
+
+<style lang="less">
+	.health-day-info {
+		.header {
+			display: flex;
+			width: 100%;
+			height: 40px;
+			line-height: 40px;
+			background: fade(@gray, 60);
+			color: @white;
+
+			.herder-info {
+				flex: 1 0 25%;
+				text-align: center;
+				font-size: @fontsize-s;
+
+				&:last-child {
+					flex: 1 0 50%;
+				}
+			}
+		}
+
+		.body {
+			display: flex;
+
+			.left {
+				flex: 0 0 50%;
+
+				display: flex;
+				flex-direction: column;
+
+				.chart-body {
+					flex-grow: 1;
+					display: flex;
+					align-items: center;
+				}
+			}
+
+			.right {
+				flex: 0 0 50%;
+			}
+		}
+	}
+</style>

+ 9 - 0
src/views/Decision/decision2Cjdb.vue

@@ -0,0 +1,9 @@
+<template>
+	<!-- 场际对标 -->
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 9 - 0
src/views/Decision/decision2Xldb.vue

@@ -0,0 +1,9 @@
+<template>
+	<!-- 线路对标 -->
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 9 - 0
src/views/Decision/decision2Xmdb.vue

@@ -0,0 +1,9 @@
+<template>
+	<!-- 项目对标 -->
+</template>
+
+<script>
+</script>
+
+<style>
+</style>