Browse Source

项目移植等功能及健康报告修改

lizaixun 3 years ago
parent
commit
85d3e4e266
34 changed files with 5268 additions and 660 deletions
  1. 39 0
      src/assets/css/lossBenchmarking/InterValueLineTable.scss
  2. 39 0
      src/assets/css/lossBenchmarking/fiveLossLineTable.scss
  3. 39 0
      src/assets/css/lossBenchmarking/interValue.scss
  4. 45 0
      src/assets/css/lossBenchmarking/lossRateAbandoned.scss
  5. 45 0
      src/assets/css/lossBenchmarking/lossRateAffected.scss
  6. 45 0
      src/assets/css/lossBenchmarking/lossRateFailure.scss
  7. 45 0
      src/assets/css/lossBenchmarking/lossRateMaintenance.scss
  8. 45 0
      src/assets/css/lossBenchmarking/lossRatePerformance.scss
  9. 2 5
      src/assets/js/healthManagement/healthAssessment.js
  10. 362 0
      src/assets/js/lossBenchmarking/InterValueLineTable.js
  11. 252 0
      src/assets/js/lossBenchmarking/fiveLossLineTable.js
  12. 13 140
      src/assets/js/lossBenchmarking/fiveLossRates.js
  13. 1 74
      src/assets/js/lossBenchmarking/fiveLossRatesHistogramChart.js
  14. 354 0
      src/assets/js/lossBenchmarking/interValue.js
  15. 233 0
      src/assets/js/lossBenchmarking/lossRateAbandoned.js
  16. 230 0
      src/assets/js/lossBenchmarking/lossRateAffected.js
  17. 230 0
      src/assets/js/lossBenchmarking/lossRateFailure.js
  18. 273 0
      src/assets/js/lossBenchmarking/lossRateMaintenance.js
  19. 273 0
      src/assets/js/lossBenchmarking/lossRatePerformance.js
  20. 2 9
      src/assets/js/performanceAnalysis/plannedGeneration.js
  21. 36 0
      src/jsonData/menu.json
  22. 32 0
      src/router/lzx.js
  23. 307 93
      src/tools/echartsToolLzx.js
  24. 476 0
      src/views/lossBenchmarking/InterValueLineTable.vue
  25. 479 0
      src/views/lossBenchmarking/fiveLossLineTable.vue
  26. 338 330
      src/views/lossBenchmarking/fiveLossRates.vue
  27. 9 6
      src/views/lossBenchmarking/fiveLossRatesHistogramChart.vue
  28. 3 3
      src/views/lossBenchmarking/fiveLossRatesPieChart.vue
  29. 270 0
      src/views/lossBenchmarking/interValue.vue
  30. 151 0
      src/views/lossBenchmarking/lossRateAbandoned.vue
  31. 150 0
      src/views/lossBenchmarking/lossRateAffected.vue
  32. 150 0
      src/views/lossBenchmarking/lossRateFailure.vue
  33. 150 0
      src/views/lossBenchmarking/lossRateMaintenance.vue
  34. 150 0
      src/views/lossBenchmarking/lossRatePerformance.vue

+ 39 - 0
src/assets/css/lossBenchmarking/InterValueLineTable.scss

@@ -0,0 +1,39 @@
+.box{
+    width: 100%;
+    display: flex;
+    justify-content: space-around;
+     align-items: center;
+     overflow: hidden;
+}
+.searchBar{
+margin-top: 1%;
+}
+#leiDaTu3 {
+    margin-left: 5%;
+    height: 300px;
+    width: 100%;
+    float: left;
+}
+#leiDaTu4 {
+    margin: 15%;
+    height: 300px;
+    width: 450px;
+    float: left;
+}
+.margin {
+    width: 100%;
+    height: 618px;
+}
+.dialogLeftData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}
+
+.dialogRightData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}

+ 39 - 0
src/assets/css/lossBenchmarking/fiveLossLineTable.scss

@@ -0,0 +1,39 @@
+.box{
+    width: 100%;
+    // display: flex;
+    justify-content: space-around;
+     align-items: center;
+     overflow: hidden;
+}
+.searchBar{
+margin-top: 1%;
+}
+#leiDaTu3 {
+    margin-left: 5%;
+    height: 300px;
+    width: 100%;
+    float: left;
+}
+#leiDaTu4 {
+    margin: 15%;
+    height: 300px;
+    width: 450px;
+    float: left;
+}
+.margin {
+    width: 100%;
+    height: 618px;
+}
+.dialogLeftData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}
+
+.dialogRightData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}

+ 39 - 0
src/assets/css/lossBenchmarking/interValue.scss

@@ -0,0 +1,39 @@
+.box{
+    width: 100%;
+    // display: flex;
+    justify-content: space-around;
+     align-items: center;
+     overflow: hidden;
+}
+.searchBar{
+    margin-top: 1%;
+}
+#leiDaTu {
+    margin-left: 5%;
+    height: 300px;
+    width: 100%;
+    float: left;
+}
+#leiDaTu2 {
+        margin: 15%;
+        height: 300px;
+        width: 450px;
+        float: left;
+    }
+.margin {
+        width: 100%;
+        height: 618px;
+    }
+.dialogLeftData {
+        width: 50%;
+        height: 650px;
+        text-align: center;
+        float: left;
+}
+
+.dialogRightData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}

+ 45 - 0
src/assets/css/lossBenchmarking/lossRateAbandoned.scss

@@ -0,0 +1,45 @@
+.box{
+    width: 100%;
+    display: flex;
+    justify-content: space-around;
+     align-items: center;
+     overflow: hidden;
+}
+.searchBar{
+margin-top: 1%;
+}
+.pieChart{
+margin-top: 2%;
+}
+.histogramChart{
+margin-bottom: 10%;
+}
+#leiDaTu {
+    margin-left: 5%;
+    height: 300px;
+    width: 100%;
+    float: left;
+}
+#leiDaTu2 {
+    margin: 15%;
+    height: 300px;
+    width: 450px;
+    float: left;
+}
+.margin {
+    width: 100%;
+    height: 618px;
+}
+.dialogLeftData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}
+
+.dialogRightData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}

+ 45 - 0
src/assets/css/lossBenchmarking/lossRateAffected.scss

@@ -0,0 +1,45 @@
+.box{
+    width: 100%;
+    display: flex;
+    justify-content: space-around;
+     align-items: center;
+     overflow: hidden;
+}
+.searchBar{
+margin-top: 1%;
+}
+.pieChart{
+margin-top: 2%;
+}
+.histogramChart{
+margin-bottom: 10%;
+}
+#leiDaTu {
+    margin-left: 5%;
+    height: 300px;
+    width: 100%;
+    float: left;
+}
+#leiDaTu2 {
+    margin: 15%;
+    height: 300px;
+    width: 450px;
+    float: left;
+}
+.margin {
+    width: 100%;
+    height: 618px;
+}
+.dialogLeftData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}
+
+.dialogRightData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}

+ 45 - 0
src/assets/css/lossBenchmarking/lossRateFailure.scss

@@ -0,0 +1,45 @@
+.box{
+    width: 100%;
+    display: flex;
+    justify-content: space-around;
+     align-items: center;
+     overflow: hidden;
+}
+.searchBar{
+margin-top: 1%;
+}
+.pieChart{
+margin-top: 2%;
+}
+.histogramChart{
+margin-bottom: 10%;
+}
+#leiDaTu {
+    margin-left: 5%;
+    height: 300px;
+    width: 100%;
+    float: left;
+}
+#leiDaTu2 {
+    margin: 15%;
+    height: 300px;
+    width: 450px;
+    float: left;
+}
+.margin {
+    width: 100%;
+    height: 618px;
+}
+.dialogLeftData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}
+
+.dialogRightData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}

+ 45 - 0
src/assets/css/lossBenchmarking/lossRateMaintenance.scss

@@ -0,0 +1,45 @@
+.box{
+    width: 100%;
+    display: flex;
+    justify-content: space-around;
+     align-items: center;
+     overflow: hidden;
+}
+.searchBar{
+margin-top: 1%;
+}
+.pieChart{
+margin-top: 2%;
+}
+.histogramChart{
+margin-bottom: 10%;
+}
+#leiDaTu {
+    margin-left: 5%;
+    height: 300px;
+    width: 100%;
+    float: left;
+}
+#leiDaTu2 {
+    margin: 15%;
+    height: 300px;
+    width: 450px;
+    float: left;
+}
+.margin {
+    width: 100%;
+    height: 618px;
+}
+.dialogLeftData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}
+
+.dialogRightData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}

+ 45 - 0
src/assets/css/lossBenchmarking/lossRatePerformance.scss

@@ -0,0 +1,45 @@
+.box{
+    width: 100%;
+    display: flex;
+    justify-content: space-around;
+     align-items: center;
+     overflow: hidden;
+}
+.searchBar{
+margin-top: 1%;
+}
+.pieChart{
+margin-top: 2%;
+}
+.histogramChart{
+margin-bottom: 10%;
+}
+#leiDaTu {
+    margin-left: 5%;
+    height: 300px;
+    width: 100%;
+    float: left;
+}
+#leiDaTu2 {
+    margin: 15%;
+    height: 300px;
+    width: 450px;
+    float: left;
+}
+.margin {
+    width: 100%;
+    height: 618px;
+}
+.dialogLeftData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}
+
+.dialogRightData {
+    width: 50%;
+    height: 650px;
+    text-align: center;
+    float: left;
+}

+ 2 - 5
src/assets/js/healthManagement/healthAssessment.js

