|
@@ -0,0 +1,420 @@
|
|
|
+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: '',
|
|
|
+ endDate: '',
|
|
|
+ gridData: [],
|
|
|
+ multipleSelection: [],
|
|
|
+ sortInOrder: [],
|
|
|
+ sortInOrderTop: [],
|
|
|
+ sortInOrde2: [],
|
|
|
+ getTableData: [],
|
|
|
+ sortInOrderTop2: [],
|
|
|
+ fdcName1: '',
|
|
|
+ fdcName2: '',
|
|
|
+ currentPage2: 1,
|
|
|
+ pagesize: 10,
|
|
|
+ fdcLineData: '',
|
|
|
+ classification: [{
|
|
|
+ id: 'qf',
|
|
|
+ label: '弃风率'
|
|
|
+ }, {
|
|
|
+ id: 'gz',
|
|
|
+ label: '故障损失率'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 'jx',
|
|
|
+ label: '检修损失率'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 'xn',
|
|
|
+ label: '性能损失率'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 'sl',
|
|
|
+ label: '受累损失率'
|
|
|
+ }],
|
|
|
+ options: [{
|
|
|
+ value: 'MHS_FDC',
|
|
|
+ label: '麻黄山风电场'
|
|
|
+ }, {
|
|
|
+ value: 'NSS_FDC',
|
|
|
+ label: '牛首山风电场'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'SBQ_FDC',
|
|
|
+ label: '石板泉风电场'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'QS_FDC',
|
|
|
+ label: '青山风电场'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'XS_FDC',
|
|
|
+ label: '香山风电场'
|
|
|
+ }],
|
|
|
+ value: '',
|
|
|
+ value2: 'gz',
|
|
|
+ wpId: [],
|
|
|
+ wpName: [],
|
|
|
+ updateTime1: '',
|
|
|
+ updateTime: '',
|
|
|
+ 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 弄'
|
|
|
+ }]
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ 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() {
|
|
|
+ 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
|
|
|
+ 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) => {
|
|
|
+ that.gridData = res.data;
|
|
|
+ that.$refs.FiveLossRatesPieChart.getPackageData(that.gridData,that.value2);
|
|
|
+ that.$refs.FiveLossRatesHistogramChart.getPackageData2(that.gridData);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ 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);
|
|
|
+
|
|
|
+ },
|
|
|
+ toExcel() { }
|
|
|
+ },
|
|
|
+}
|