|  |  | 
 |  |  | import {ActivatedRoute} from '@angular/router'; | 
 |  |  | import * as echarts from 'echarts'; | 
 |  |  | import * as $ from 'jquery'; | 
 |  |  |  | 
 |  |  | @Component({ | 
 |  |  |   selector: 'app-report', | 
 |  |  |   templateUrl: './report.component.html', | 
 |  |  | 
 |  |  |  | 
 |  |  |     }, | 
 |  |  |     series: [ | 
 |  |  |       { | 
 |  |  |         smooth: true, | 
 |  |  |         type: 'line', | 
 |  |  |         data: [], | 
 |  |  |         name: '' | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         smooth: true, | 
 |  |  |         type: 'line', | 
 |  |  |         data: [], | 
 |  |  |         name: '', | 
 |  |  |         itemStyle: { | 
 |  |  |           normal: { | 
 |  |  |             barBorderRadius: [10, 10, 10, 10] | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |       //      { | 
 |  |  |       //        smooth: true, | 
 |  |  |       //        type: 'line', | 
 |  |  |       //        data: [], | 
 |  |  |       //        name: '', | 
 |  |  |       //        itemStyle: { | 
 |  |  |       //          normal: { | 
 |  |  |       //            barBorderRadius: [10, 10, 10, 10] | 
 |  |  |       //          } | 
 |  |  |       //        } | 
 |  |  |       //      } | 
 |  |  |     ] | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |   ngOnInit() { | 
 |  |  |     this.activeRoute.queryParams.subscribe(params => { | 
 |  |  |       const items = JSON.parse(params.items); | 
 |  |  |       const query = params; | 
 |  |  |       console.info(query.label); | 
 |  |  |       query.items = JSON.parse(query.items); | 
 |  |  |       this.http.post(environment.SERVER_BASH_URL + 'report/compare', query).subscribe((res: any) => { | 
 |  |  |       this.http.get(environment.SERVER_BASH_URL + 'report/compare', {params: query}).subscribe((res: any) => { | 
 |  |  |         if (res.code === 0) { | 
 |  |  |           this.msgSrv.error(res.message); | 
 |  |  |         } else { | 
 |  |  |           const option = this.echartOption; | 
 |  |  |           const data = res.data; | 
 |  |  |           if (data['time']) { | 
 |  |  |             option.xAxis.data = data['time']; | 
 |  |  |             option.series[0].data = []; | 
 |  |  |             option.legend.data[0] = ''; | 
 |  |  |             option.series[0].name = ''; | 
 |  |  |             option.series[1].data = []; | 
 |  |  |             option.legend.data[1] = ''; | 
 |  |  |             option.series[1].name = ''; | 
 |  |  |             option.xAxis.name = query.xAxisName; | 
 |  |  |             if (data.dataA) { | 
 |  |  |               const legendNamea = (query.deviceaName ? query.deviceaName : query.monitorPointaName) + query.time + query.label; | 
 |  |  |               option.legend.data[0] = legendNamea; | 
 |  |  |               option.series[0].name = legendNamea; | 
 |  |  |           const data = res.data.data; | 
 |  |  |           const time = res.data.time | 
 |  |  |               let index = 0; | 
 |  |  |               for (const key in data.dataA[0]) { | 
 |  |  |           option.xAxis.data = time; | 
 |  |  |           option.xAxis.name = query.xAxisName; | 
 |  |  |  | 
 |  |  |           for (const key in data[0].data0[0]) { | 
 |  |  |                 this.arr.push(index); | 
 |  |  |                 let split = key.split('-'); | 
 |  |  |                 option.title.text = split[1] + query.label + '历走势图'; | 
 |  |  |                 option.series[0].data = data.dataA[0][key]; | 
 |  |  |                 option.yAxis.name = split[2]; | 
 |  |  |             option.series = []; | 
 |  |  |             option.legend.data = []; | 
 |  |  |  | 
 |  |  |             for (let i = 0; i < items.length; i++) { | 
 |  |  |               const legendName = (items[i].mac ? items[i].mac : items[i].monitorPoint) + items[i].formatTime + query.label; | 
 |  |  |               option.legend.data[i] = legendName; | 
 |  |  |               const seriesData = data[i]['data' + i][0][key]; | 
 |  |  |               option.series.push({ | 
 |  |  |                 data: seriesData, | 
 |  |  |                 smooth: true, | 
 |  |  |                 type: 'line', | 
 |  |  |                 name: legendName | 
 |  |  |               }); | 
 |  |  |             } | 
 |  |  |                 const myChart = echarts.init(document.getElementById('mydiv' + index)); | 
 |  |  |                 myChart.setOption(option, true); | 
 |  |  |                 window.onresize = myChart.resize; | 
 |  |  |                 index++; | 
 |  |  |               } | 
 |  |  |  | 
 |  |  |               this.sensorArr.forEach(i => { | 
 |  |  |                 if (this.arr.indexOf(i) == -1) { | 
 |  |  |                   $('#mydiv' + i).remove(); | 
 |  |  |                 } | 
 |  |  |               }); | 
 |  |  |             } | 
 |  |  |             if (data.dataB) { | 
 |  |  |               const legendNameb = (query.devicebName ? query.devicebName : params.monitorPointbName) + query.timeb + query.label; | 
 |  |  |               option.series[1].data = data['dataB']; | 
 |  |  |               option.legend.data[1] = legendNameb; | 
 |  |  |               option.series[1].name = legendNameb; | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }); | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | } | 
 
 |  |  | 
 |  |  | import {Component, OnInit} from '@angular/core'; | 
 |  |  | import {HttpClient} from '@angular/common/http'; | 
 |  |  | import {Router} from '@angular/router'; | 
 |  |  | import * as $ from 'jquery' | 
 |  |  |  | 
 |  |  |  | 
 |  |  | @Component({ | 
 |  |  |   selector: 'app-demo', | 
 |  |  | 
 |  |  |   items = [{ | 
 |  |  |     id: 0, | 
 |  |  |     monitorPoint: null, | 
 |  |  |     mac: null, | 
 |  |  |     mac: '', | 
 |  |  |     time: null, | 
 |  |  |     formatTime: null | 
 |  |  |   }]; | 
 |  |  | 
 |  |  |     const index = this.items.push({ | 
 |  |  |       id, | 
 |  |  |       monitorPoint: null, | 
 |  |  |       mac: null, | 
 |  |  |       mac: '', | 
 |  |  |       time: null, | 
 |  |  |       formatTime: null | 
 |  |  |     }); | 
 |  |  | 
 |  |  |       }); | 
 |  |  |     } else { | 
 |  |  |       this.items[i].monitorPoint = null; | 
 |  |  |       this.items[i].mac = null; | 
 |  |  |       this.items[i].mac = ''; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   public typeOptions = [ | 
 |  |  |     {value: 'year', label: '年', mode: 'month', xAxisName: '月', format: 'yyyy', typeFormat: '%Y-%m'}, | 
 |  |  |     {value: 'month', label: '月', mode: 'month', xAxisName: '日', format: 'yyyy-MM', typeFormat: '%Y-%m-%d'}, | 
 |  |  |     {value: 'day', label: '日', mode: 'day', xAxisName: '时', format: 'yyyy-MM-dd', typeFormat: '%Y-%m-%d %H'}, | 
 |  |  |     {value: 'hour', label: '时', mode: 'day', xAxisName: '分', format: 'yyyy-MM-dd HH', typeFormat: '%Y-%m-%d %H:%i'} | 
 |  |  |     {value: 'year', label: '年', mode: 'month', xAxisName: '月', format: 'yyyy', typeFormat: '%Y-%m', timeLength: 12}, | 
 |  |  |     {value: 'month', label: '月', mode: 'month', xAxisName: '日', format: 'yyyy-MM', typeFormat: '%Y-%m-%d', timeLength: 28}, | 
 |  |  |     {value: 'day', label: '日', mode: 'day', xAxisName: '时', format: 'yyyy-MM-dd', typeFormat: '%Y-%m-%d %H', timeLength: 24}, | 
 |  |  |     {value: 'hour', label: '时', mode: 'day', xAxisName: '分', format: 'yyyy-MM-dd HH', typeFormat: '%Y-%m-%d %H:%i', timeLength: 60} | 
 |  |  |   ]; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |       query.typeFormat = this.timeType.typeFormat; | 
 |  |  |       query.xAxisName = this.timeType.xAxisName; | 
 |  |  |       query.label = this.timeType.label; | 
 |  |  |       query.timeLength = this.timeType.timeLength; | 
 |  |  |       query.items = JSON.stringify(this.items); | 
 |  |  |       this.router.navigate(['report'], {queryParams: query}); | 
 |  |  |     } else { |