@@ -31,8 +31,7 @@ export default {
     filters: { 
         rounding (value) {
             return value.toFixed(2)
-        }
-        
+        } 
     },
     created(){
         this.API.get('/powercompare/windfarmAjax').then((res) => {
@@ -94,15 +93,13 @@ export default {
             healthForm.append('beginDate',this.beginDate);
             healthForm.append('endDate',this.endDate);
             this.API.post('/report/getReportList',healthForm).then((res) =>{
-                console.log(res.data)
+                console.log(res)
                 if(res.data == ''){
 
                 }else{
                     this.tableData.push(res.data[0])
                     console.log(this.tableData)
                 }
-                
-
             })
         },
     }

+ 362 - 0
src/assets/js/lossBenchmarking/InterValueLineTable.js

@@ -0,0 +1,362 @@
+export default {
+    data(){
+        return{
+            formInline: {
+                windfarm: "",
+                project: "",
+                line: "",
+            },
+            tableData: [{
+                date: '2016-05-02',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1518 弄'
+            }, {
+                date: '2016-05-04',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1517 弄'
+            }, {
+                date: '2016-05-01',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1519 弄'
+            }, {
+                date: '2016-05-03',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1516 弄'
+            }],
+            options: [],
+            tableSwitch:false,
+            value: '',
+            value2: '',
+            timedate: [],
+            multipleSelection:[],
+            multipleSelection1:[],
+            multipleSelection2:[],
+            orderByColumn:'',
+            isAsc:'asc',
+            fdcLineData:[],
+            fdcLineData2:[],
+            currentPage2: 1,
+            pagesize: 10,
+            cid:[],
+            cid1:'',
+            cid2:'',
+            wpId:[],
+            beginDate:'',
+            endDate:'',
+            dialogTableVisible:false,
+            sortInOrder:[],
+            sortInOrderTop:[],
+            fdcName1:'',
+            fdcName2:'',
+            sortInOrde2:[],
+            getTableData:[],
+            updateTime:'',
+            updateTime1:'',
+        }
+    },
+    filters: {
+      rounding (value) {
+      return value.toFixed(2)
+      }
+    },
+    created(){
+        this.getDataLine();
+    },
+    methods:{
+        queryApData() {
+            this.getDataLine();
+        },
+        queryApDataMx() {
+            this.dialogTableVisible = true;
+            if (this.multipleSelection1.length + this.multipleSelection2.length == 2) {
+              this.multipleSelection = this.multipleSelection1.concat(this.multipleSelection2);
+            } else {
+              this.$message.error("请选两个风场!");
+              return;
+            }
+            console.log(this.multipleSelection)
+            if(this.multipleSelection.length==2){
+              this.fdcName1 = this.multipleSelection[0].wtName;
+              this.fdcName2 = this.multipleSelection[1].wtName;
+              this.sortInOrder.push(this.multipleSelection[0].fnlyl,this.multipleSelection[0].xqjsl,
+              this.multipleSelection[0].ztzhjsl,this.multipleSelection[0].fwjsl,this.multipleSelection[0].slssl,
+              this.multipleSelection[0].xnssl,this.multipleSelection[0].qfl,this.multipleSelection[0].jxssl,
+              this.multipleSelection[0].gzssl);
+              this.sortInOrderTop.push(this.multipleSelection[1].fnlyl,this.multipleSelection[1].xqjsl,
+              this.multipleSelection[1].ztzhjsl,this.multipleSelection[1].fwjsl,this.multipleSelection[1].slssl,
+              this.multipleSelection[1].xnssl,this.multipleSelection[1].qfl,this.multipleSelection[1].jxssl,
+              this.multipleSelection[1].gzssl);
+              for(let i=0;i<this.multipleSelection.length;i++){
+              this.sortInOrde2.push({product:this.multipleSelection[i].wtName,'限电损失电量单位:万KWh':this.multipleSelection[i].xdss,
+                    '故障损失电量单位:万KWh':this.multipleSelection[i].gzss,'检修损失电量单位:万KWh':this.multipleSelection[i].jxssl,
+                    '性能损失电量单位:万KWh':this.multipleSelection[i].xnssl,'受累损失电量单位:万KWh':this.multipleSelection[i].slss});
+              }
+              this.getTableData.push({index:'发电量',data1:this.multipleSelection[0].scadafdl,data2:this.multipleSelection[1].scadafdl});
+              this.getTableData.push({index:'故障损失电量',data1:this.multipleSelection[0].gzss,data2:this.multipleSelection[1].gzss});
+              this.getTableData.push({index:'检修损失电量',data1:this.multipleSelection[0].jxssl,data2:this.multipleSelection[1].jxssl});
+              this.getTableData.push({index:'性能未达标损失电量',data1:this.multipleSelection[0].xnsslfraction,data2:this.multipleSelection[1].xnsslfraction});
+              this.getTableData.push({index:'受累损失电量',data1:this.multipleSelection[0].slss,data2:this.multipleSelection[1].slss});
+              this.getTableData.push({index:'风能利用率',data1:this.multipleSelection[0].fnlyl,data2:this.multipleSelection[1].fnlyl});
+              this.getTableData.push({index:'故障损失率',data1:this.multipleSelection[0].gzssl,data2:this.multipleSelection[1].gzssl});
+              this.getTableData.push({index:'检修损失率',data1:this.multipleSelection[0].jxssl,data2:this.multipleSelection[1].jxssl});
+              this.getTableData.push({index:'弃风率',data1:this.multipleSelection[0].qfl,data2:this.multipleSelection[1].qfl});
+              this.getTableData.push({index:'性能损失率',data1:this.multipleSelection[0].xnssl,data2:this.multipleSelection[1].xnssl});
+              this.getTableData.push({index:'受累损失率',data1:this.multipleSelection[0].slssl,data2:this.multipleSelection[1].slssl});
+              this.getTableData.push({index:'复位及时率',data1:this.multipleSelection[0].fwjsl,data2:this.multipleSelection[1].fwjsl});
+              this.getTableData.push({index:'消缺及时率',data1:this.multipleSelection[0].xqjsl,data2:this.multipleSelection[1].xqjsl});
+              this.getTableData.push({index:'状态转换率',data1:this.multipleSelection[0].ztzhjsl,data2:this.multipleSelection[1].ztzhjsl});        
+            }
+            this.$nextTick(function() {
+                this.drawPie('leiDaTu3')
+            })
+            this.$nextTick(function() {
+                this.drawPie2('leiDaTu4')
+            })
+        },
+        getDataLine(){
+          this.API.get('/powercompare/windfarmAjax').then((res) => {
+              this.options = res.data;
+          })
+          this.wpId = this.$route.query.wpId;
+          this.cid = this.$route.query.cid;
+          console.log(this.wpId)
+          if(this.value == ''){
+            if(this.wpId.length == 2){
+              this.tableSwitch = true;
+              this.value = this.wpId[0];
+              this.value2 = this.wpId[1];
+              this.cid1 = this.cid[0];
+              this.cid2 = this.cid[1];
+              this.FiveLossTableData1();
+            }else{
+              this.value = this.wpId;
+              this.cid1 = this.cid;
+              this.FiveLossTableData1();
+            }
+          }else{
+              this.FiveLossTableData1();
+          }
+        },
+        FiveLossTableData1(){
+            var newData = new Date();
+            this.updateTime = this.BASE.getBzDate(newData.getTime(), 0);
+            this.updateTime1 = this.BASE.getBzDate(newData.getTime(), -1);
+            if(this.timedate == ''){
+              this.timedate[0] = this.updateTime1;
+              this.timedate[1] = this.updateTime;
+              this.beginDate = this.timedate[0];
+              this.endDate = this.timedate[1];
+            }else{
+              this.beginDate = this.timedate[0];
+              this.endDate = this.timedate[1];
+            }
+            var interValueLineData = new URLSearchParams();
+            interValueLineData.append('pageNum',this.currentPage2);
+            interValueLineData.append('pageSize',this.pagesize);
+            interValueLineData.append('orderByColumn',this.orderByColumn);
+            interValueLineData.append('isAsc',this.isAsc);
+            interValueLineData.append('cid',this.cid1);
+            interValueLineData.append('beginDate',this.beginDate);
+            interValueLineData.append('endDate',this.endDate);
+            interValueLineData.append('wpId',this.value);
+            this.API.post('/contrast/benchmarkZjWtList',interValueLineData).then((res) => {
+              console.log(res)
+              this.fdcLineData = res.data;
+          })
+          this.FiveLossTableData2();
+        },
+        FiveLossTableData2(){
+            if(this.timedate == ''){
+              this.timedate[0] = this.updateTime1;
+              this.timedate[1] = this.updateTime;
+              this.beginDate = this.timedate[0];
+              this.endDate = this.timedate[1];
+            }else{
+              this.beginDate = this.timedate[0];
+              this.endDate = this.timedate[1];
+            }
+            if(this.value2.length > 0){
+                this.tableSwitch = true;
+            }else{
+                this.tableSwitch = false;
+            }
+            var interValueLineData = new URLSearchParams();
+            interValueLineData.append('pageNum',this.currentPage2);
+            interValueLineData.append('pageSize',this.pagesize);
+            interValueLineData.append('orderByColumn',this.orderByColumn);
+            interValueLineData.append('isAsc',this.isAsc);
+            interValueLineData.append('cid',this.cid2);
+            interValueLineData.append('beginDate',this.beginDate);
+            interValueLineData.append('endDate',this.endDate);
+            interValueLineData.append('wpId',this.value2);
+            this.API.post('/contrast/benchmarkZjWtList',interValueLineData).then((res) => {
+             this.fdcLineData2 = res.data;
+          })
+        },
+        headStyle() {
+			    return "text-align:center"
+		    },
+        handleSelectionChange(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection1 = [];
+            this.multipleSelection1 = val;
+        },
+        handleSelectionChange2(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection2 = [];
+            this.multipleSelection2 = val;
+        },
+        changeTableSort(column){
+          this.orderByColumn = column.prop;
+          if(column.order == "descending"){
+            this.isAsc = 'desc';
+          }else if(column.order == "ascending"){
+            this.isAsc = "asc";
+          }
+          this.getDataLine();
+        },
+        drawPie() {
+            var charts;
+            if (charts != null && charts != "" && charts != undefined){
+                charts.dispose();
+            }
+            charts= this.$echarts.init(document.getElementById('leiDaTu3'));
+            let option = {
+              title: {
+            // text: '对标排名分析',
+            left: 'center'
+        },
+        tooltip: {},
+        // legend: {
+        //     data: ['预算分配(Allocated Budget)', '实际开销(Actual Spending)'],
+        //     left: 'right'
+        // },
+        radar: {
+            // shape: 'circle',
+            name: {
+                textStyle: {
+                    color: '#fff',
+                    backgroundColor: '#999',
+                    borderRadius: 3,
+                    padding: [3, 5]
+                }
+            },
+            indicator: [
+                { name: '风能利用率', max: 150},
+                { name: '消缺及时率', max: 150},
+                { name: '状态转换率', max: 150},
+                { name: '复位及时率', max: 150},
+                { name: '受累损失率', max: 150},
+                { name: '性能损失率', max: 150},
+                { name: '弃风率', max: 150},
+                { name: '检修损失率', max: 150},
+                { name: '故障损失率', max: 150},
+            ]
+        },
+        series: [{
+            name: '预算 vs 开销(Budget vs spending)',
+            type: 'radar',
+            // areaStyle: {normal: {}},
+            data: [
+                {
+                    value: this.sortInOrder,
+                    name:this.fdcName1
+                },
+                {
+                    value: this.sortInOrderTop,
+                    name: this.fdcName2
+                }
+            ]
+        }]
+            }
+            charts.clear();
+            charts.setOption(option);
+            
+          },
+          drawPie2() {
+            var charts2;
+            if (charts2 != null && charts2 != "" && charts2 != undefined){
+                charts2.dispose();
+            }
+            charts2= this.$echarts.init(document.getElementById('leiDaTu4'));
+            let option2 = {
+              legend: {
+                  orient: 'vertical',
+                  left: 'right'
+              },
+              tooltip: {},
+              dataset: {
+                  dimensions: ['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'],
+                  source: this.sortInOrde2
+              },
+              xAxis: {type: 'category'},
+              yAxis: {},
+              series: [
+                  {
+                        // barGap:'100%',/*多个并排柱子设置柱子之间的间距*/
+                        type: 'bar',
+                        barWidth : 30,
+                        itemStyle:{
+                            normal:{
+                                color:'#D201D8'
+                            }
+                        }
+                    },
+                    {
+                        
+                        type: 'bar',
+                        barWidth : 30,
+                        itemStyle:{
+                            normal:{
+                                color:'#FD0100'
+                            }
+                        }
+                    },
+                    {
+                        
+                        type: 'bar',
+                        barWidth : 30,
+                        itemStyle:{
+                            normal:{
+                                color:'#FF7B16'
+                            }
+                        }
+                    },
+                    {
+                        
+                        type: 'bar',
+                        barWidth : 30,
+                        itemStyle:{
+                            normal:{
+                                color:'#8085E9'
+                            }
+                        }
+                    },
+                    {
+                        type: 'bar',
+                        barWidth : 30,
+                        itemStyle:{
+                            normal:{
+                                color:'#A6A6A6'
+                            }
+                        }
+                    },
+              ]
+                  }
+                  charts2.clear();
+                  charts2.setOption(option2);
+            
+          },
+          goReturn(){
+            this.$router.push('/interValue')
+          },
+          toExcel(){}
+          }
+
+}

+ 252 - 0
src/assets/js/lossBenchmarking/fiveLossLineTable.js

@@ -0,0 +1,252 @@
+export default {
+    data() {
+        return {
+            formInline: {
+                windfarm: "",
+                project: "",
+                line: "",
+            },
+            tableData: [{
+                date: '2016-05-02',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1518 弄'
+            }, {
+                date: '2016-05-04',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1517 弄'
+            }, {
+                date: '2016-05-01',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1519 弄'
+            }, {
+                date: '2016-05-03',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1516 弄'
+            }],
+            fdcLineData2: [],
+            options: [{
+                value: 'MHS_FDC',
+                label: '麻黄山风电场'
+            }, {
+                value: 'NSS_FDC',
+                label: '牛首山风电场'
+            },
+            {
+                value: 'SBQ_FDC',
+                label: '石板泉风电场'
+            },
+            {
+                value: 'QS_FDC',
+                label: '青山风电场'
+            },
+            {
+                value: 'XS_FDC',
+                label: '香山风电场'
+            }],
+            value: '',
+            value2: '',
+            valueAll: '',
+            timedate: [],
+            timedate2: [],
+            multipleSelection: [],
+            multipleSelection1: [],
+            multipleSelection2: [],
+            orderByColumn: '',
+            isAsc: 'asc',
+            fdcLineData: [],
+            currentPage2: 1,
+            pagesize: 10,
+            tableSwitch: false,
+            wpId: '',
+            beginDate: '',
+            beginDate2: '',
+            endDate: '',
+            endDate2: '',
+            dialogTableVisible: false,
+            sortInOrder: [],
+            sortInOrderTop: [],
+            fdcName1: '',
+            fdcName2: '',
+            sortInOrde2: [],
+            getTableData: [],
+        }
+    },
+    filters: {
+        rounding(value) {
+            return value.toFixed(2)
+        }
+    },
+    created() {
+        this.FiveLossTableData();
+    },
+    methods: {
+        queryApData() {
+            this.FiveLossTableData();
+        },
+        queryApDataMx() {
+            this.dialogTableVisible = true;
+            if (this.multipleSelection1.length + this.multipleSelection2.length == 2) {
+                this.multipleSelection = this.multipleSelection1.concat(this.multipleSelection2);
+            } else {
+                this.$message.error("请选两个风场!");
+                return;
+            }
+            console.log(this.multipleSelection)
+            if (this.multipleSelection.length == 2) {
+                this.fdcName1 = this.multipleSelection[0].wtName;
+                this.fdcName2 = this.multipleSelection[1].wtName;
+                this.sortInOrder.push(this.multipleSelection[0].fnlyl, this.multipleSelection[0].xqjsl,
+                    this.multipleSelection[0].ztzhjsl, this.multipleSelection[0].fwjsl, this.multipleSelection[0].slssl,
+                    this.multipleSelection[0].xnssl, this.multipleSelection[0].qfl, this.multipleSelection[0].jxssl,
+                    this.multipleSelection[0].gzssl);
+                this.sortInOrderTop.push(this.multipleSelection[1].fnlyl, this.multipleSelection[1].xqjsl,
+                    this.multipleSelection[1].ztzhjsl, this.multipleSelection[1].fwjsl, this.multipleSelection[1].slssl,
+                    this.multipleSelection[1].xnssl, this.multipleSelection[1].qfl, this.multipleSelection[1].jxssl,
+                    this.multipleSelection[1].gzssl);
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.sortInOrde2.push({
+                        product: this.multipleSelection[i].wtName, '限电损失电量单位:万KWh': this.multipleSelection[i].xdss,
+                        '故障损失电量单位:万KWh': this.multipleSelection[i].gzss, '检修损失电量单位:万KWh': this.multipleSelection[i].jxssl,
+                        '性能损失电量单位:万KWh': this.multipleSelection[i].xnssl, '受累损失电量单位:万KWh': this.multipleSelection[i].slss
+                    });
+                }
+                this.getTableData.push({ index: '发电量', data1: this.multipleSelection[0].scadafdl, data2: this.multipleSelection[1].scadafdl });
+                this.getTableData.push({ index: '故障损失电量', data1: this.multipleSelection[0].gzss, data2: this.multipleSelection[1].gzss });
+                this.getTableData.push({ index: '检修损失电量', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '性能未达标损失电量', data1: this.multipleSelection[0].xnsslfraction, data2: this.multipleSelection[1].xnsslfraction });
+                this.getTableData.push({ index: '受累损失电量', data1: this.multipleSelection[0].slss, data2: this.multipleSelection[1].slss });
+                this.getTableData.push({ index: '风能利用率', data1: this.multipleSelection[0].fnlyl, data2: this.multipleSelection[1].fnlyl });
+                this.getTableData.push({ index: '故障损失率', data1: this.multipleSelection[0].gzssl, data2: this.multipleSelection[1].gzssl });
+                this.getTableData.push({ index: '检修损失率', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '弃风率', data1: this.multipleSelection[0].qfl, data2: this.multipleSelection[1].qfl });
+                this.getTableData.push({ index: '性能损失率', data1: this.multipleSelection[0].xnssl, data2: this.multipleSelection[1].xnssl });
+                this.getTableData.push({ index: '受累损失率', data1: this.multipleSelection[0].slssl, data2: this.multipleSelection[1].slssl });
+                this.getTableData.push({ index: '复位及时率', data1: this.multipleSelection[0].fwjsl, data2: this.multipleSelection[1].fwjsl });
+                this.getTableData.push({ index: '消缺及时率', data1: this.multipleSelection[0].xqjsl, data2: this.multipleSelection[1].xqjsl });
+                this.getTableData.push({ index: '状态转换率', data1: this.multipleSelection[0].ztzhjsl, data2: this.multipleSelection[1].ztzhjsl });
+            }
+            this.$nextTick(function () {
+                this.drawPie('leiDaTu3')
+            })
+            this.$nextTick(function () {
+                this.drawPie2('leiDaTu4')
+            })
+        },
+        FiveLossTableData() {
+            this.API.get('/powercompare/windfarmAjax').then((res) => {
+                this.options = res.data;
+            })
+            this.wpId = this.$route.query.wpId;
+            if (this.value == '') {
+                if (this.wpId.length == 2) {
+                    this.tableSwitch = true;
+                    this.value = this.wpId[0];
+                    this.value2 = this.wpId[1];
+                    this.FiveLossTableDataTable1();
+                } else {
+                    this.value = this.wpId;
+                    this.FiveLossTableDataTable1();
+                }
+            } else {
+                this.FiveLossTableDataTable1();
+            }
+        },
+        FiveLossTableDataTable1() {
+            if (this.timedate == '') {
+                this.timedate[0] = this.$route.query.beginDate;
+                this.timedate[1] = this.$route.query.endDate;
+                this.beginDate = this.$route.query.beginDate;
+                this.endDate = this.$route.query.endDate;
+            } else {
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            }
+            var fiveLossLineDatatable1 = new URLSearchParams();
+            fiveLossLineDatatable1.append('pageNum', this.currentPage2);
+            fiveLossLineDatatable1.append('pageSize', this.pagesize);
+            fiveLossLineDatatable1.append('orderByColumn', this.orderByColumn);
+            fiveLossLineDatatable1.append('isAsc', this.isAsc);
+            fiveLossLineDatatable1.append('wpId', this.value);
+            fiveLossLineDatatable1.append('beginDate', this.beginDate);
+            fiveLossLineDatatable1.append('endDate', this.endDate);
+            this.API.post('/contrast/benchmarkWtList', fiveLossLineDatatable1).then((res) => {
+                this.fdcLineData = res.data;
+            })
+            this.FiveLossTableDataTable2();
+        },
+        FiveLossTableDataTable2() {
+            if (this.timedate == '') {
+                this.beginDate = this.$route.query.beginDate;
+                this.endDate = this.$route.query.endDate;
+            } else {
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            }
+            console.log(this.value2.length)
+            if (this.value2.length > 0) {
+                this.tableSwitch = true;
+            } else {
+                this.tableSwitch = false;
+            }
+            var fiveLossLineDatatable2 = new URLSearchParams();
+            fiveLossLineDatatable2.append('pageNum', this.currentPage2);
+            fiveLossLineDatatable2.append('pageSize', this.pagesize);
+            fiveLossLineDatatable2.append('orderByColumn', this.orderByColumn);
+            fiveLossLineDatatable2.append('isAsc', this.isAsc);
+            fiveLossLineDatatable2.append('wpId', this.value2);
+            fiveLossLineDatatable2.append('beginDate', this.beginDate);
+            fiveLossLineDatatable2.append('endDate', this.endDate);
+            this.API.post('/contrast/benchmarkWtList', fiveLossLineDatatable2).then((res) => {
+                this.fdcLineData2 = res.data;
+            })
+        },
+        headStyle() {
+            return "text-align:center"
+        },
+        handleSelectionChange(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection1 = [];
+            this.multipleSelection1 = val;
+        },
+        handleSelectionChange2(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection2 = [];
+            this.multipleSelection2 = val;
+        },
+        changeTableSort(column) {
+            this.orderByColumn = column.prop;
+            if (column.order == "descending") {
+                this.isAsc = 'desc';
+            } else if (column.order == "ascending") {
+                this.isAsc = "asc";
+            }
+            this.FiveLossTableData();
+        },
+        drawPie() {
+            this.ECLZX.getFiveLossRadarMap("leiDaTu3",[
+                {
+                    value: this.sortInOrder,
+                    name: this.fdcName1
+                },
+                {
+                    value: this.sortInOrderTop,
+                    name: this.fdcName2
+                }
+            ]);
+        },
+        drawPie2() {
+            this.ECLZX.getFiveLossRadarHistogram("leiDaTu4",['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'],this.sortInOrde2);
+        },
+        goReturn() {
+            this.$router.push('/fiveLossRates')
+        },
+        toExcel() { }
+    }
+
+}

+ 13 - 140
src/assets/js/lossBenchmarking/fiveLossRates.js

@@ -247,17 +247,9 @@ export default {
         },
         FiveLossInformation() {
             let that = this;
-            const nowDate = new Date();
-            const date = {
-                year: nowDate.getFullYear(),
-                month: nowDate.getMonth() + 1,
-                date: nowDate.getDate(),
-            }
-            const newmonth = date.month > 10 ? date.month : '0' + date.month
-            const day = date.date > 10 ? date.date : '0' + date.date
-            const day1 = date.date > 10 ? date.date - 1 : '0' + date.date
-            this.updateTime = date.year + '-' + newmonth + '-' + day
-            this.updateTime1 = date.year + '-' + newmonth + '-' + day1
+            var newData = new Date();
+            this.updateTime = this.BASE.getBzDate(newData.getTime(), 0);
+            this.updateTime1 = this.BASE.getBzDate(newData.getTime(), -1);
             if (this.timedate == '') {
                 this.timedate[0] = this.updateTime1;
                 this.timedate[1] = this.updateTime;
@@ -282,138 +274,19 @@ export default {
             })
         },
         drawPie() {
-            var charts;
-            if (charts != null && charts != "" && charts != undefined) {
-                charts.dispose();
-            }
-            charts = this.$echarts.init(document.getElementById('leiDaTu'));
-            let option = {
-                title: {
-                    // text: '对标排名分析',
-                    left: 'center'
+            this.ECLZX.getFiveLossRadarMap("leiDaTu",[
+                {
+                    value: this.sortInOrder,
+                    name: this.fdcName1
                 },
-                tooltip: {},
-                // legend: {
-                //     data: ['预算分配(Allocated Budget)', '实际开销(Actual Spending)'],
-                //     left: 'right'
-                // },
-                radar: {
-                    // shape: 'circle',
-                    name: {
-                        textStyle: {
-                            color: '#fff',
-                            backgroundColor: '#999',
-                            borderRadius: 3,
-                            padding: [3, 5]
-                        }
-                    },
-                    indicator: [
-                        { name: '风能利用率', max: 150 },
-                        { name: '消缺及时率', max: 150 },
-                        { name: '状态转换率', max: 150 },
-                        { name: '复位及时率', max: 150 },
-                        { name: '受累损失率', max: 150 },
-                        { name: '性能损失率', max: 150 },
-                        { name: '弃风率', max: 150 },
-                        { name: '检修损失率', max: 150 },
-                        { name: '故障损失率', max: 150 },
-                    ]
-                },
-                series: [{
-                    name: '预算 vs 开销(Budget vs spending)',
-                    type: 'radar',
-                    // areaStyle: {normal: {}},
-                    data: [
-                        {
-                            value: this.sortInOrder,
-                            name: this.fdcName1
-                        },
-                        {
-                            value: this.sortInOrderTop,
-                            name: this.fdcName2
-                        }
-                    ]
-                }]
-            }
-            charts.clear();
-            charts.setOption(option);
-
+                {
+                    value: this.sortInOrderTop,
+                    name: this.fdcName2
+                }
+            ]);
         },
         drawPie2() {
-            var charts2;
-            if (charts2 != null && charts2 != "" && charts2 != undefined) {
-                charts2.dispose();
-            }
-            charts2 = this.$echarts.init(document.getElementById('leiDaTu2'));
-            let option2 = {
-                legend: {
-                    orient: 'vertical',
-                    left: 'right'
-                },
-                tooltip: {},
-                dataset: {
-                    dimensions: ['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'],
-                    source: this.sortInOrde2
-                },
-                xAxis: { type: 'category' },
-                yAxis: {},
-                // Declare several bar series, each will be mapped
-                // to a column of dataset.source by default.
-                series: [
-                    {
-                        // barGap:'100%',/*多个并排柱子设置柱子之间的间距*/
-                        type: 'bar',
-                        barWidth: 30,
-                        itemStyle: {
-                            normal: {
-                                color: '#D201D8'
-                            }
-                        }
-                    },
-                    {
-
-                        type: 'bar',
-                        barWidth: 30,
-                        itemStyle: {
-                            normal: {
-                                color: '#FD0100'
-                            }
-                        }
-                    },
-                    {
-
-                        type: 'bar',
-                        barWidth: 30,
-                        itemStyle: {
-                            normal: {
-                                color: '#FF7B16'
-                            }
-                        }
-                    },
-                    {
-
-                        type: 'bar',
-                        barWidth: 30,
-                        itemStyle: {
-                            normal: {
-                                color: '#8085E9'
-                            }
-                        }
-                    },
-                    {
-                        type: 'bar',
-                        barWidth: 30,
-                        itemStyle: {
-                            normal: {
-                                color: '#A6A6A6'
-                            }
-                        }
-                    },
-                ]
-            }
-            charts2.clear();
-            charts2.setOption(option2);
-
+            this.ECLZX.getFiveLossRadarHistogram("leiDaTu2",['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'],this.sortInOrde2);
         },
         toExcel() { }
     },

+ 1 - 74
src/assets/js/lossBenchmarking/fiveLossRatesHistogramChart.js

@@ -19,80 +19,7 @@ export default {
             this.getChartDataImport();
         },
         getChartDataImport(){
-            var charts =echarts.init(document.getElementById("chartHistogram"));
-            let option = {
-            title: {
-                text: '损失电量分析',
-                left: 'center'
-            },
-            legend: {
-                orient: 'vertical',
-                left: 'right'
-            },
-            tooltip: {},
-            dataset: {
-                 dimensions: ['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'],
-                 source: this.getChartData
-            },
-            xAxis: {type: 'category'},
-            yAxis: {},
-            // Declare several bar series, each will be mapped
-            // to a column of dataset.source by default.
-            series: [
-                {
-                    // barGap:'100%',/*多个并排柱子设置柱子之间的间距*/
-                    type: 'bar',
-                    barWidth : 30,
-                    itemStyle:{
-                        normal:{
-                            color:'#D201D8'
-                        }
-                    }
-                },
-                {
-                    
-                    type: 'bar',
-                    barWidth : 30,
-                    itemStyle:{
-                        normal:{
-                            color:'#FD0100'
-                        }
-                    }
-                },
-                {
-                    
-                    type: 'bar',
-                    barWidth : 30,
-                    itemStyle:{
-                        normal:{
-                            color:'#FF7B16'
-                        }
-                    }
-                },
-                {
-                    
-                    type: 'bar',
-                    barWidth : 30,
-                    itemStyle:{
-                        normal:{
-                            color:'#8085E9'
-                        }
-                    }
-                },
-                {
-                    
-                    type: 'bar',
-                    barWidth : 30,
-                    itemStyle:{
-                        normal:{
-                            color:'#A6A6A6'
-                        }
-                    }
-                },
-                
-            ]
-        };
-        charts.setOption(option);
+            this.ECLZX.getFiveLossHistogram("chartHistogram",['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'],this.getChartData);
         }
     },
 }

+ 354 - 0
src/assets/js/lossBenchmarking/interValue.js

@@ -0,0 +1,354 @@
+export default {
+    data() {
+        return {
+            formInline: {
+                windfarm: "",
+                project: "",
+                line: "",
+            },
+            options: [{
+                value: 'MHS_FDC',
+                label: '麻黄山风电场'
+            }, {
+                value: 'NSS_FDC',
+                label: '牛首山风电场'
+            },
+            {
+                value: 'SBQ_FDC',
+                label: '石板泉风电场'
+            },
+            {
+                value: 'QS_FDC',
+                label: '青山风电场'
+            },
+            {
+                value: 'XS_FDC',
+                label: '香山风电场'
+            }],
+            value: "",
+            value2: "",
+            value3: "",
+            value4: "",
+            ortInOrder: [],
+            sortInOrderTop: [],
+            sortInOrde2: [],
+            getTableData: [],
+            fdcName1: '',
+            fdcName2: '',
+            dialogTableVisible: false,
+            year: "",
+            month: "",
+            cid: [],
+            wpId: [],
+            options2: [
+                {
+                    value: '1',
+                    label: '一值'
+                }, {
+                    value: '2',
+                    label: '二值'
+                },
+                {
+                    value: '3',
+                    label: '三值'
+                },
+
+            ],
+            classification: [{
+                id: 'qf',
+                label: '弃风率'
+            }, {
+                id: 'gz',
+                label: '故障损失率'
+            },
+            {
+                id: 'jx',
+                label: '检修损失率'
+            },
+            {
+                id: 'xn',
+                label: '性能损失率'
+            },
+            {
+                id: 'sl',
+                label: '受累损失率'
+            }],
+            multipleSelection: [],
+            getTableDataAll: [],
+            pagesize: 10,
+            currentPage2: 1,
+            orderByColumn: '',
+            isAsc: 'asc',
+            doesExist: 'no',
+            tableData: []
+        }
+    },
+    created() {
+        this.API.get('/powercompare/windfarmAjax').then((res) => {
+                this.options = res.data;
+        })
+        this.InterValueDatainitial();
+    },
+    methods: {
+        headStyle() {
+            return "text-align:center"
+        },
+        queryApData() {
+            this.InterValueData();
+        },
+        queryApDataMx() {
+            this.dialogTableVisible = true;
+            this.$nextTick(function () {
+                this.drawPie('leiDaTu')
+            })
+            this.$nextTick(function () {
+                this.drawPie2('leiDaTu2')
+            })
+        },
+        handleEdit(a, b) {
+            this.cid = [];
+            this.wpId = [];
+            if (this.multipleSelection.length == 2) {
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.cid.push(this.multipleSelection[i].cid)
+                    this.wpId.push(this.multipleSelection[i].wpId)
+                }
+                this.$router.push({
+                    path: '/interValueLineTable',
+                    query: {
+                        cid: this.cid,
+                        wpId: this.wpId
+                    }
+                })
+            }
+            else {
+                console.log(b)
+                this.$router.push({
+                    path: '/interValueLineTable',
+                    query: {
+                        cid: b.cid,
+                        wpId: b.wpId
+                    }
+                })
+
+            }
+        },
+        handleSelectionChange(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection = val;
+            if (this.multipleSelection.length == 2) {
+                this.fdcName1 = this.multipleSelection[0].wpName;
+                this.fdcName2 = this.multipleSelection[1].wpName;
+                this.sortInOrder.push(this.multipleSelection[0].fnlyl, this.multipleSelection[0].xqjsl,
+                    this.multipleSelection[0].ztzhjsl, this.multipleSelection[0].fwjsl, this.multipleSelection[0].slssl,
+                    this.multipleSelection[0].xnssl, this.multipleSelection[0].qfl, this.multipleSelection[0].jxssl,
+                    this.multipleSelection[0].gzssl);
+                this.sortInOrderTop.push(this.multipleSelection[1].fnlyl, this.multipleSelection[1].xqjsl,
+                    this.multipleSelection[1].ztzhjsl, this.multipleSelection[1].fwjsl, this.multipleSelection[1].slssl,
+                    this.multipleSelection[1].xnssl, this.multipleSelection[1].qfl, this.multipleSelection[1].jxssl,
+                    this.multipleSelection[1].gzssl);
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.sortInOrde2.push({
+                        product: this.multipleSelection[i].wpName, '限电损失电量单位:万KWh': this.multipleSelection[i].xdss,
+                        '故障损失电量单位:万KWh': this.multipleSelection[i].gzss, '检修损失电量单位:万KWh': this.multipleSelection[i].jxssl,
+                        '性能损失电量单位:万KWh': this.multipleSelection[i].xnssl, '受累损失电量单位:万KWh': this.multipleSelection[i].slss
+                    });
+                }
+                this.getTableData.push({ index: '发电量', data1: this.multipleSelection[0].fdl, data2: this.multipleSelection[1].fdl });
+                this.getTableData.push({ index: '故障损失电量', data1: this.multipleSelection[0].gzss, data2: this.multipleSelection[1].gzss });
+                this.getTableData.push({ index: '检修损失电量', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '性能未达标损失电量', data1: this.multipleSelection[0].xnsslfraction, data2: this.multipleSelection[1].xnsslfraction });
+                this.getTableData.push({ index: '受累损失电量', data1: this.multipleSelection[0].slss, data2: this.multipleSelection[1].slss });
+                this.getTableData.push({ index: '风能利用率', data1: this.multipleSelection[0].fnlyl, data2: this.multipleSelection[1].fnlyl });
+                this.getTableData.push({ index: '故障损失率', data1: this.multipleSelection[0].gzssl, data2: this.multipleSelection[1].gzssl });
+                this.getTableData.push({ index: '检修损失率', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '弃风率', data1: this.multipleSelection[0].qfl, data2: this.multipleSelection[1].qfl });
+                this.getTableData.push({ index: '性能损失率', data1: this.multipleSelection[0].xnssl, data2: this.multipleSelection[1].xnssl });
+                this.getTableData.push({ index: '受累损失率', data1: this.multipleSelection[0].slssl, data2: this.multipleSelection[1].slssl });
+                this.getTableData.push({ index: '复位及时率', data1: this.multipleSelection[0].fwjsl, data2: this.multipleSelection[1].fwjsl });
+                this.getTableData.push({ index: '消缺及时率', data1: this.multipleSelection[0].xqjsl, data2: this.multipleSelection[1].xqjsl });
+                this.getTableData.push({ index: '状态转换率', data1: this.multipleSelection[0].ztzhjsl, data2: this.multipleSelection[1].ztzhjsl });
+            }
+
+        },
+        changeTableSort(column) {
+            this.orderByColumn = column.prop;
+            if (column.order == "descending") {
+                this.isAsc = 'desc';
+            } else if (column.order == "ascending") {
+                this.isAsc = "asc";
+            }
+            this.InterValueDatainitial();
+        },
+        InterValueDatainitial() {
+            this.API.get('/powercompare/windfarmAjax').then((res) => {
+                this.options = res.data;
+            })
+            this.doesExist = 'no';
+            var valueData1 = new URLSearchParams();
+            valueData1.append('orderByColumn', this.orderByColumn);
+            valueData1.append('isAsc', this.isAsc);
+            this.API.post('/contrast/benchmarkZjList', valueData1).then((res) => {
+                console.log(res)
+                this.tableData = res.data;
+                // for(let i=0;i<this.tableData.length;i++){
+                //     this.getTableDataAll.push(this.tableData[i])
+                // }
+            })
+        },
+        InterValueData() {
+            this.doesExist = 'no';
+            var valueData = new URLSearchParams();
+            valueData.append('orderByColumn', this.orderByColumn);
+            valueData.append('isAsc', this.isAsc);
+            valueData.append('wpId', this.value);
+            valueData.append('year', this.value2);
+            valueData.append('month', this.value3);
+            valueData.append('zjs', this.value4)
+            this.API.post('/contrast/addBenchmarkZj', valueData).then((res) => {
+                console.log(res.data)
+                this.tableData.push(res.data[0]);
+            })
+        },
+        drawPie() {
+            var charts;
+            if (charts != null && charts != "" && charts != undefined) {
+                charts.dispose();
+            }
+            charts = this.$echarts.init(document.getElementById('leiDaTu'));
+            let option = {
+                title: {
+                    // text: '对标排名分析',
+                    left: 'center'
+                },
+                tooltip: {},
+                // legend: {
+                //     data: ['预算分配(Allocated Budget)', '实际开销(Actual Spending)'],
+                //     left: 'right'
+                // },
+                radar: {
+                    // shape: 'circle',
+                    name: {
+                        textStyle: {
+                            color: '#fff',
+                            backgroundColor: '#999',
+                            borderRadius: 3,
+                            padding: [3, 5]
+                        }
+                    },
+                    indicator: [
+                        { name: '风能利用率', max: 150 },
+                        { name: '消缺及时率', max: 150 },
+                        { name: '状态转换率', max: 150 },
+                        { name: '复位及时率', max: 150 },
+                        { name: '受累损失率', max: 150 },
+                        { name: '性能损失率', max: 150 },
+                        { name: '弃风率', max: 150 },
+                        { name: '检修损失率', max: 150 },
+                        { name: '故障损失率', max: 150 },
+                    ]
+                },
+                series: [{
+                    name: '预算 vs 开销(Budget vs spending)',
+                    type: 'radar',
+                    // areaStyle: {normal: {}},
+                    data: [
+                        {
+                            value: this.sortInOrder,
+                            name: this.fdcName1
+                        },
+                        {
+                            value: this.sortInOrderTop,
+                            name: this.fdcName2
+                        }
+                    ]
+                }]
+            }
+            charts.clear();
+            charts.setOption(option);
+
+        },
+        drawPie2() {
+            var charts2;
+            if (charts2 != null && charts2 != "" && charts2 != undefined) {
+                charts2.dispose();
+            }
+            charts2 = this.$echarts.init(document.getElementById('leiDaTu2'));
+            let option2 = {
+                legend: {
+                    orient: 'vertical',
+                    left: 'right'
+                },
+                tooltip: {},
+                dataset: {
+                    dimensions: ['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'],
+                    source: this.sortInOrde2
+                },
+                xAxis: { type: 'category' },
+                yAxis: {},
+                // Declare several bar series, each will be mapped
+                // to a column of dataset.source by default.
+                series: [
+                    {
+                        // barGap:'100%',/*多个并排柱子设置柱子之间的间距*/
+                        type: 'bar',
+                        barWidth: 30,
+                        itemStyle: {
+                            normal: {
+                                color: '#D201D8'
+                            }
+                        }
+                    },
+                    {
+
+                        type: 'bar',
+                        barWidth: 30,
+                        itemStyle: {
+                            normal: {
+                                color: '#FD0100'
+                            }
+                        }
+                    },
+                    {
+
+                        type: 'bar',
+                        barWidth: 30,
+                        itemStyle: {
+                            normal: {
+                                color: '#FF7B16'
+                            }
+                        }
+                    },
+                    {
+
+                        type: 'bar',
+                        barWidth: 30,
+                        itemStyle: {
+                            normal: {
+                                color: '#8085E9'
+                            }
+                        }
+                    },
+                    {
+                        type: 'bar',
+                        barWidth: 30,
+                        itemStyle: {
+                            normal: {
+                                color: '#A6A6A6'
+                            }
+                        }
+                    },
+                ]
+            }
+            charts2.clear();
+            charts2.setOption(option2);
+
+        },
+        clearAll() {
+            this.tableData = [];
+        }
+    }
+}

+ 233 - 0
src/assets/js/lossBenchmarking/lossRateAbandoned.js

@@ -0,0 +1,233 @@
+import FiveLossRatesPieChart from '@views/lossBenchmarking/fiveLossRatesPieChart';
+import FiveLossRatesHistogramChart from '@views/lossBenchmarking/fiveLossRatesHistogramChart.vue';
+export default {
+    data() {
+        return {
+            pickerOptions:{//禁用当前日期之前的日期
+                disabledDate(time) {
+                //Date.now()是javascript中的内置函数,它返回自1970年1月1日00:00:00 UTC以来经过的毫秒数。
+                    return time.getTime() > Date.now() - 8.64e7;
+                },
+            },
+            formInline: {
+                windfarm: "",
+                project: "",
+                line: "",
+            },
+            timedate: [],
+            isAsc: 'asc',
+            beginDate: '2021-01-01',
+            endDate: '2021-01-04',
+            gridData: "",
+            multipleSelection: [],
+            sortInOrder: [],
+            sortInOrderTop: [],
+            sortInOrde2: [],
+            getTableData: [],
+            sortInOrderTop2: [],
+            fdcName1: '',
+            fdcName2: '',
+            currentPage2: 1,
+            pagesize: 10,
+            fdcLineData: '',
+            options: [],
+            value: '',
+            value2: 'qf',
+            wpId: [],
+            wpName: [],
+            orderByColumn: '',
+            dialogTableVisible: false,
+            lineDataOption: [],
+            tableData: [],
+            updateTime: '',
+            updateTime1: '',
+
+        }
+    },
+    components: {
+        FiveLossRatesPieChart: FiveLossRatesPieChart,
+        FiveLossRatesHistogramChart: FiveLossRatesHistogramChart
+    },
+    created() {
+        this.API.get('/powercompare/windfarmAjax').then((res) => {
+            this.options = res.data;
+        })
+        this.FiveLossInformation();
+    },
+    methods: {
+        headStyle() {
+            return "text-align:center"
+        },
+        onSubmit() {
+            console.log("submit!");
+        },
+        handleClick() { },
+        deleteRow(index, rows) {
+            rows.splice(index, 1);
+        },
+        queryApData() {
+            this.FiveLossInformation();
+        },
+        handleEdit(a, b) {
+            this.wpId = [];
+            this.lineDataOption = [];
+            if (this.multipleSelection.length == 2) {
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.wpId.push(this.multipleSelection[i].wpId)
+                    this.wpName.push(this.multipleSelection[i].wpName)
+                    this.lineDataOption.push({ id: this.multipleSelection[i].wpId, name: this.multipleSelection[i].wpName })
+                }
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: this.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: this.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            } else {
+                console.log(b)
+                this.lineDataOption.push({ id: b.wpId, name: b.wpName })
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: b.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: b.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            }
+        },
+        checkwindfarm() {
+            if (this.formInline.windfarm == "") {
+                this.$message.error("请选择风场!");
+                return;
+            }
+        },
+        checkproject() {
+            if (this.formInline.project == "") {
+                this.$message.error("请选择项目!");
+                return;
+            }
+            if (new Date(this.timedate) == null) {
+                this.$message.error("请选择时间");
+                return;
+            }
+        },
+        queryApDataMx() {
+            this.dialogTableVisible = true;
+            this.$nextTick(function () {
+                this.drawPie('leiDaTu')
+            })
+            this.$nextTick(function () {
+                this.drawPie2('leiDaTu2')
+            })
+        },
+        handleSelectionChange(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection = val;
+            if (this.multipleSelection.length == 2) {
+                this.fdcName1 = this.multipleSelection[0].wpName;
+                this.fdcName2 = this.multipleSelection[1].wpName;
+                this.sortInOrder.push(this.multipleSelection[0].fnlyl, this.multipleSelection[0].xqjsl,
+                    this.multipleSelection[0].ztzhjsl, this.multipleSelection[0].fwjsl, this.multipleSelection[0].slssl,
+                    this.multipleSelection[0].xnssl, this.multipleSelection[0].qfl, this.multipleSelection[0].jxssl,
+                    this.multipleSelection[0].gzssl);
+                this.sortInOrderTop.push(this.multipleSelection[1].fnlyl, this.multipleSelection[1].xqjsl,
+                    this.multipleSelection[1].ztzhjsl, this.multipleSelection[1].fwjsl, this.multipleSelection[1].slssl,
+                    this.multipleSelection[1].xnssl, this.multipleSelection[1].qfl, this.multipleSelection[1].jxssl,
+                    this.multipleSelection[1].gzssl);
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.sortInOrde2.push({
+                        product: this.multipleSelection[i].wpName, '限电损失电量单位:万KWh': this.multipleSelection[i].xdss,
+                        '故障损失电量单位:万KWh': this.multipleSelection[i].gzss, '检修损失电量单位:万KWh': this.multipleSelection[i].jxssl,
+                        '性能损失电量单位:万KWh': this.multipleSelection[i].xnssl, '受累损失电量单位:万KWh': this.multipleSelection[i].slss
+                    });
+                }
+                this.getTableData.push({ index: '发电量', data1: this.multipleSelection[0].fdl, data2: this.multipleSelection[1].fdl });
+                this.getTableData.push({ index: '故障损失电量', data1: this.multipleSelection[0].gzss, data2: this.multipleSelection[1].gzss });
+                this.getTableData.push({ index: '检修损失电量', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '性能未达标损失电量', data1: this.multipleSelection[0].xnsslfraction, data2: this.multipleSelection[1].xnsslfraction });
+                this.getTableData.push({ index: '受累损失电量', data1: this.multipleSelection[0].slss, data2: this.multipleSelection[1].slss });
+                this.getTableData.push({ index: '风能利用率', data1: this.multipleSelection[0].fnlyl, data2: this.multipleSelection[1].fnlyl });
+                this.getTableData.push({ index: '故障损失率', data1: this.multipleSelection[0].gzssl, data2: this.multipleSelection[1].gzssl });
+                this.getTableData.push({ index: '检修损失率', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '弃风率', data1: this.multipleSelection[0].qfl, data2: this.multipleSelection[1].qfl });
+                this.getTableData.push({ index: '性能损失率', data1: this.multipleSelection[0].xnssl, data2: this.multipleSelection[1].xnssl });
+                this.getTableData.push({ index: '受累损失率', data1: this.multipleSelection[0].slssl, data2: this.multipleSelection[1].slssl });
+                this.getTableData.push({ index: '复位及时率', data1: this.multipleSelection[0].fwjsl, data2: this.multipleSelection[1].fwjsl });
+                this.getTableData.push({ index: '消缺及时率', data1: this.multipleSelection[0].xqjsl, data2: this.multipleSelection[1].xqjsl });
+                this.getTableData.push({ index: '状态转换率', data1: this.multipleSelection[0].ztzhjsl, data2: this.multipleSelection[1].ztzhjsl });
+            }
+        },
+        handleCurrentChange(val) {
+            // console.log(`当前页: ${val}`);
+        },
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+            this.pagesize = val;
+        },
+        changeTableSort(column) {
+            this.orderByColumn = column.prop;
+            if (column.order == "descending") {
+                this.isAsc = 'desc';
+            } else if (column.order == "ascending") {
+                this.isAsc = "asc";
+            }
+            this.FiveLossInformation();
+        },
+        FiveLossInformation() {
+            var newData = new Date();
+            this.updateTime = this.BASE.getBzDate(newData.getTime(), 0);
+            this.updateTime1 = this.BASE.getBzDate(newData.getTime(), -1);
+            if (this.timedate == '') {
+                this.timedate[0] = this.updateTime1;
+                this.timedate[1] = this.updateTime;
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            } else {
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            }
+            var fiveLossData = new URLSearchParams();
+            fiveLossData.append('pageNum', this.currentPage2);
+            fiveLossData.append('pageSize', this.pagesize);
+            fiveLossData.append('orderByColumn', this.orderByColumn);
+            fiveLossData.append('isAsc', this.isAsc);
+            fiveLossData.append('wpId', this.value);
+            fiveLossData.append('beginDate', this.beginDate);
+            fiveLossData.append('endDate', this.endDate);
+            this.API.post('/contrast/benchmarkLossList', fiveLossData).then((res) => {
+                this.gridData = res.data;
+                this.$refs.FiveLossRatesPieChart.getPackageData(this.gridData, this.value2);
+                this.$refs.FiveLossRatesHistogramChart.getPackageData2(this.gridData);
+            })
+        },
+        drawPie() {
+            this.ECLZX.getFiveLossRadarMap("leiDaTu", [
+                {
+                    value: this.sortInOrder,
+                    name: this.fdcName1
+                },
+                {
+                    value: this.sortInOrderTop,
+                    name: this.fdcName2
+                }
+            ]);
+        },
+        drawPie2() {
+            this.ECLZX.getFiveLossRadarHistogram("leiDaTu2",
+            ['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'], this.sortInOrde2);
+        },
+        toExcel() { }
+    },
+}

+ 230 - 0
src/assets/js/lossBenchmarking/lossRateAffected.js

@@ -0,0 +1,230 @@
+import FiveLossRatesPieChart from '@views/lossBenchmarking/fiveLossRatesPieChart';
+import FiveLossRatesHistogramChart from '@views/lossBenchmarking/fiveLossRatesHistogramChart.vue';
+export default {
+    data() {
+        return {
+            formInline: {
+                windfarm: "",
+                project: "",
+                line: "",
+            },
+            timedate: [
+                // {beginDate:'2021-01-01'},
+                // {endDate:'2021-01-04'}
+            ],
+            isAsc: 'asc',
+            beginDate: '2021-01-01',
+            endDate: '2021-01-04',
+            gridData: "",
+            multipleSelection: [],
+            sortInOrder: [],
+            sortInOrderTop: [],
+            sortInOrde2: [],
+            getTableData: [],
+            sortInOrderTop2: [],
+            fdcName1: '',
+            fdcName2: '',
+            currentPage2: 1,
+            pagesize: 10,
+            fdcLineData: '',
+            options: [],
+            value: '',
+            value2: 'sl',
+            wpId: [],
+            wpName: [],
+            orderByColumn: '',
+            dialogTableVisible: false,
+            lineDataOption: [],
+            tableData: [],
+            updateTime:'',
+            updateTime1:'',
+
+        }
+    },
+    components: {
+        FiveLossRatesPieChart: FiveLossRatesPieChart,
+        FiveLossRatesHistogramChart: FiveLossRatesHistogramChart
+    },
+    created() {
+        this.FiveLossInformation();
+        this.API.get('/powercompare/windfarmAjax').then((res) => {
+            this.options = res.data;
+        })
+    },
+    methods: {
+        headStyle() {
+            return "text-align:center"
+        },
+        onSubmit() {
+            console.log("submit!");
+        },
+        handleClick() { },
+        deleteRow(index, rows) {
+            rows.splice(index, 1);
+        },
+        queryApData() {
+            this.FiveLossInformation();
+        },
+        handleEdit(a, b) {
+            this.wpId = [];
+            this.lineDataOption = [];
+            if (this.multipleSelection.length == 2) {
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.wpId.push(this.multipleSelection[i].wpId)
+                    this.wpName.push(this.multipleSelection[i].wpName)
+                    this.lineDataOption.push({ id: this.multipleSelection[i].wpId, name: this.multipleSelection[i].wpName })
+                }
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: this.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: this.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            } else {
+                console.log(b)
+                this.lineDataOption.push({ id: b.wpId, name: b.wpName })
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: b.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: b.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            }
+        },
+        checkwindfarm() {
+            if (this.formInline.windfarm == "") {
+                this.$message.error("请选择风场!");
+                return;
+            }
+        },
+        checkproject() {
+            if (this.formInline.project == "") {
+                this.$message.error("请选择项目!");
+                return;
+            }
+            if (new Date(this.timedate) == null) {
+                this.$message.error("请选择时间");
+                return;
+            }
+        },
+        queryApDataMx() {
+            this.dialogTableVisible = true;
+            this.$nextTick(function () {
+                this.drawPie('leiDaTu')
+            })
+            this.$nextTick(function () {
+                this.drawPie2('leiDaTu2')
+            })
+        },
+        handleSelectionChange(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection = val;
+            if (this.multipleSelection.length == 2) {
+                this.fdcName1 = this.multipleSelection[0].wpName;
+                this.fdcName2 = this.multipleSelection[1].wpName;
+                this.sortInOrder.push(this.multipleSelection[0].fnlyl, this.multipleSelection[0].xqjsl,
+                    this.multipleSelection[0].ztzhjsl, this.multipleSelection[0].fwjsl, this.multipleSelection[0].slssl,
+                    this.multipleSelection[0].xnssl, this.multipleSelection[0].qfl, this.multipleSelection[0].jxssl,
+                    this.multipleSelection[0].gzssl);
+                this.sortInOrderTop.push(this.multipleSelection[1].fnlyl, this.multipleSelection[1].xqjsl,
+                    this.multipleSelection[1].ztzhjsl, this.multipleSelection[1].fwjsl, this.multipleSelection[1].slssl,
+                    this.multipleSelection[1].xnssl, this.multipleSelection[1].qfl, this.multipleSelection[1].jxssl,
+                    this.multipleSelection[1].gzssl);
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.sortInOrde2.push({
+                        product: this.multipleSelection[i].wpName, '限电损失电量单位:万KWh': this.multipleSelection[i].xdss,
+                        '故障损失电量单位:万KWh': this.multipleSelection[i].gzss, '检修损失电量单位:万KWh': this.multipleSelection[i].jxssl,
+                        '性能损失电量单位:万KWh': this.multipleSelection[i].xnssl, '受累损失电量单位:万KWh': this.multipleSelection[i].slss
+                    });
+                }
+                this.getTableData.push({ index: '发电量', data1: this.multipleSelection[0].fdl, data2: this.multipleSelection[1].fdl });
+                this.getTableData.push({ index: '故障损失电量', data1: this.multipleSelection[0].gzss, data2: this.multipleSelection[1].gzss });
+                this.getTableData.push({ index: '检修损失电量', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '性能未达标损失电量', data1: this.multipleSelection[0].xnsslfraction, data2: this.multipleSelection[1].xnsslfraction });
+                this.getTableData.push({ index: '受累损失电量', data1: this.multipleSelection[0].slss, data2: this.multipleSelection[1].slss });
+                this.getTableData.push({ index: '风能利用率', data1: this.multipleSelection[0].fnlyl, data2: this.multipleSelection[1].fnlyl });
+                this.getTableData.push({ index: '故障损失率', data1: this.multipleSelection[0].gzssl, data2: this.multipleSelection[1].gzssl });
+                this.getTableData.push({ index: '检修损失率', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '弃风率', data1: this.multipleSelection[0].qfl, data2: this.multipleSelection[1].qfl });
+                this.getTableData.push({ index: '性能损失率', data1: this.multipleSelection[0].xnssl, data2: this.multipleSelection[1].xnssl });
+                this.getTableData.push({ index: '受累损失率', data1: this.multipleSelection[0].slssl, data2: this.multipleSelection[1].slssl });
+                this.getTableData.push({ index: '复位及时率', data1: this.multipleSelection[0].fwjsl, data2: this.multipleSelection[1].fwjsl });
+                this.getTableData.push({ index: '消缺及时率', data1: this.multipleSelection[0].xqjsl, data2: this.multipleSelection[1].xqjsl });
+                this.getTableData.push({ index: '状态转换率', data1: this.multipleSelection[0].ztzhjsl, data2: this.multipleSelection[1].ztzhjsl });
+            }
+        },
+        handleCurrentChange(val) {
+            // console.log(`当前页: ${val}`);
+        },
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+            this.pagesize = val;
+        },
+        changeTableSort(column) {
+            this.orderByColumn = column.prop;
+            if (column.order == "descending") {
+                this.isAsc = 'desc';
+            } else if (column.order == "ascending") {
+                this.isAsc = "asc";
+            }
+            this.FiveLossInformation();
+        },
+        FiveLossInformation() {  
+            var newData = new Date();
+            this.updateTime = this.BASE.getBzDate(newData.getTime(), 0);
+            this.updateTime1 = this.BASE.getBzDate(newData.getTime(), -1);          
+            if (this.timedate == '') {
+                this.timedate[0] = this.updateTime1;
+                this.timedate[1] = this.updateTime;
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            } else {
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            }
+            var fiveLossData = new URLSearchParams();
+            fiveLossData.append('pageNum', this.currentPage2);
+            fiveLossData.append('pageSize', this.pagesize);
+            fiveLossData.append('orderByColumn', this.orderByColumn);
+            fiveLossData.append('isAsc', this.isAsc);
+            fiveLossData.append('wpId', this.value);
+            fiveLossData.append('beginDate', this.beginDate);
+            fiveLossData.append('endDate', this.endDate);
+            this.API.post('/contrast/benchmarkLossList', fiveLossData).then((res) => {
+                this.gridData = res.data;
+                this.$refs.FiveLossRatesPieChart.getPackageData(this.gridData, this.value2);
+                this.$refs.FiveLossRatesHistogramChart.getPackageData2(this.gridData);
+            })
+        },
+        drawPie() {
+            this.ECLZX.getFiveLossRadarMap("leiDaTu", [
+                {
+                    value: this.sortInOrder,
+                    name: this.fdcName1
+                },
+                {
+                    value: this.sortInOrderTop,
+                    name: this.fdcName2
+                }
+            ]);
+        },
+        drawPie2() {
+            this.ECLZX.getFiveLossRadarHistogram("leiDaTu2",
+            ['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'], this.sortInOrde2);
+        },
+        toExcel() { }
+    },
+}

+ 230 - 0
src/assets/js/lossBenchmarking/lossRateFailure.js

@@ -0,0 +1,230 @@
+import FiveLossRatesPieChart from '@views/lossBenchmarking/fiveLossRatesPieChart';
+import FiveLossRatesHistogramChart from '@views/lossBenchmarking/fiveLossRatesHistogramChart.vue';
+export default {
+    data() {
+        return {
+            formInline: {
+                windfarm: "",
+                project: "",
+                line: "",
+            },
+            timedate: [
+                // {beginDate:'2021-01-01'},
+                // {endDate:'2021-01-04'}
+            ],
+            isAsc: 'asc',
+            beginDate: '2021-01-01',
+            endDate: '2021-01-04',
+            gridData: "",
+            multipleSelection: [],
+            sortInOrder: [],
+            sortInOrderTop: [],
+            sortInOrde2: [],
+            getTableData: [],
+            sortInOrderTop2: [],
+            fdcName1: '',
+            fdcName2: '',
+            currentPage2: 1,
+            pagesize: 10,
+            fdcLineData: '',
+            options: [],
+            value: '',
+            value2: 'gz',
+            wpId: [],
+            wpName: [],
+            orderByColumn: '',
+            dialogTableVisible: false,
+            lineDataOption: [],
+            tableData: [],
+            updateTime: '',
+            updateTime1: '',
+
+
+        }
+    },
+    components: {
+        FiveLossRatesPieChart: FiveLossRatesPieChart,
+        FiveLossRatesHistogramChart: FiveLossRatesHistogramChart
+    },
+    created() {
+        this.API.get('/powercompare/windfarmAjax').then((res) => {
+            this.options = res.data;
+        })
+        this.FiveLossInformation();
+    },
+    methods: {
+        headStyle() {
+            return "text-align:center"
+        },
+        onSubmit() {
+            console.log("submit!");
+        },
+        handleClick() { },
+        deleteRow(index, rows) {
+            rows.splice(index, 1);
+        },
+        queryApData() {
+            this.FiveLossInformation();
+        },
+        handleEdit(a, b) {
+            this.wpId = [];
+            this.lineDataOption = [];
+            if (this.multipleSelection.length == 2) {
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.wpId.push(this.multipleSelection[i].wpId)
+                    this.wpName.push(this.multipleSelection[i].wpName)
+                    this.lineDataOption.push({ id: this.multipleSelection[i].wpId, name: this.multipleSelection[i].wpName })
+                }
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: this.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: this.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            } else {
+                console.log(b)
+                this.lineDataOption.push({ id: b.wpId, name: b.wpName })
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: b.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: b.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            }
+        },
+        checkwindfarm() {
+            if (this.formInline.windfarm == "") {
+                this.$message.error("请选择风场!");
+                return;
+            }
+        },
+        checkproject() {
+            if (this.formInline.project == "") {
+                this.$message.error("请选择项目!");
+                return;
+            }
+            if (new Date(this.timedate) == null) {
+                this.$message.error("请选择时间");
+                return;
+            }
+        },
+        queryApDataMx() {
+            this.dialogTableVisible = true;
+            this.$nextTick(function () {
+                this.drawPie('leiDaTu')
+            })
+            this.$nextTick(function () {
+                this.drawPie2('leiDaTu2')
+            })
+        },
+        handleSelectionChange(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection = val;
+            if (this.multipleSelection.length == 2) {
+                this.fdcName1 = this.multipleSelection[0].wpName;
+                this.fdcName2 = this.multipleSelection[1].wpName;
+                this.sortInOrder.push(this.multipleSelection[0].fnlyl, this.multipleSelection[0].xqjsl,
+                    this.multipleSelection[0].ztzhjsl, this.multipleSelection[0].fwjsl, this.multipleSelection[0].slssl,
+                    this.multipleSelection[0].xnssl, this.multipleSelection[0].qfl, this.multipleSelection[0].jxssl,
+                    this.multipleSelection[0].gzssl);
+                this.sortInOrderTop.push(this.multipleSelection[1].fnlyl, this.multipleSelection[1].xqjsl,
+                    this.multipleSelection[1].ztzhjsl, this.multipleSelection[1].fwjsl, this.multipleSelection[1].slssl,
+                    this.multipleSelection[1].xnssl, this.multipleSelection[1].qfl, this.multipleSelection[1].jxssl,
+                    this.multipleSelection[1].gzssl);
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.sortInOrde2.push({
+                        product: this.multipleSelection[i].wpName, '限电损失电量单位:万KWh': this.multipleSelection[i].xdss,
+                        '故障损失电量单位:万KWh': this.multipleSelection[i].gzss, '检修损失电量单位:万KWh': this.multipleSelection[i].jxssl,
+                        '性能损失电量单位:万KWh': this.multipleSelection[i].xnssl, '受累损失电量单位:万KWh': this.multipleSelection[i].slss
+                    });
+                }
+                this.getTableData.push({ index: '发电量', data1: this.multipleSelection[0].fdl, data2: this.multipleSelection[1].fdl });
+                this.getTableData.push({ index: '故障损失电量', data1: this.multipleSelection[0].gzss, data2: this.multipleSelection[1].gzss });
+                this.getTableData.push({ index: '检修损失电量', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '性能未达标损失电量', data1: this.multipleSelection[0].xnsslfraction, data2: this.multipleSelection[1].xnsslfraction });
+                this.getTableData.push({ index: '受累损失电量', data1: this.multipleSelection[0].slss, data2: this.multipleSelection[1].slss });
+                this.getTableData.push({ index: '风能利用率', data1: this.multipleSelection[0].fnlyl, data2: this.multipleSelection[1].fnlyl });
+                this.getTableData.push({ index: '故障损失率', data1: this.multipleSelection[0].gzssl, data2: this.multipleSelection[1].gzssl });
+                this.getTableData.push({ index: '检修损失率', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '弃风率', data1: this.multipleSelection[0].qfl, data2: this.multipleSelection[1].qfl });
+                this.getTableData.push({ index: '性能损失率', data1: this.multipleSelection[0].xnssl, data2: this.multipleSelection[1].xnssl });
+                this.getTableData.push({ index: '受累损失率', data1: this.multipleSelection[0].slssl, data2: this.multipleSelection[1].slssl });
+                this.getTableData.push({ index: '复位及时率', data1: this.multipleSelection[0].fwjsl, data2: this.multipleSelection[1].fwjsl });
+                this.getTableData.push({ index: '消缺及时率', data1: this.multipleSelection[0].xqjsl, data2: this.multipleSelection[1].xqjsl });
+                this.getTableData.push({ index: '状态转换率', data1: this.multipleSelection[0].ztzhjsl, data2: this.multipleSelection[1].ztzhjsl });
+            }
+        },
+        handleCurrentChange(val) {
+            // console.log(`当前页: ${val}`);
+        },
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+            this.pagesize = val;
+        },
+        changeTableSort(column) {
+            this.orderByColumn = column.prop;
+            if (column.order == "descending") {
+                this.isAsc = 'desc';
+            } else if (column.order == "ascending") {
+                this.isAsc = "asc";
+            }
+            this.FiveLossInformation();
+        },
+        FiveLossInformation() {
+            var newData = new Date();
+            this.updateTime = this.BASE.getBzDate(newData.getTime(), 0);
+            this.updateTime1 = this.BASE.getBzDate(newData.getTime(), -1);
+            if (this.timedate == '') {
+                this.timedate[0] = this.updateTime1;
+                this.timedate[1] = this.updateTime;
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            } else {
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            }
+            var fiveLossData = new URLSearchParams();
+            fiveLossData.append('pageNum', this.currentPage2);
+            fiveLossData.append('pageSize', this.pagesize);
+            fiveLossData.append('orderByColumn', this.orderByColumn);
+            fiveLossData.append('isAsc', this.isAsc);
+            fiveLossData.append('wpId', this.value);
+            fiveLossData.append('beginDate', this.beginDate);
+            fiveLossData.append('endDate', this.endDate);
+            this.API.post('/contrast/benchmarkLossList', fiveLossData).then((res) => {
+                this.gridData = res.data;
+                this.$refs.FiveLossRatesPieChart.getPackageData(this.gridData, this.value2);
+                this.$refs.FiveLossRatesHistogramChart.getPackageData2(this.gridData);
+            })
+        },
+        drawPie() {
+            this.ECLZX.getFiveLossRadarMap("leiDaTu", [
+                {
+                    value: this.sortInOrder,
+                    name: this.fdcName1
+                },
+                {
+                    value: this.sortInOrderTop,
+                    name: this.fdcName2
+                }
+            ]);
+        },
+        drawPie2() {
+            this.ECLZX.getFiveLossRadarHistogram("leiDaTu2", ['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'], this.sortInOrde2);
+        },
+        toExcel() { }
+    },
+}

+ 273 - 0
src/assets/js/lossBenchmarking/lossRateMaintenance.js

@@ -0,0 +1,273 @@
+import FiveLossRatesPieChart from '@views/lossBenchmarking/fiveLossRatesPieChart';
+import FiveLossRatesHistogramChart from '@views/lossBenchmarking/fiveLossRatesHistogramChart.vue';
+export default {
+    data() {
+        return {
+            formInline: {
+                windfarm: "",
+                project: "",
+                line: "",
+            },
+            timedate: [
+                // {beginDate:'2021-01-01'},
+                // {endDate:'2021-01-04'}
+            ],
+            isAsc: 'asc',
+            beginDate: '2021-01-01',
+            endDate: '2021-01-04',
+            gridData: "",
+            multipleSelection: [],
+            sortInOrder: [],
+            sortInOrderTop: [],
+            sortInOrde2: [],
+            getTableData: [],
+            sortInOrderTop2: [],
+            fdcName1: '',
+            fdcName2: '',
+            currentPage2: 1,
+            pagesize: 10,
+            fdcLineData: '',
+            options: [{
+                value: 'MHS_FDC',
+                label: '麻黄山风电场'
+            }, {
+                value: 'NSS_FDC',
+                label: '牛首山风电场'
+            },
+            {
+                value: 'SBQ_FDC',
+                label: '石板泉风电场'
+            },
+            {
+                value: 'QS_FDC',
+                label: '青山风电场'
+            },
+            {
+                value: 'XS_FDC',
+                label: '香山风电场'
+            }],
+            value: '',
+            value2: 'jx',
+            wpId: [],
+            wpName: [],
+            orderByColumn: '',
+            dialogTableVisible: false,
+            lineDataOption: [],
+            tableData: [{
+                date: '2016-05-02',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1518 弄'
+            }, {
+                date: '2016-05-04',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1517 弄'
+            }, {
+                date: '2016-05-01',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1519 弄'
+            }, {
+                date: '2016-05-03',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1516 弄'
+            },
+            {
+                date: '2016-05-03',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1516 弄'
+            },
+            {
+                date: '2016-05-03',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1516 弄'
+            }],
+            updateTime: '',
+            updateTime1: ''
+
+        }
+    },
+    components: {
+        FiveLossRatesPieChart: FiveLossRatesPieChart,
+        FiveLossRatesHistogramChart: FiveLossRatesHistogramChart
+    },
+    created() {
+        this.API.get('/powercompare/windfarmAjax').then((res) => {
+            this.options = res.data;
+        })
+        this.FiveLossInformation();
+    },
+    methods: {
+        headStyle() {
+            return "text-align:center"
+        },
+        onSubmit() {
+            console.log("submit!");
+        },
+        handleClick() { },
+        deleteRow(index, rows) {
+            rows.splice(index, 1);
+        },
+        queryApData() {
+            this.FiveLossInformation();
+        },
+        handleEdit(a, b) {
+            this.wpId = [];
+            this.lineDataOption = [];
+            if (this.multipleSelection.length == 2) {
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.wpId.push(this.multipleSelection[i].wpId)
+                    this.wpName.push(this.multipleSelection[i].wpName)
+                    this.lineDataOption.push({ id: this.multipleSelection[i].wpId, name: this.multipleSelection[i].wpName })
+                }
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: this.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: this.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            } else {
+                console.log(b)
+                this.lineDataOption.push({ id: b.wpId, name: b.wpName })
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: b.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: b.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            }
+        },
+        checkwindfarm() {
+            if (this.formInline.windfarm == "") {
+                this.$message.error("请选择风场!");
+                return;
+            }
+        },
+        checkproject() {
+            if (this.formInline.project == "") {
+                this.$message.error("请选择项目!");
+                return;
+            }
+            if (new Date(this.timedate) == null) {
+                this.$message.error("请选择时间");
+                return;
+            }
+        },
+        queryApDataMx() {
+            this.dialogTableVisible = true;
+            this.$nextTick(function () {
+                this.drawPie('leiDaTu')
+            })
+            this.$nextTick(function () {
+                this.drawPie2('leiDaTu2')
+            })
+        },
+        handleSelectionChange(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection = val;
+            if (this.multipleSelection.length == 2) {
+                this.fdcName1 = this.multipleSelection[0].wpName;
+                this.fdcName2 = this.multipleSelection[1].wpName;
+                this.sortInOrder.push(this.multipleSelection[0].fnlyl, this.multipleSelection[0].xqjsl,
+                    this.multipleSelection[0].ztzhjsl, this.multipleSelection[0].fwjsl, this.multipleSelection[0].slssl,
+                    this.multipleSelection[0].xnssl, this.multipleSelection[0].qfl, this.multipleSelection[0].jxssl,
+                    this.multipleSelection[0].gzssl);
+                this.sortInOrderTop.push(this.multipleSelection[1].fnlyl, this.multipleSelection[1].xqjsl,
+                    this.multipleSelection[1].ztzhjsl, this.multipleSelection[1].fwjsl, this.multipleSelection[1].slssl,
+                    this.multipleSelection[1].xnssl, this.multipleSelection[1].qfl, this.multipleSelection[1].jxssl,
+                    this.multipleSelection[1].gzssl);
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.sortInOrde2.push({
+                        product: this.multipleSelection[i].wpName, '限电损失电量单位:万KWh': this.multipleSelection[i].xdss,
+                        '故障损失电量单位:万KWh': this.multipleSelection[i].gzss, '检修损失电量单位:万KWh': this.multipleSelection[i].jxssl,
+                        '性能损失电量单位:万KWh': this.multipleSelection[i].xnssl, '受累损失电量单位:万KWh': this.multipleSelection[i].slss
+                    });
+                }
+                this.getTableData.push({ index: '发电量', data1: this.multipleSelection[0].fdl, data2: this.multipleSelection[1].fdl });
+                this.getTableData.push({ index: '故障损失电量', data1: this.multipleSelection[0].gzss, data2: this.multipleSelection[1].gzss });
+                this.getTableData.push({ index: '检修损失电量', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '性能未达标损失电量', data1: this.multipleSelection[0].xnsslfraction, data2: this.multipleSelection[1].xnsslfraction });
+                this.getTableData.push({ index: '受累损失电量', data1: this.multipleSelection[0].slss, data2: this.multipleSelection[1].slss });
+                this.getTableData.push({ index: '风能利用率', data1: this.multipleSelection[0].fnlyl, data2: this.multipleSelection[1].fnlyl });
+                this.getTableData.push({ index: '故障损失率', data1: this.multipleSelection[0].gzssl, data2: this.multipleSelection[1].gzssl });
+                this.getTableData.push({ index: '检修损失率', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '弃风率', data1: this.multipleSelection[0].qfl, data2: this.multipleSelection[1].qfl });
+                this.getTableData.push({ index: '性能损失率', data1: this.multipleSelection[0].xnssl, data2: this.multipleSelection[1].xnssl });
+                this.getTableData.push({ index: '受累损失率', data1: this.multipleSelection[0].slssl, data2: this.multipleSelection[1].slssl });
+                this.getTableData.push({ index: '复位及时率', data1: this.multipleSelection[0].fwjsl, data2: this.multipleSelection[1].fwjsl });
+                this.getTableData.push({ index: '消缺及时率', data1: this.multipleSelection[0].xqjsl, data2: this.multipleSelection[1].xqjsl });
+                this.getTableData.push({ index: '状态转换率', data1: this.multipleSelection[0].ztzhjsl, data2: this.multipleSelection[1].ztzhjsl });
+            }
+        },
+        handleCurrentChange(val) {
+            // console.log(`当前页: ${val}`);
+        },
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+            this.pagesize = val;
+        },
+        changeTableSort(column) {
+            this.orderByColumn = column.prop;
+            if (column.order == "descending") {
+                this.isAsc = 'desc';
+            } else if (column.order == "ascending") {
+                this.isAsc = "asc";
+            }
+            this.FiveLossInformation();
+        },
+        FiveLossInformation() {
+            var newData = new Date();
+            this.updateTime = this.BASE.getBzDate(newData.getTime(), 0);
+            this.updateTime1 = this.BASE.getBzDate(newData.getTime(), -1);
+            if (this.timedate == '') {
+                this.timedate[0] = this.updateTime1;
+                this.timedate[1] = this.updateTime;
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            } else {
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            }
+            var fiveLossData = new URLSearchParams();
+            fiveLossData.append('pageNum', this.currentPage2);
+            fiveLossData.append('pageSize', this.pagesize);
+            fiveLossData.append('orderByColumn', this.orderByColumn);
+            fiveLossData.append('isAsc', this.isAsc);
+            fiveLossData.append('wpId', this.value);
+            fiveLossData.append('beginDate', this.beginDate);
+            fiveLossData.append('endDate', this.endDate);
+            this.API.post('/contrast/benchmarkLossList', fiveLossData).then((res) => {
+                this.gridData = res.data;
+                this.$refs.FiveLossRatesPieChart.getPackageData(this.gridData, this.value2);
+                this.$refs.FiveLossRatesHistogramChart.getPackageData2(this.gridData);
+            })
+        },
+        drawPie() {
+            this.ECLZX.getFiveLossRadarMap("leiDaTu", [
+                {
+                    value: this.sortInOrder,
+                    name: this.fdcName1
+                },
+                {
+                    value: this.sortInOrderTop,
+                    name: this.fdcName2
+                }
+            ]);
+        },
+        drawPie2() {
+            this.ECLZX.getFiveLossRadarHistogram("leiDaTu2", ['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'], this.sortInOrde2);
+        },
+        toExcel() { }
+    },
+}

+ 273 - 0
src/assets/js/lossBenchmarking/lossRatePerformance.js

@@ -0,0 +1,273 @@
+import FiveLossRatesPieChart from '@views/lossBenchmarking/fiveLossRatesPieChart';
+import FiveLossRatesHistogramChart from '@views/lossBenchmarking/fiveLossRatesHistogramChart.vue';
+export default {
+    data() {
+        return {
+            formInline: {
+                windfarm: "",
+                project: "",
+                line: "",
+            },
+            timedate: [
+                // {beginDate:'2021-01-01'},
+                // {endDate:'2021-01-04'}
+            ],
+            isAsc: 'asc',
+            beginDate: '2021-01-01',
+            endDate: '2021-01-04',
+            gridData: "",
+            multipleSelection: [],
+            sortInOrder: [],
+            sortInOrderTop: [],
+            sortInOrde2: [],
+            getTableData: [],
+            sortInOrderTop2: [],
+            fdcName1: '',
+            fdcName2: '',
+            currentPage2: 1,
+            pagesize: 10,
+            fdcLineData: '',
+            options: [{
+                value: 'MHS_FDC',
+                label: '麻黄山风电场'
+            }, {
+                value: 'NSS_FDC',
+                label: '牛首山风电场'
+            },
+            {
+                value: 'SBQ_FDC',
+                label: '石板泉风电场'
+            },
+            {
+                value: 'QS_FDC',
+                label: '青山风电场'
+            },
+            {
+                value: 'XS_FDC',
+                label: '香山风电场'
+            }],
+            value: '',
+            value2: 'xn',
+            wpId: [],
+            wpName: [],
+            orderByColumn: '',
+            dialogTableVisible: false,
+            lineDataOption: [],
+            tableData: [{
+                date: '2016-05-02',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1518 弄'
+            }, {
+                date: '2016-05-04',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1517 弄'
+            }, {
+                date: '2016-05-01',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1519 弄'
+            }, {
+                date: '2016-05-03',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1516 弄'
+            },
+            {
+                date: '2016-05-03',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1516 弄'
+            },
+            {
+                date: '2016-05-03',
+                name: '王小虎',
+                address: '上海市普陀区金沙江路 1516 弄'
+            }],
+            updateTime:'',
+            updateTime1:'',
+
+        }
+    },
+    components: {
+        FiveLossRatesPieChart: FiveLossRatesPieChart,
+        FiveLossRatesHistogramChart: FiveLossRatesHistogramChart
+    },
+    created() {
+        this.API.get('/powercompare/windfarmAjax').then((res) => {
+            this.options = res.data;
+        })
+        this.FiveLossInformation();
+    },
+    methods: {
+        headStyle() {
+            return "text-align:center"
+        },
+        onSubmit() {
+            console.log("submit!");
+        },
+        handleClick() { },
+        deleteRow(index, rows) {
+            rows.splice(index, 1);
+        },
+        queryApData() {
+            this.FiveLossInformation();
+        },
+        handleEdit(a, b) {
+            this.wpId = [];
+            this.lineDataOption = [];
+            if (this.multipleSelection.length == 2) {
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.wpId.push(this.multipleSelection[i].wpId)
+                    this.wpName.push(this.multipleSelection[i].wpName)
+                    this.lineDataOption.push({ id: this.multipleSelection[i].wpId, name: this.multipleSelection[i].wpName })
+                }
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: this.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: this.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            } else {
+                console.log(b)
+                this.lineDataOption.push({ id: b.wpId, name: b.wpName })
+                console.log(this.lineDataOption)
+                this.$router.push({
+                    path: '/fiveLossLineTable',
+                    query: {
+                        wpId: b.wpId,
+                        beginDate: this.beginDate,
+                        endDate: this.endDate,
+                        wpName: b.wpName,
+                        select: this.lineDataOption
+                    }
+                })
+            }
+        },
+        checkwindfarm() {
+            if (this.formInline.windfarm == "") {
+                this.$message.error("请选择风场!");
+                return;
+            }
+        },
+        checkproject() {
+            if (this.formInline.project == "") {
+                this.$message.error("请选择项目!");
+                return;
+            }
+            if (new Date(this.timedate) == null) {
+                this.$message.error("请选择时间");
+                return;
+            }
+        },
+        queryApDataMx() {
+            this.dialogTableVisible = true;
+            this.$nextTick(function () {
+                this.drawPie('leiDaTu')
+            })
+            this.$nextTick(function () {
+                this.drawPie2('leiDaTu2')
+            })
+        },
+        handleSelectionChange(val) {
+            this.sortInOrder = [];
+            this.sortInOrderTop = [];
+            this.getTableData = [];
+            this.sortInOrde2 = [];
+            this.multipleSelection = val;
+            if (this.multipleSelection.length == 2) {
+                this.fdcName1 = this.multipleSelection[0].wpName;
+                this.fdcName2 = this.multipleSelection[1].wpName;
+                this.sortInOrder.push(this.multipleSelection[0].fnlyl, this.multipleSelection[0].xqjsl,
+                    this.multipleSelection[0].ztzhjsl, this.multipleSelection[0].fwjsl, this.multipleSelection[0].slssl,
+                    this.multipleSelection[0].xnssl, this.multipleSelection[0].qfl, this.multipleSelection[0].jxssl,
+                    this.multipleSelection[0].gzssl);
+                this.sortInOrderTop.push(this.multipleSelection[1].fnlyl, this.multipleSelection[1].xqjsl,
+                    this.multipleSelection[1].ztzhjsl, this.multipleSelection[1].fwjsl, this.multipleSelection[1].slssl,
+                    this.multipleSelection[1].xnssl, this.multipleSelection[1].qfl, this.multipleSelection[1].jxssl,
+                    this.multipleSelection[1].gzssl);
+                for (let i = 0; i < this.multipleSelection.length; i++) {
+                    this.sortInOrde2.push({
+                        product: this.multipleSelection[i].wpName, '限电损失电量单位:万KWh': this.multipleSelection[i].xdss,
+                        '故障损失电量单位:万KWh': this.multipleSelection[i].gzss, '检修损失电量单位:万KWh': this.multipleSelection[i].jxssl,
+                        '性能损失电量单位:万KWh': this.multipleSelection[i].xnssl, '受累损失电量单位:万KWh': this.multipleSelection[i].slss
+                    });
+                }
+                this.getTableData.push({ index: '发电量', data1: this.multipleSelection[0].fdl, data2: this.multipleSelection[1].fdl });
+                this.getTableData.push({ index: '故障损失电量', data1: this.multipleSelection[0].gzss, data2: this.multipleSelection[1].gzss });
+                this.getTableData.push({ index: '检修损失电量', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '性能未达标损失电量', data1: this.multipleSelection[0].xnsslfraction, data2: this.multipleSelection[1].xnsslfraction });
+                this.getTableData.push({ index: '受累损失电量', data1: this.multipleSelection[0].slss, data2: this.multipleSelection[1].slss });
+                this.getTableData.push({ index: '风能利用率', data1: this.multipleSelection[0].fnlyl, data2: this.multipleSelection[1].fnlyl });
+                this.getTableData.push({ index: '故障损失率', data1: this.multipleSelection[0].gzssl, data2: this.multipleSelection[1].gzssl });
+                this.getTableData.push({ index: '检修损失率', data1: this.multipleSelection[0].jxssl, data2: this.multipleSelection[1].jxssl });
+                this.getTableData.push({ index: '弃风率', data1: this.multipleSelection[0].qfl, data2: this.multipleSelection[1].qfl });
+                this.getTableData.push({ index: '性能损失率', data1: this.multipleSelection[0].xnssl, data2: this.multipleSelection[1].xnssl });
+                this.getTableData.push({ index: '受累损失率', data1: this.multipleSelection[0].slssl, data2: this.multipleSelection[1].slssl });
+                this.getTableData.push({ index: '复位及时率', data1: this.multipleSelection[0].fwjsl, data2: this.multipleSelection[1].fwjsl });
+                this.getTableData.push({ index: '消缺及时率', data1: this.multipleSelection[0].xqjsl, data2: this.multipleSelection[1].xqjsl });
+                this.getTableData.push({ index: '状态转换率', data1: this.multipleSelection[0].ztzhjsl, data2: this.multipleSelection[1].ztzhjsl });
+            }
+        },
+        handleCurrentChange(val) {
+            // console.log(`当前页: ${val}`);
+        },
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+            this.pagesize = val;
+        },
+        changeTableSort(column) {
+            this.orderByColumn = column.prop;
+            if (column.order == "descending") {
+                this.isAsc = 'desc';
+            } else if (column.order == "ascending") {
+                this.isAsc = "asc";
+            }
+            this.FiveLossInformation();
+        },
+        FiveLossInformation() {
+            var newData = new Date();
+            this.updateTime = this.BASE.getBzDate(newData.getTime(), 0);
+            this.updateTime1 = this.BASE.getBzDate(newData.getTime(), -1);
+            if (this.timedate == '') {
+                this.timedate[0] = this.updateTime1;
+                this.timedate[1] = this.updateTime;
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            } else {
+                this.beginDate = this.timedate[0];
+                this.endDate = this.timedate[1];
+            }
+            var fiveLossData = new URLSearchParams();
+            fiveLossData.append('pageNum', this.currentPage2);
+            fiveLossData.append('pageSize', this.pagesize);
+            fiveLossData.append('orderByColumn', this.orderByColumn);
+            fiveLossData.append('isAsc', this.isAsc);
+            fiveLossData.append('wpId', this.value);
+            fiveLossData.append('beginDate', this.beginDate);
+            fiveLossData.append('endDate', this.endDate);
+            this.API.post('/contrast/benchmarkLossList', fiveLossData).then((res) => {
+                this.gridData = res.data;
+                this.$refs.FiveLossRatesPieChart.getPackageData(this.gridData, this.value2);
+                this.$refs.FiveLossRatesHistogramChart.getPackageData2(this.gridData);
+            })
+        },
+        drawPie() {
+            this.ECLZX.getFiveLossRadarMap("leiDaTu", [
+                {
+                    value: this.sortInOrder,
+                    name: this.fdcName1
+                },
+                {
+                    value: this.sortInOrderTop,
+                    name: this.fdcName2
+                }
+            ]);
+        },
+        drawPie2() {
+            this.ECLZX.getFiveLossRadarHistogram("leiDaTu2", ['product', '限电损失电量单位:万KWh', '故障损失电量单位:万KWh', '检修损失电量单位:万KWh', '性能损失电量单位:万KWh', '受累损失电量单位:万KWh'], this.sortInOrde2);
+        },
+        toExcel() { }
+    },
+}

+ 2 - 9
src/assets/js/performanceAnalysis/plannedGeneration.js

@@ -71,15 +71,8 @@ export default {
         this.API.get('/powercompare/windfarmAllAjax').then((res) => {
             this.options = res.data;
         })
-        const nowDate = new Date();
-		const date = {
-			year: nowDate.getFullYear(),
-			month: nowDate.getMonth() + 1,
-			date: nowDate.getDate(),
-		}
-		const newmonth = date.month>10?date.month:'0'+date.month
-		const day = date.date>10?date.date - 1:'0'+date.date
-		this.updateTime = date.year + '-' + newmonth + '-' + day
+        var newData = new Date();
+        this.updateTime = this.BASE.getBzDate(newData.getTime(), -1);
         this.callAndSpeedData();
     },
     methods:{

+ 36 - 0
src/jsonData/menu.json

@@ -192,6 +192,37 @@
           ]
         },
         {
+          "name": "损失对标",
+          "url": "/",
+          "children": [
+            {
+              "name": "五项损失率",
+              "url": "/fiveLossRates",
+              "children": []
+            },
+            {
+              "name": "故障损失率",
+              "url": "/lossRateFailure",
+              "children": []
+            },
+            {
+              "name": "受累损失率",
+              "url": "/lossRateAffected",
+              "children": []
+            },
+            {
+              "name": "检修损失率",
+              "url": "/lossRateMaintenance",
+              "children": []
+            },
+            {
+              "name": "弃风率",
+              "url": "/lossRateAbandoned",
+              "children": []
+            }
+          ]
+        },
+        {
           "name": "场际对标",
           "url": "/a",
           "children": [
@@ -233,6 +264,11 @@
               "children": []
             }
           ]
+        },
+        {
+          "name": "值际对标",
+          "url": "/interValue",
+          "children": []
         }
       ]
     },

+ 32 - 0
src/router/lzx.js

@@ -47,6 +47,38 @@ export default [
     path:'/fiveLossRates',
     component: r => require.ensure([], () => r(require('@views/lossBenchmarking/fiveLossRates')), 'lossBenchmarking')
   },
+  { // 五项损失率详情页
+    path:'/fiveLossLineTable',
+    component: r => require.ensure([], () => r(require('@views/lossBenchmarking/fiveLossLineTable')), 'lossBenchmarking')
+  },
+  { // 故障损失率
+    path:'/lossRateFailure',
+    component: r => require.ensure([], () => r(require('@views/lossBenchmarking/lossRateFailure')), 'lossBenchmarking')
+  },
+  { // 受累损失率
+    path:'/lossRateAffected',
+    component: r => require.ensure([], () => r(require('@views/lossBenchmarking/lossRateAffected')), 'lossBenchmarking')
+  },
+  { // 检修损失率
+    path:'/lossRateMaintenance',
+    component: r => require.ensure([], () => r(require('@views/lossBenchmarking/lossRateMaintenance')), 'lossBenchmarking')
+  },
+  { // 性能损失率
+    path:'/lossRatePerformance',
+    component: r => require.ensure([], () => r(require('@views/lossBenchmarking/lossRatePerformance')), 'lossBenchmarking')
+  },
+  { // 弃风率
+    path:'/lossRateAbandoned',
+    component: r => require.ensure([], () => r(require('@views/lossBenchmarking/lossRateAbandoned')), 'lossBenchmarking')
+  },
+  { // 值际对标
+    path:'/interValue',
+    component: r => require.ensure([], () => r(require('@views/lossBenchmarking/interValue')), 'lossBenchmarking')
+  },
+  { // 值际对标详情页
+    path:'/InterValueLineTable',
+    component: r => require.ensure([], () => r(require('@views/lossBenchmarking/InterValueLineTable')), 'lossBenchmarking')
+  },
   { // 健康评价报告
     path:'/healthAssessment',
     component: r => require.ensure([], () => r(require('@views/healthManagement/healthAssessment')), 'healthManagement')

+ 307 - 93
src/tools/echartsToolLzx.js

@@ -634,8 +634,95 @@ export function getFiveLossSectorRight(id, chartsAName2, getChartDataValue2) {
   myChart.setOption(option, true);
 }
 
+//五项损失柱状图
+export function getFiveLossHistogram(id, dimensions, getChartData) {
+  if (dimensions === undefined) {
+    message.error("没有找到报表数据,请检查!");
+    return;
+  }
+  if (getChartData === undefined) {
+    message.error("没有找到报表数据,请检查!");
+    return;
+  }
+  var myChart = EC.init(document.getElementById(id));
+  let option = {
+    title: {
+      text: '损失电量分析',
+      left: 'center'
+    },
+    legend: {
+      orient: 'vertical',
+      left: 'right'
+    },
+    tooltip: {},
+    dataset: {
+      dimensions: dimensions,
+      source: getChartData
+    },
+    xAxis: { type: 'category' },
+    yAxis: {},
+    // Declare several bar series, each will be mapped
+    // to a column of dataset.source by default.
+    series: [
+      {
+        // barGap:'100%',/*多个并排柱子设置柱子之间的间距*/
+        type: 'bar',
+        barWidth: 30,
+        itemStyle: {
+          normal: {
+            color: '#D201D8'
+          }
+        }
+      },
+      {
+
+        type: 'bar',
+        barWidth: 30,
+        itemStyle: {
+          normal: {
+            color: '#FD0100'
+          }
+        }
+      },
+      {
+
+        type: 'bar',
+        barWidth: 30,
+        itemStyle: {
+          normal: {
+            color: '#FF7B16'
+          }
+        }
+      },
+      {
+
+        type: 'bar',
+        barWidth: 30,
+        itemStyle: {
+          normal: {
+            color: '#8085E9'
+          }
+        }
+      },
+      {
+
+        type: 'bar',
+        barWidth: 30,
+        itemStyle: {
+          normal: {
+            color: '#A6A6A6'
+          }
+        }
+      },
+
+    ]
+  };
+  myChart.setOption(option, true);
+}
+
+
 //健康报告近一周曲线偏差率对比
-export function getHealthCurve(id, legend, xqxpcldata,qxpclData,qxpcljzzData) {
+export function getHealthCurve(id, legend, xqxpcldata, qxpclData, qxpcljzzData) {
   if (xqxpcldata === undefined) {
     message.error("没有找到报表数据,请检查!");
     return;
@@ -651,77 +738,77 @@ export function getHealthCurve(id, legend, xqxpcldata,qxpclData,qxpcljzzData) {
   var myChart = EC.init(document.getElementById(id));
   let option = {
     tooltip: {
-        trigger: 'axis',
-        axisPointer: {
-            type: 'cross',
-            crossStyle: {
-                color: '#999'
-            }
+      trigger: 'axis',
+      axisPointer: {
+        type: 'cross',
+        crossStyle: {
+          color: '#999'
         }
+      }
     },
     legend: {
-        orient: 'vertical',
-        left: 'center',
-        bottom:'bottom',
-        data: legend
+      orient: 'vertical',
+      left: 'center',
+      bottom: 'bottom',
+      data: legend
     },
     xAxis: {
-        type: 'category',
-        data: xqxpcldata,
-        splitLine: {
-            show: true,
-        }
+      type: 'category',
+      data: xqxpcldata,
+      splitLine: {
+        show: true,
+      }
     },
     yAxis: {
-        type: 'value',
-        axisLine:{       //y轴
-            show: true
-        },
-        splitLine: {     //网格线
-            show: true
-        },
-        max:10,
-        axisLabel: {
-            formatter: '{value} .00'
-        }
-        
+      type: 'value',
+      axisLine: {       //y轴
+        show: true
+      },
+      splitLine: {     //网格线
+        show: true
+      },
+      max: 15,
+      axisLabel: {
+        formatter: '{value} .00'
+      }
+
     },
     series: [{
-        name: '曲线偏差率',
-        data: qxpclData,
-        type: 'line',
-        symbol: 'triangle',
-        symbolSize: 20,
-        lineStyle: {
-            color: '#CC0400',
-            width: 4,
-        },
-        itemStyle: {
-            borderWidth: 3,
-            color: '#CC0400'
-        }
+      name: '曲线偏差率',
+      data: qxpclData,
+      type: 'line',
+      symbol: 'triangle',
+      symbolSize: 20,
+      lineStyle: {
+        color: '#CC0400',
+        width: 4,
+      },
+      itemStyle: {
+        borderWidth: 3,
+        color: '#CC0400'
+      }
     },
     {
-        name: '基准值',
-        data: qxpcljzzData,
-        type: 'line',
-        symbol: 'circle',
-        symbolSize: 20,
-        lineStyle: {
-            color: '#0072C5',
-            width: 4,
-        },
-        itemStyle: {
-            borderWidth: 3,
-            color: '#0072C5'
-        }
+      name: '基准值',
+      data: qxpcljzzData,
+      type: 'line',
+      symbol: 'circle',
+      symbolSize: 20,
+      lineStyle: {
+        color: '#0072C5',
+        width: 4,
+      },
+      itemStyle: {
+        borderWidth: 3,
+        color: '#0072C5'
+      }
     }]
-};
+  };
   myChart.setOption(option, true);
 }
 
 //健康报告健康走势图
-export function getHealthTrendChart(id,legend,xfdldata,max,fdlData) {
+export function getHealthTrendChart(id, legend, xfdldata, max, fdlData) {
   console.log(legend)
   if (xfdldata === undefined) {
     message.error("没有找到报表数据,请检查!");
@@ -734,58 +821,182 @@ export function getHealthTrendChart(id,legend,xfdldata,max,fdlData) {
   var myChart = EC.init(document.getElementById(id));
   let option = {
     tooltip: {
-        trigger: 'axis',
-        axisPointer: {
-            type: 'cross',
-            crossStyle: {
-                color: '#999'
-            }
+      trigger: 'axis',
+      axisPointer: {
+        type: 'cross',
+        crossStyle: {
+          color: '#999'
         }
+      }
     },
     legend: {
-        orient: 'vertical',
-        left: 'center',
-        bottom:'bottom',
-        data: legend
+      orient: 'vertical',
+      left: 'center',
+      bottom: 'bottom',
+      data: legend
     },
     xAxis: {
-        type: 'category',
-        data: xfdldata,
-        splitLine: {
-            show: true,
-        }
+      type: 'category',
+      data: xfdldata,
+      splitLine: {
+        show: true,
+      }
     },
     yAxis: {
-        type: 'value',
-        axisLine:{       //y轴
-            show: true
-        },
-        axisTick:{       //y轴刻度线
-            show: true
-        },
-        splitLine: {     //网格线
-            show: true
-        },
-        max:max,
-        axisLabel: {
-            formatter: '{value} .00'
-        }
+      type: 'value',
+      axisLine: {       //y轴
+        show: true
+      },
+      axisTick: {       //y轴刻度线
+        show: true
+      },
+      splitLine: {     //网格线
+        show: true
+      },
+      max: max,
+      axisLabel: {
+        formatter: '{value} .00'
+      }
     },
     series: [{
-        name: '发电量健康走势',
-        symbol: "none",
-        data: fdlData,
-        type: 'line',
-        lineStyle: {
-            color: '#99CDFF',
-            width: 2,
+      name: '发电量健康走势',
+      symbol: "none",
+      data: fdlData,
+      type: 'line',
+      lineStyle: {
+        color: '#99CDFF',
+        width: 2,
+      },
+    }]
+  };
+  myChart.setOption(option, true);
+}
+
+
+//五项损失对标分析雷达图
+export function getFiveLossRadarMap(id, data) {
+  if (data === undefined) {
+    message.error("没有找到报表数据,请检查!");
+    return;
+  }
+  var myChart = EC.init(document.getElementById(id));
+  let option = {
+    title: {
+        // text: '对标排名分析',
+        left: 'center'
+    },
+    tooltip: {},
+    // legend: {
+    //     data: ['预算分配(Allocated Budget)', '实际开销(Actual Spending)'],
+    //     left: 'right'
+    // },
+    radar: {
+        // shape: 'circle',
+        name: {
+            textStyle: {
+                color: '#fff',
+                backgroundColor: '#999',
+                borderRadius: 3,
+                padding: [3, 5]
+            }
         },
+        indicator: [
+            { name: '风能利用率', max: 150 },
+            { name: '消缺及时率', max: 150 },
+            { name: '状态转换率', max: 150 },
+            { name: '复位及时率', max: 150 },
+            { name: '受累损失率', max: 150 },
+            { name: '性能损失率', max: 150 },
+            { name: '弃风率', max: 150 },
+            { name: '检修损失率', max: 150 },
+            { name: '故障损失率', max: 150 },
+        ]
+    },
+    series: [{
+        name: '预算 vs 开销(Budget vs spending)',
+        type: 'radar',
+        // areaStyle: {normal: {}},
+        data: data
     }]
-};
+}
   myChart.setOption(option, true);
 }
 
+//五项损失对标分析柱状图
+export function getFiveLossRadarHistogram(id, dimensions,sortInOrde2) {
+  if (dimensions === undefined) {
+    message.error("没有找到报表数据,请检查!");
+    return;
+  }
+  var myChart = EC.init(document.getElementById(id));
+  let option = {
+    legend: {
+        orient: 'vertical',
+        left: 'right'
+    },
+    tooltip: {},
+    dataset: {
+        dimensions: dimensions,
+        source: sortInOrde2
+    },
+    xAxis: { type: 'category' },
+    yAxis: {},
+    // Declare several bar series, each will be mapped
+    // to a column of dataset.source by default.
+    series: [
+        {
+            // barGap:'100%',/*多个并排柱子设置柱子之间的间距*/
+            type: 'bar',
+            barWidth: 30,
+            itemStyle: {
+                normal: {
+                    color: '#D201D8'
+                }
+            }
+        },
+        {
+
+            type: 'bar',
+            barWidth: 30,
+            itemStyle: {
+                normal: {
+                    color: '#FD0100'
+                }
+            }
+        },
+        {
+
+            type: 'bar',
+            barWidth: 30,
+            itemStyle: {
+                normal: {
+                    color: '#FF7B16'
+                }
+            }
+        },
+        {
 
+            type: 'bar',
+            barWidth: 30,
+            itemStyle: {
+                normal: {
+                    color: '#8085E9'
+                }
+            }
+        },
+        {
+            type: 'bar',
+            barWidth: 30,
+            itemStyle: {
+                normal: {
+                    color: '#A6A6A6'
+                }
+            }
+        },
+    ]
+}
+  myChart.setOption(option, true);
+}
 
 
 export default {
@@ -798,7 +1009,10 @@ export default {
   getCurveDeviationRate,
   getFiveLossSectorLeft,
   getFiveLossSectorRight,
+  getFiveLossHistogram,
   getHealthCurve,
   getHealthTrendChart,
+  getFiveLossRadarMap,
+  getFiveLossRadarHistogram,
   color,
 }

+ 476 - 0
src/views/lossBenchmarking/InterValueLineTable.vue

@@ -0,0 +1,476 @@
+<template>
+  <div class="box">
+    <div class="searchBar">
+      <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-row :gutter="1">
+          <el-form-item label="风场一">
+            <el-select v-model="value" placeholder="请选择">
+              <el-option
+                v-for="item in options"
+                :key="item.name"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="风场二">
+            <el-select v-model="value2" placeholder="请选择">
+              <el-option
+                v-for="item in options"
+                :key="item.name"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择时间:">
+            <el-date-picker
+              v-model="timedate"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            >
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="queryApData" :plain="true"
+              >查询</el-button
+            >
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="queryApDataMx"
+              >对标分析</el-button
+            >
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="toExcel">导出</el-button>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="goReturn">返回</el-button>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <el-table
+        :data="fdcLineData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center', padding: '1px' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="font-size: 10px"
+      >
+        <el-table-column label="值际对标列表">
+          <el-table-column type="index" width="45"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wtId" label="风机" width="80">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="ordernum"
+            label="排名"
+            width="50"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssnum"
+            label="故障排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzss"
+            label="故障损失"
+            width="70"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.gzss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whssnum"
+            label="检修排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whss"
+            label="检修损失"
+            width="80"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.whss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfssnum"
+            label="性能排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfss"
+            label="性能损失"
+            width="80"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.qfss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdssnum"
+            label="限电排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdss"
+            label="限电损失"
+            width="70"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.xdss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssnum"
+            label="受累排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slss"
+            label="受累损失"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzsslnum"
+            label="故障损失率排名"
+            width="90"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssl"
+            label="故障损失率"
+            width="80"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxsslnum"
+            label="检修损失率排名"
+            width="90"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxssl"
+            label="检修损失率"
+            width="80"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qflnum"
+            label="弃风率排名"
+            width="80"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfl"
+            label="弃风率"
+            width="60"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnsslnum"
+            label="性能损失率排名"
+            width="85"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnssl"
+            label="性能损失率"
+            width="81"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssl"
+            label="受累损失率"
+            width="81"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="fwjsl"
+            label="复位及时率"
+            width="81"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xqjsl"
+            label="消缺及时率"
+            width="81"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="ztzhjsl"
+            label="状态转换率"
+            width="81"
+          >
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-table
+        v-if="tableSwitch"
+        :data="fdcLineData2"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center', padding: '1px' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange2"
+        @sort-change="changeTableSort"
+        style="font-size: 10px"
+      >
+        <el-table-column label="值际对标列表">
+          <el-table-column type="index" width="45"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wtId" label="风机" width="80">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="ordernum"
+            label="排名"
+            width="50"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssnum"
+            label="故障排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzss"
+            label="故障损失"
+            width="70"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.gzss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whssnum"
+            label="检修排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whss"
+            label="检修损失"
+            width="80"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.whss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfssnum"
+            label="性能排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfss"
+            label="性能损失"
+            width="80"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.qfss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdssnum"
+            label="限电排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdss"
+            label="限电损失"
+            width="70"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.xdss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssnum"
+            label="受累排名"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slss"
+            label="受累损失"
+            width="70"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzsslnum"
+            label="故障损失率排名"
+            width="90"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssl"
+            label="故障损失率"
+            width="80"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxsslnum"
+            label="检修损失率排名"
+            width="90"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxssl"
+            label="检修损失率"
+            width="80"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qflnum"
+            label="弃风率排名"
+            width="80"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfl"
+            label="弃风率"
+            width="60"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnsslnum"
+            label="性能损失率排名"
+            width="85"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnssl"
+            label="性能损失率"
+            width="81"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssl"
+            label="受累损失率"
+            width="81"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="fwjsl"
+            label="复位及时率"
+            width="81"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xqjsl"
+            label="消缺及时率"
+            width="81"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="ztzhjsl"
+            label="状态转换率"
+            width="81"
+          >
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-dialog
+        class="el-dialog_body"
+        width="60%"
+        title="对标信息分析"
+        :visible.sync="dialogTableVisible"
+        append-to-body
+      >
+        <div class="margin">
+          <div class="dialogLeftData">
+            <div id="leiDaTu3" class="echart"></div>
+            <div id="leiDaTu4" class="echart"></div>
+          </div>
+          <div class="dialogRightData">
+            <el-table
+              :data="getTableData"
+              height="618"
+              :row-style="{ height: '10px' }"
+              border
+              :header-cell-style="headStyle"
+              :cell-style="{ textAlign: 'center', padding: '7px' }"
+              style="width: 100%; font-size: 10px"
+            >
+              <el-table-column prop="index" label="指标"> </el-table-column>
+              <el-table-column prop="data1" :label="fdcName1">
+              </el-table-column>
+              <el-table-column prop="data2" :label="fdcName2">
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </el-dialog>
+    </div>
+  </div>
+</template>
+<script>
+import InterValueLineTable from "@assets/js/lossBenchmarking/InterValueLineTable";
+export default InterValueLineTable;
+</script>
+<style lang="scss" scoped>
+@import "@assets/css/lossBenchmarking/InterValueLineTable.scss";
+</style>

+ 479 - 0
src/views/lossBenchmarking/fiveLossLineTable.vue

@@ -0,0 +1,479 @@
+<template>
+  <div class="box">
+    <div class="searchBar">
+      <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-row :gutter="1">
+          <el-form-item label="风场一">
+            <el-select v-model="value" placeholder="请选择">
+              <el-option
+                v-for="item in options"
+                :key="item.name"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+            <el-form-item label="风场二">
+              <el-select v-model="value2" placeholder="请选择">
+                <el-option
+                  v-for="item in options"
+                  :key="item.name"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-form-item>
+          <el-form-item label="选择时间:">
+            <el-date-picker
+              v-model="timedate"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            >
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item>
+            <el-button
+              type="primary"
+              @click="FiveLossTableDataTable1"
+              :plain="true"
+              >查询</el-button
+            >
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="queryApDataMx"
+              >对标分析</el-button
+            >
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="toExcel">导出</el-button>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="goReturn">返回</el-button>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <el-table
+        :data="fdcLineData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="width: 100%"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="45"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wtId" label="风机" width="150">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="ordernum"
+            label="排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssnum"
+            label="故障排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzss"
+            label="故障损失"
+            width="150"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.gzss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whssnum"
+            label="检修排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whss"
+            label="检修损失"
+            width="150"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.whss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfssnum"
+            label="性能排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfss"
+            label="性能损失"
+            width="150"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.qfss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdssnum"
+            label="限电排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdss"
+            label="限电损失"
+            width="150"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.xdss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssnum"
+            label="受累排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slss"
+            label="受累损失"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzsslnum"
+            label="故障损失率排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssl"
+            label="故障损失率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxsslnum"
+            label="检修损失率排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxssl"
+            label="检修损失率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qflnum"
+            label="弃风率排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfl"
+            label="弃风率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnsslnum"
+            label="性能损失率排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnssl"
+            label="性能损失率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssl"
+            label="受累损失率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="fwjsl"
+            label="复位及时率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xqjsl"
+            label="消缺及时率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="ztzhjsl"
+            label="状态转换率"
+            width="150"
+          >
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-table
+        v-if="tableSwitch"
+        :data="fdcLineData2"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange2"
+        @sort-change="changeTableSort"
+        style="width: 100%"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="45"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wtId" label="风机" width="150">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="ordernum"
+            label="排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssnum"
+            label="故障排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzss"
+            label="故障损失"
+            width="150"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.gzss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whssnum"
+            label="检修排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whss"
+            label="检修损失"
+            width="150"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.whss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfssnum"
+            label="性能排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfss"
+            label="性能损失"
+            width="150"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.qfss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdssnum"
+            label="限电排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdss"
+            label="限电损失"
+            width="150"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.xdss | rounding }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssnum"
+            label="受累排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slss"
+            label="受累损失"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzsslnum"
+            label="故障损失率排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssl"
+            label="故障损失率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxsslnum"
+            label="检修损失率排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxssl"
+            label="检修损失率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qflnum"
+            label="弃风率排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfl"
+            label="弃风率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnsslnum"
+            label="性能损失率排名"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnssl"
+            label="性能损失率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssl"
+            label="受累损失率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="fwjsl"
+            label="复位及时率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xqjsl"
+            label="消缺及时率"
+            width="150"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="ztzhjsl"
+            label="状态转换率"
+            width="150"
+          >
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-dialog
+        class="el-dialog_body"
+        width="60%"
+        title="对标信息分析"
+        :visible.sync="dialogTableVisible"
+        append-to-body
+      >
+        <div class="margin">
+          <div class="dialogLeftData">
+            <div id="leiDaTu3" class="echart"></div>
+            <div id="leiDaTu4" class="echart"></div>
+          </div>
+          <div class="dialogRightData">
+            <el-table
+              :data="getTableData"
+              height="618"
+              :row-style="{ height: '10px' }"
+              border
+              :header-cell-style="headStyle"
+              :cell-style="{ textAlign: 'center', padding: '7px' }"
+              style="width: 100%; font-size: 10px"
+            >
+              <el-table-column prop="index" label="指标"> </el-table-column>
+              <el-table-column prop="data1" :label="fdcName1">
+              </el-table-column>
+              <el-table-column prop="data2" :label="fdcName2">
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </el-dialog>
+    </div>
+  </div>
+</template>
+<script>
+import fiveLossLineTable from "@assets/js/lossBenchmarking/fiveLossLineTable";
+export default fiveLossLineTable;
+</script>
+<style lang="scss" scoped>
+@import "@assets/css/lossBenchmarking/fiveLossLineTable.scss";
+</style>

+ 338 - 330
src/views/lossBenchmarking/fiveLossRates.vue

@@ -1,21 +1,25 @@
 <template>
-<div class="box">
-  <div class="searchBar">
-    <el-form :inline="true" :model="formInline" class="demo-form-inline">
-          <el-row :gutter="1">
-            <el-form-item label="风场">
-              <el-select v-model="value"  multiple placeholder="请选择">
+  <div class="box">
+    <div class="searchBar">
+      <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-row :gutter="1">
+          <el-form-item label="风场">
+            <el-select v-model="value" multiple placeholder="请选择">
               <el-option
                 v-for="item in options"
                 :key="item.name"
                 :label="item.name"
-                :value="item.id">
+                :value="item.id"
+              >
               </el-option>
             </el-select>
-            </el-form-item>
-            <el-form-item label="分类">
-              <el-select v-model="value2"  
-              @change="queryApData()" placeholder="请选择">
+          </el-form-item>
+          <el-form-item label="分类">
+            <el-select
+              v-model="value2"
+              @change="queryApData()"
+              placeholder="请选择"
+            >
               <el-option
                 v-for="item in classification"
                 :key="item.label"
@@ -24,8 +28,8 @@
               >
               </el-option>
             </el-select>
-            </el-form-item>
-            <!-- <el-form-item label="项目">
+          </el-form-item>
+          <!-- <el-form-item label="项目">
               <el-input
                 v-model="formInline.project"
                 id="project"
@@ -43,355 +47,359 @@
               ></el-input>
             </el-form-item> -->
 
-            <el-form-item label="选择时间:">
-              <el-date-picker
-                v-model="timedate"
-                value-format="yyyy-MM-dd"
-                type="daterange"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-              >
-              </el-date-picker>
-            </el-form-item>
+          <el-form-item label="选择时间:">
+            <el-date-picker
+              v-model="timedate"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            >
+            </el-date-picker>
+          </el-form-item>
 
-            <el-form-item>
-              <el-button type="primary" @click="queryApData" :plain="true"
-                >查询</el-button
-              >
-            </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="queryApData" :plain="true"
+              >查询</el-button
+            >
+          </el-form-item>
 
-            <el-form-item >
-              <el-button type="primary" @click="queryApDataMx"
-                >对标分析</el-button
-              >
-            </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="queryApDataMx"
+              >对标分析</el-button
+            >
+          </el-form-item>
 
-            <el-form-item>
-              <el-button type="primary" @click="toExcel">导出</el-button>
-            </el-form-item>
-          </el-row>
-        </el-form>
-        <el-table
-            :data="gridData"
-            :row-style="{ height: '10px' }" 
-            :cell-style="{ textAlign: 'center'}" 
-            :header-cell-style="headStyle"
-            @selection-change="handleSelectionChange"
-            @sort-change="changeTableSort"
-            style="width:100%"  v-if="value2=='xn'">
-            <el-table-column label="损失率对标列表">
-            <el-table-column
-              type="index"
-              width="30">
-            </el-table-column>
-            <el-table-column
-              type="selection"
-              width=45>
-            </el-table-column>
-            <el-table-column
-              prop="wpName"
-              label="风机"
-              width="300">
-            </el-table-column>
-             <el-table-column
-             :sortable="'custom'"
-              prop="qfssnum"
-              label="性能损失电量排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+          <el-form-item>
+            <el-button type="primary" @click="toExcel">导出</el-button>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="width: 100%"
+        v-if="value2 == 'xn'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="qfss"
-              label="性能损失电量"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="qfssnum"
+            label="性能损失电量排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="xnsslnum"
-              label="性能损失率排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="qfss"
+            label="性能损失电量"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="xnssl"
-              label="性能损失率(%)"
-               width="300">
-            </el-table-column>
-            <el-table-column
-              prop="address"
-              label="操作"
-               width="300">
-               <template slot-scope="scope">
-                  <el-button size="mini"  @click="handleEdit(scope.$index, scope.row)">详情</el-button>
-               </template>
-            </el-table-column>
+            prop="xnsslnum"
+            label="性能损失率排名"
+            width="300"
+          >
           </el-table-column>
-       </el-table>
-       <el-table
-            :data="gridData"
-            :row-style="{ height: '10px' }" 
-            :cell-style="{ textAlign: 'center'}" 
-            :header-cell-style="headStyle"
-            @selection-change="handleSelectionChange"
-            @sort-change="changeTableSort"
-            style="width:100%"  v-if="value2=='qf'">
-            <el-table-column label="损失率对标列表">
-            <el-table-column
-              type="index"
-              width="30">
-            </el-table-column>
-            <el-table-column
-              type="selection"
-              width=45>
-            </el-table-column>
-            <el-table-column
-              prop="wpName"
-              label="风机"
-              width="300">
-            </el-table-column>
-             <el-table-column
-             :sortable="'custom'"
-              prop="qfl"
-              label="弃风率"
-               width="300">
-            </el-table-column>
-            <el-table-column
+          <el-table-column
             :sortable="'custom'"
-              prop="qflnum"
-              label="弃风率排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="xnssl"
+            label="性能损失率(%)"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="width: 100%"
+        v-if="value2 == 'qf'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="xdssnum"
-              label="限电损失电量排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="qfl"
+            label="弃风率"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="xdss"
-              label="限电损失电量"
-               width="300">
-            </el-table-column>
-            <el-table-column
-              prop="address"
-              label="操作"
-               width="300">
-               <template slot-scope="scope">
-                  <el-button size="mini"  @click="handleEdit(scope.$index, scope.row)">详情</el-button>
-               </template>
-            </el-table-column>  
-            </el-table-column>        
-       </el-table>
-       <el-table
-            :data="gridData"
-            :row-style="{ height: '10px' }" 
-            :cell-style="{ textAlign: 'center'}" 
-            :header-cell-style="headStyle"
-            @selection-change="handleSelectionChange"
-            @sort-change="changeTableSort"
-            style="width:100%;"  v-if="value2=='gz'">
-            <el-table-column label="损失率对标列表">
-            <el-table-column
-              type="index"
-              width="30">
-            </el-table-column>
-            <el-table-column
-              type="selection"
-              width=45>
-            </el-table-column>
-            <el-table-column
-              prop="wpName"
-              label="风机"
-              width="300">
-            </el-table-column>
-             <el-table-column
-             :sortable="'custom'"
-              prop="gzssnum"
-              label="故障损失电量排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="qflnum"
+            label="弃风率排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="gzss"
-              label="故障损失电量"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="xdssnum"
+            label="限电损失电量排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="gzsslnum"
-              label="故障损失率排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="xdss"
+            label="限电损失电量"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="width: 100%"
+        v-if="value2 == 'gz'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssnum"
+            label="故障损失电量排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="gzssl"
-              label="故障损失率(%)"
-               width="300">
-            </el-table-column>
-            <el-table-column
-              prop="address"
-              label="操作"
-               width="300">
-               <template slot-scope="scope">
-                  <el-button size="mini"  @click="handleEdit(scope.$index, scope.row)">详情</el-button>
-               </template>
-            </el-table-column>
+            prop="gzss"
+            label="故障损失电量"
+            width="300"
+          >
           </el-table-column>
-       </el-table>
-       <el-table
-            :data="gridData"
-            :row-style="{ height: '10px' }" 
-            :cell-style="{ textAlign: 'center'}" 
-            :header-cell-style="headStyle"
-            @selection-change="handleSelectionChange"
-            @sort-change="changeTableSort"
-            style="width:100%"  v-if="value2=='jx'">
-            <el-table-column label="损失率对标列表">
-            <el-table-column
-              type="index"
-              width="30">
-            </el-table-column>
-            <el-table-column
-              type="selection"
-              width=45>
-            </el-table-column>
-            <el-table-column
-              prop="wpName"
-              label="风机"
-              width="300">
-            </el-table-column>
-             <el-table-column
-             :sortable="'custom'"
-              prop="whssnum"
-              label="检修损失电量排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+          <el-table-column
             :sortable="'custom'"
-              prop="whss"
-              label="检修损失电量"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="gzsslnum"
+            label="故障损失率排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="jxsslnum"
-              label="检修损失率排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="gzssl"
+            label="故障损失率(%)"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="width: 100%"
+        v-if="value2 == 'jx'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="jxssl"
-              label="检修损失率(%)"
-               width="300">
-            </el-table-column>
-            <el-table-column
-              prop="address"
-              label="操作"
-               width="300">
-               <template slot-scope="scope">
-                  <el-button size="mini"  @click="handleEdit(scope.$index, scope.row)">详情</el-button>
-               </template>
-            </el-table-column>
+            prop="whssnum"
+            label="检修损失电量排名"
+            width="300"
+          >
           </el-table-column>
-       </el-table>
-       <el-table
-            :data="gridData"
-            :row-style="{ height: '10px' }" 
-            :cell-style="{ textAlign: 'center'}" 
-            :header-cell-style="headStyle"
-            @selection-change="handleSelectionChange"
-            @sort-change="changeTableSort"
-            style="width:100%"  v-if="value2=='sl'">
-            <el-table-column label="损失率对标列表">
-            <el-table-column
-              type="index"
-              width="30">
-            </el-table-column>
-            <el-table-column
-              type="selection"
-              width=45>
-            </el-table-column>
-            <el-table-column
-              prop="wpName"
-              label="风机"
-              width="300">
-            </el-table-column>
-             <el-table-column
-             :sortable="'custom'"
-              prop="slssnum"
-              label="受累损失电量排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+          <el-table-column
             :sortable="'custom'"
-              prop="slss"
-              label="受累损失电量"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="whss"
+            label="检修损失电量"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="slsslnum"
-              label="受累损失率排名"
-               width="300">
-            </el-table-column>
-            <el-table-column
+            prop="jxsslnum"
+            label="检修损失率排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
             :sortable="'custom'"
-              prop="fwjsl"
-              label="受累损失率(%)"
-               width="300">
-            </el-table-column>
-            <el-table-column
-              prop="address"
-              label="操作"
-               width="300">
-               <template slot-scope="scope">
-                  <el-button size="mini"  @click="handleEdit(scope.$index, scope.row)">详情</el-button>
-               </template>
-            </el-table-column>
+            prop="jxssl"
+            label="检修损失率(%)"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="width: 100%"
+        v-if="value2 == 'sl'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssnum"
+            label="受累损失电量排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slss"
+            label="受累损失电量"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slsslnum"
+            label="受累损失率排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="fwjsl"
+            label="受累损失率(%)"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
           </el-table-column>
-       </el-table>
-       	<el-dialog class="el-dialog_body" width="60%" title="对标信息分析" :visible.sync="dialogTableVisible" append-to-body>
-							<div class="margin">
-								<div class="dialogLeftData">
-									<div id="leiDaTu" class="echart"></div>
-                  <div id="leiDaTu2" class="echart"></div>
-								</div>
-								<div class="dialogRightData">
-									<el-table :data="getTableData" height="618"
-									:row-style="{ height: '10px' }"
-									border :header-cell-style="headStyle" :cell-style="{ textAlign: 'center',padding:'7px' }" 
-									 style="width: 100%;font-size: 10px;">
-											<el-table-column prop="index" label="指标">
-											</el-table-column>
-											<el-table-column prop="data1" :label=fdcName1>
-											</el-table-column>
-											<el-table-column prop="data2" :label=fdcName2>
-											</el-table-column>
-									</el-table>
-								</div>
-							</div>
-						</el-dialog>
-       <!-- <div style="text-align: center;">
+        </el-table-column>
+      </el-table>
+      <el-dialog
+        class="el-dialog_body"
+        width="60%"
+        title="对标信息分析"
+        :visible.sync="dialogTableVisible"
+        append-to-body
+      >
+        <div class="margin">
+          <div class="dialogLeftData">
+            <div id="leiDaTu" class="echart"></div>
+            <div id="leiDaTu2" class="echart"></div>
+          </div>
+          <div class="dialogRightData">
+            <el-table
+              :data="getTableData"
+              height="618"
+              :row-style="{ height: '10px' }"
+              border
+              :header-cell-style="headStyle"
+              :cell-style="{ textAlign: 'center', padding: '7px' }"
+              style="width: 100%; font-size: 10px"
+            >
+              <el-table-column prop="index" label="指标"> </el-table-column>
+              <el-table-column prop="data1" :label="fdcName1">
+              </el-table-column>
+              <el-table-column prop="data2" :label="fdcName2">
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </el-dialog>
+      <!-- <div style="text-align: center;">
 					<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="currentPage2"
 					 :page-sizes="[10, 50, 100, 1000]"
 					 :page-size="pagesize" layout="sizes, prev, pager, next" :total="1000">
 					</el-pagination>
 				</div> -->
-       <div class="pieChart">
-         <FiveLossRatesPieChart ref="FiveLossRatesPieChart"></FiveLossRatesPieChart>
+      <div class="pieChart">
+        <FiveLossRatesPieChart
+          ref="FiveLossRatesPieChart"
+        ></FiveLossRatesPieChart>
       </div>
       <div class="histogramChart">
-         <FiveLossRatesHistogramChart ref="FiveLossRatesHistogramChart"></FiveLossRatesHistogramChart>
+        <FiveLossRatesHistogramChart
+          ref="FiveLossRatesHistogramChart"
+        ></FiveLossRatesHistogramChart>
       </div>
-    </div> 
-</div>
+    </div>
+  </div>
 </template>
 <script>
-    import fiveLossRates from "@assets/js/lossBenchmarking/fiveLossRates";
-    export default fiveLossRates;
+import fiveLossRates from "@assets/js/lossBenchmarking/fiveLossRates";
+export default fiveLossRates;
 </script>
 <style lang="scss" scoped>
-    @import "@assets/css/lossBenchmarking/fiveLossRates.scss";
+@import "@assets/css/lossBenchmarking/fiveLossRates.scss";
 </style>

+ 9 - 6
src/views/lossBenchmarking/fiveLossRatesHistogramChart.vue

@@ -1,12 +1,15 @@
 <template>
-    <div class="box">
-        <div id="chartHistogram" style="width: 90%; height: 300px; margin: auto"></div>
-    </div>
+  <div class="box">
+    <div
+      id="chartHistogram"
+      style="width: 90%; height: 300px; margin: auto"
+    ></div>
+  </div>
 </template>
 <script>
-    import fiveLossRatesHistogramChart from "@assets/js/lossBenchmarking/fiveLossRatesHistogramChart";
-    export default fiveLossRatesHistogramChart;
+import fiveLossRatesHistogramChart from "@assets/js/lossBenchmarking/fiveLossRatesHistogramChart";
+export default fiveLossRatesHistogramChart;
 </script>
 <style lang="scss" scoped>
-    @import "@assets/css/lossBenchmarking/fiveLossRatesHistogramChart.scss";
+@import "@assets/css/lossBenchmarking/fiveLossRatesHistogramChart.scss";
 </style>

+ 3 - 3
src/views/lossBenchmarking/fiveLossRatesPieChart.vue

@@ -8,9 +8,9 @@
   </div>
 </template>
 <script>
-    import fiveLossRatesPieChart from "@assets/js/lossBenchmarking/fiveLossRatesPieChart";
-    export default fiveLossRatesPieChart;
+import fiveLossRatesPieChart from "@assets/js/lossBenchmarking/fiveLossRatesPieChart";
+export default fiveLossRatesPieChart;
 </script>
 <style lang="scss" scoped>
-    @import "@assets/css/lossBenchmarking/fiveLossRatesPieChart.scss";
+@import "@assets/css/lossBenchmarking/fiveLossRatesPieChart.scss";
 </style>

+ 270 - 0
src/views/lossBenchmarking/interValue.vue

@@ -0,0 +1,270 @@
+<template>
+    <div class="box">
+        <div class="searchBar">
+            <el-form :inline="true" :model="formInline" class="demo-form-inline">
+            <el-row :gutter="1">
+                <el-form-item label="风场">
+                <el-select v-model="value"  placeholder="请选择">
+                <el-option
+                    v-for="item in options"
+                    :key="item.name"
+                    :label="item.name"
+                    :value="item.id">
+                </el-option>
+                </el-select>
+                </el-form-item>
+                <el-form-item label="年份">
+                    <el-date-picker
+                        v-model="value2"
+                        type="year"
+                        placeholder="选择年"
+                        value-format="yyyy">
+                    </el-date-picker>
+                </el-form-item>
+
+                <el-form-item label="月份">
+                    <el-date-picker
+                        v-model="value3"
+                        type="month"
+                        placeholder="选择月"
+                        value-format="MM"
+                        >
+                    </el-date-picker>
+                </el-form-item>
+
+                 <el-form-item label="值际周期">
+                <el-select v-model="value4"  placeholder="请选择">
+                <el-option
+                    v-for="item in options2"
+                    :key="item.label"
+                    :label="item.label"
+                    :value="item.value"
+                >
+                </el-option>
+                </el-select>
+                </el-form-item>
+
+                <el-form-item>
+                <el-button type="primary" @click="queryApData" :plain="true"
+                    >添加</el-button
+                >
+                </el-form-item>
+
+                <el-form-item >
+                <el-button type="primary" @click="queryApDataMx"
+                    >风场对标</el-button
+                >
+                </el-form-item>
+
+                <el-form-item>
+                <el-button type="primary" @click="clearAll">清空</el-button>
+                </el-form-item>
+            </el-row>
+            </el-form>
+            <el-table
+            :data="tableData"
+            :row-style="{ height: '10px' }" 
+            :cell-style="{ textAlign: 'center'}" 
+            :header-cell-style="headStyle"
+            @selection-change="handleSelectionChange"
+            @sort-change="changeTableSort"
+            style="width:100%">
+                <!-- <el-table-column label="值际对标列表"> -->
+                <el-table-column
+                    type="index"
+                    width="30">
+                </el-table-column>
+                <el-table-column
+                    type="selection"
+                    width=45>
+                </el-table-column>
+                <el-table-column
+                    prop="wpName"
+                    label="风电场名称"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="ordernum"
+                    label="综合排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="scadafdlnum"
+                    label="发电量排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="scadafdl"
+                    label="发电量"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="gzssnum"
+                    label="故障损失电量排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="gzss"
+                    label="故障损失电量"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="jxsslnum"
+                    label="检修损失电量排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="jxssl"
+                    label="检修损失电量"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="xnsslnum"
+                    label="性能损失电量排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="xnssl"
+                    label="性能损失电量"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="xdssnum"
+                    label="限电损失电量排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="xdss"
+                    label="限电损失电量"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="slssnum"
+                    label="受累损失电量排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="slss"
+                    label="受累损失电量"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="fnlyl"
+                    label="风能利用率(%)"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="gzsslnum"
+                    label="故障损失率排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="gzssl"
+                    label="故障损失率(%)"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="jxsslnum"
+                    label="检修损失率排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="jxssl"
+                    label="检修损失率(%)"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="qflnum"
+                    label="弃风率排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="qfl"
+                    label="弃风率(%)"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="xnsslnum"
+                    label="性能损失率排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="xnssl"
+                    label="性能损失率(%)"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="slsslnum"
+                    label="受累损失率排名"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                :sortable="'custom'"
+                    prop="slssl"
+                    label="受累损失率(%)"
+                    width="200">
+                </el-table-column>
+                <el-table-column
+                    fixed="right"
+                    label="操作"
+                    width="200">
+                    <template slot-scope="scope">
+                        <el-button size="mini"  @click="handleEdit(scope.$index, scope.row)">详情</el-button>
+                    </template>
+                </el-table-column>
+                <!-- </el-table-column> -->
+            </el-table>
+            	<el-dialog class="el-dialog_body" width="60%" title="对标信息分析" :visible.sync="dialogTableVisible" append-to-body>
+							<div class="margin">
+								<div class="dialogLeftData">
+									<div id="leiDaTu" class="echart"></div>
+                                    <div id="leiDaTu2" class="echart"></div>
+								</div>
+								<div class="dialogRightData">
+									<el-table :data="getTableData" height="618"
+									:row-style="{ height: '10px' }"
+									border :header-cell-style="headStyle" :cell-style="{ textAlign: 'center',padding:'7px' }" 
+									 style="width: 100%;font-size: 10px;">
+											<el-table-column prop="index" label="指标">
+											</el-table-column>
+											<el-table-column prop="data1" :label=fdcName1>
+											</el-table-column>
+											<el-table-column prop="data2" :label=fdcName2>
+											</el-table-column>
+									</el-table>
+								</div>
+							</div>
+				</el-dialog>
+        </div>
+    </div>    
+</template>
+<script>
+import interValue from "@assets/js/lossBenchmarking/interValue";
+export default interValue;
+</script>
+<style lang="scss" scoped>
+    @import "@assets/css/lossBenchmarking/interValue.scss";
+</style>

+ 151 - 0
src/views/lossBenchmarking/lossRateAbandoned.vue

@@ -0,0 +1,151 @@
+<template>
+  <div class="box">
+    <div class="searchBar">
+      <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-row :gutter="1">
+          <el-form-item label="风场">
+            <el-select v-model="value" multiple placeholder="请选择">
+              <el-option
+                v-for="item in options"
+                :key="item.name"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择时间:">
+            <el-date-picker
+              v-model="timedate"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :picker-options="pickerOptions"
+            >
+            </el-date-picker>
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApData" :plain="true"
+              >查询</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApDataMx"
+              >对标分析</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="toExcel">导出</el-button>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center', padding: '1px' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="font-size: 10px"
+        v-if="value2 == 'qf'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfl"
+            label="弃风率"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qflnum"
+            label="弃风率排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdssnum"
+            label="限电损失电量排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xdss"
+            label="限电损失电量"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-dialog
+        class="el-dialog_body"
+        width="60%"
+        title="对标信息分析"
+        :visible.sync="dialogTableVisible"
+        append-to-body
+      >
+        <div class="margin">
+          <div class="dialogLeftData">
+            <div id="leiDaTu" class="echart"></div>
+            <div id="leiDaTu2" class="echart"></div>
+          </div>
+          <div class="dialogRightData">
+            <el-table
+              :data="getTableData"
+              height="618"
+              :row-style="{ height: '10px' }"
+              border
+              :header-cell-style="headStyle"
+              :cell-style="{ textAlign: 'center', padding: '7px' }"
+              style="width: 100%; font-size: 10px"
+            >
+              <el-table-column prop="index" label="指标"> </el-table-column>
+              <el-table-column prop="data1" :label="fdcName1">
+              </el-table-column>
+              <el-table-column prop="data2" :label="fdcName2">
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </el-dialog>
+      <div class="pieChart">
+        <FiveLossRatesPieChart
+          ref="FiveLossRatesPieChart"
+        ></FiveLossRatesPieChart>
+      </div>
+      <div class="histogramChart">
+        <FiveLossRatesHistogramChart
+          ref="FiveLossRatesHistogramChart"
+        ></FiveLossRatesHistogramChart>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import lossRateAbandoned from "@assets/js/lossBenchmarking/lossRateAbandoned";
+export default lossRateAbandoned;
+</script>
+<style lang="scss" scoped>
+@import "@assets/css/lossBenchmarking/lossRateAbandoned.scss";
+</style>

+ 150 - 0
src/views/lossBenchmarking/lossRateAffected.vue

@@ -0,0 +1,150 @@
+<template>
+  <div class="box">
+    <div class="searchBar">
+      <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-row :gutter="1">
+          <el-form-item label="风场">
+            <el-select v-model="value" multiple placeholder="请选择">
+              <el-option
+                v-for="item in options"
+                :key="item.name"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择时间:">
+            <el-date-picker
+              v-model="timedate"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            >
+            </el-date-picker>
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApData" :plain="true"
+              >查询</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApDataMx"
+              >对标分析</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="toExcel">导出</el-button>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center', padding: '1px' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="font-size: 10px"
+        v-if="value2 == 'sl'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slssnum"
+            label="受累损失电量排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slss"
+            label="受累损失电量"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="slsslnum"
+            label="受累损失率排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="fwjsl"
+            label="受累损失率(%)"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-dialog
+        class="el-dialog_body"
+        width="60%"
+        title="对标信息分析"
+        :visible.sync="dialogTableVisible"
+        append-to-body
+      >
+        <div class="margin">
+          <div class="dialogLeftData">
+            <div id="leiDaTu" class="echart"></div>
+            <div id="leiDaTu2" class="echart"></div>
+          </div>
+          <div class="dialogRightData">
+            <el-table
+              :data="getTableData"
+              height="618"
+              :row-style="{ height: '10px' }"
+              border
+              :header-cell-style="headStyle"
+              :cell-style="{ textAlign: 'center', padding: '7px' }"
+              style="width: 100%; font-size: 10px"
+            >
+              <el-table-column prop="index" label="指标"> </el-table-column>
+              <el-table-column prop="data1" :label="fdcName1">
+              </el-table-column>
+              <el-table-column prop="data2" :label="fdcName2">
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </el-dialog>
+      <div class="pieChart">
+        <FiveLossRatesPieChart
+          ref="FiveLossRatesPieChart"
+        ></FiveLossRatesPieChart>
+      </div>
+      <div class="histogramChart">
+        <FiveLossRatesHistogramChart
+          ref="FiveLossRatesHistogramChart"
+        ></FiveLossRatesHistogramChart>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import lossRateAffected from "@assets/js/lossBenchmarking/lossRateAffected";
+export default lossRateAffected;
+</script>
+<style lang="scss" scoped>
+@import "@assets/css/lossBenchmarking/lossRateAffected.scss";
+</style>

+ 150 - 0
src/views/lossBenchmarking/lossRateFailure.vue

@@ -0,0 +1,150 @@
+<template>
+  <div class="box">
+    <div class="searchBar">
+      <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-row :gutter="1">
+          <el-form-item label="风场">
+            <el-select v-model="value" multiple placeholder="请选择">
+              <el-option
+                v-for="item in options"
+                :key="item.name"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择时间:">
+            <el-date-picker
+              v-model="timedate"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            >
+            </el-date-picker>
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApData" :plain="true"
+              >查询</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApDataMx"
+              >对标分析</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="toExcel">导出</el-button>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center', padding: '1px' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="font-size: 10px"
+        v-if="value2 == 'gz'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssnum"
+            label="故障损失电量排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzss"
+            label="故障损失电量"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzsslnum"
+            label="故障损失率排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="gzssl"
+            label="故障损失率(%)"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-dialog
+        class="el-dialog_body"
+        width="60%"
+        title="对标信息分析"
+        :visible.sync="dialogTableVisible"
+        append-to-body
+      >
+        <div class="margin">
+          <div class="dialogLeftData">
+            <div id="leiDaTu" class="echart"></div>
+            <div id="leiDaTu2" class="echart"></div>
+          </div>
+          <div class="dialogRightData">
+            <el-table
+              :data="getTableData"
+              height="618"
+              :row-style="{ height: '10px' }"
+              border
+              :header-cell-style="headStyle"
+              :cell-style="{ textAlign: 'center', padding: '7px' }"
+              style="width: 100%; font-size: 10px"
+            >
+              <el-table-column prop="index" label="指标"> </el-table-column>
+              <el-table-column prop="data1" :label="fdcName1">
+              </el-table-column>
+              <el-table-column prop="data2" :label="fdcName2">
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </el-dialog>
+      <div class="pieChart">
+        <FiveLossRatesPieChart
+          ref="FiveLossRatesPieChart"
+        ></FiveLossRatesPieChart>
+      </div>
+      <div class="histogramChart">
+        <FiveLossRatesHistogramChart
+          ref="FiveLossRatesHistogramChart"
+        ></FiveLossRatesHistogramChart>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import lossRateFailure from "@assets/js/lossBenchmarking/lossRateFailure";
+export default lossRateFailure;
+</script>
+<style lang="scss" scoped>
+@import "@assets/css/lossBenchmarking/lossRateFailure.scss";
+</style>

+ 150 - 0
src/views/lossBenchmarking/lossRateMaintenance.vue

@@ -0,0 +1,150 @@
+<template>
+  <div class="box">
+    <div class="searchBar">
+      <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-row :gutter="1">
+          <el-form-item label="风场">
+            <el-select v-model="value" multiple placeholder="请选择">
+              <el-option
+                v-for="item in options"
+                :key="item.name"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择时间:">
+            <el-date-picker
+              v-model="timedate"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            >
+            </el-date-picker>
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApData" :plain="true"
+              >查询</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApDataMx"
+              >对标分析</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="toExcel">导出</el-button>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center', padding: '1px' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="font-size: 10px"
+        v-if="value2 == 'jx'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whssnum"
+            label="检修损失电量排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="whss"
+            label="检修损失电量"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxsslnum"
+            label="检修损失率排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="jxssl"
+            label="检修损失率(%)"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-dialog
+        class="el-dialog_body"
+        width="60%"
+        title="对标信息分析"
+        :visible.sync="dialogTableVisible"
+        append-to-body
+      >
+        <div class="margin">
+          <div class="dialogLeftData">
+            <div id="leiDaTu" class="echart"></div>
+            <div id="leiDaTu2" class="echart"></div>
+          </div>
+          <div class="dialogRightData">
+            <el-table
+              :data="getTableData"
+              height="618"
+              :row-style="{ height: '10px' }"
+              border
+              :header-cell-style="headStyle"
+              :cell-style="{ textAlign: 'center', padding: '7px' }"
+              style="width: 100%; font-size: 10px"
+            >
+              <el-table-column prop="index" label="指标"> </el-table-column>
+              <el-table-column prop="data1" :label="fdcName1">
+              </el-table-column>
+              <el-table-column prop="data2" :label="fdcName2">
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </el-dialog>
+      <div class="pieChart">
+        <FiveLossRatesPieChart
+          ref="FiveLossRatesPieChart"
+        ></FiveLossRatesPieChart>
+      </div>
+      <div class="histogramChart">
+        <FiveLossRatesHistogramChart
+          ref="FiveLossRatesHistogramChart"
+        ></FiveLossRatesHistogramChart>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import lossRateMaintenance from "@assets/js/lossBenchmarking/lossRateMaintenance";
+export default lossRateMaintenance;
+</script>
+<style lang="scss" scoped>
+@import "@assets/css/lossBenchmarking/lossRateMaintenance.scss";
+</style>

+ 150 - 0
src/views/lossBenchmarking/lossRatePerformance.vue

@@ -0,0 +1,150 @@
+<template>
+  <div class="box">
+    <div class="searchBar">
+      <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-row :gutter="1">
+          <el-form-item label="风场">
+            <el-select v-model="value" multiple placeholder="请选择">
+              <el-option
+                v-for="item in options"
+                :key="item.name"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择时间:">
+            <el-date-picker
+              v-model="timedate"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            >
+            </el-date-picker>
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApData" :plain="true"
+              >查询</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="queryApDataMx"
+              >对标分析</el-button
+            >
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" @click="toExcel">导出</el-button>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <el-table
+        :data="gridData"
+        :row-style="{ height: '10px' }"
+        :cell-style="{ textAlign: 'center', padding: '1px' }"
+        :header-cell-style="headStyle"
+        @selection-change="handleSelectionChange"
+        @sort-change="changeTableSort"
+        style="font-size: 10px"
+        v-if="value2 == 'xn'"
+      >
+        <el-table-column label="损失率对标列表">
+          <el-table-column type="index" width="30"> </el-table-column>
+          <el-table-column type="selection" width="45"> </el-table-column>
+          <el-table-column prop="wpName" label="风机" width="300">
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfssnum"
+            label="性能损失电量排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="qfss"
+            label="性能损失电量"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnsslnum"
+            label="性能损失率排名"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column
+            :sortable="'custom'"
+            prop="xnssl"
+            label="性能损失率(%)"
+            width="300"
+          >
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                @click="handleEdit(scope.$index, scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+      <el-dialog
+        class="el-dialog_body"
+        width="60%"
+        title="对标信息分析"
+        :visible.sync="dialogTableVisible"
+        append-to-body
+      >
+        <div class="margin">
+          <div class="dialogLeftData">
+            <div id="leiDaTu" class="echart"></div>
+            <div id="leiDaTu2" class="echart"></div>
+          </div>
+          <div class="dialogRightData">
+            <el-table
+              :data="getTableData"
+              height="618"
+              :row-style="{ height: '10px' }"
+              border
+              :header-cell-style="headStyle"
+              :cell-style="{ textAlign: 'center', padding: '7px' }"
+              style="width: 100%; font-size: 10px"
+            >
+              <el-table-column prop="index" label="指标"> </el-table-column>
+              <el-table-column prop="data1" :label="fdcName1">
+              </el-table-column>
+              <el-table-column prop="data2" :label="fdcName2">
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </el-dialog>
+      <div class="pieChart">
+        <FiveLossRatesPieChart
+          ref="FiveLossRatesPieChart"
+        ></FiveLossRatesPieChart>
+      </div>
+      <div class="histogramChart">
+        <FiveLossRatesHistogramChart
+          ref="FiveLossRatesHistogramChart"
+        ></FiveLossRatesHistogramChart>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import lossRatePerformance from "@assets/js/lossBenchmarking/lossRatePerformance";
+export default lossRatePerformance;
+</script>
+<style lang="scss" scoped>
+@import "@assets/css/lossBenchmarking/lossRatePerformance.scss";
+</style>