import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; import { ActivatedRoute } from '@angular/router'; import { EchartsDataService } from '../../echarts-data.service'; declare var echarts: any; @Component({ selector: 'app-add-unit-three-bar-details', templateUrl: './add-unit-three-bar-details.component.html', styleUrls: ['./add-unit-three-bar-details.component.scss'] }) export class AddUnitThreeBarDetailsComponent implements OnInit { constructor(private router: Router,public dialog: MatDialog,public snackBar: MatSnackBar,private serviceData: EchartsDataService,public route: ActivatedRoute) { } time:String buildingTypeName:String //level:String orId//上个页面传过来的组织id buildId//上个页面传过来的建筑id setTimeoutObj//延时器需要清除 tabledata organizationId=[] ngOnInit(): void { if(sessionStorage.getItem('refresh') === 'true') { sessionStorage.removeItem('refresh'); location.reload(); } this.dateInit () this.route.queryParams.subscribe(params => { this.time = params['time']; this.buildingTypeName = params['buildingTpye']; this.buildId=params['id'] this.orId=params['zhuid'] }); this.setTimeoutObj = window.setTimeout(()=>{ this.getechartsData() }) } ngOnDestroy(){ window.clearTimeout(this.setTimeoutObj); if (!this.detailPlanEchart) { return; } this.detailPlanEchart.clear() this.detailPlanEchart.dispose() } //获取服务层数据 async getechartsData(){ let paramsdata/* ={ organizationId:this.orId } */ if(this.serviceData.addYear==undefined&&this.serviceData.addMonth!=undefined){ this.serviceData.addYear=new Date().getFullYear() paramsdata={ organizationId:this.orId, TimeIntervalStart:this.serviceData.addYear+'-'+this.serviceData.addMonth, TimeIntervalEnd:this.serviceData.addYear+'-'+this.serviceData.addMonth, } }else if(this.serviceData.addYear==undefined&&this.serviceData.addMonth==undefined){ paramsdata={ organizationId:this.orId, } }else{ paramsdata={ organizationId:this.orId, TimeIntervalStart:this.serviceData.addYear+'-'+this.serviceData.addMonth, TimeIntervalEnd:this.serviceData.addYear+'-'+this.serviceData.addMonth, } } await this.serviceData.getData(paramsdata,`/api/StatisticsAnalysis/Companies/BuildingTypes/${this.buildId}`) this.tabledata=JSON.parse(JSON.stringify(this.serviceData.allDate)) //console.log(this.tabledata) for(var i=0;i=date-10;i--) { this.years.unshift(i) } } selectOneYear:any = (new Date()).getFullYear() //开始年份 selectStartMonth:any = 1 //开始月份 Submit (e) { } selectStartYear:any = (new Date()).getFullYear() //开始年份 topTextlabel = { show: true, // 开启显示 position: 'top', // 在上方显示 distance: 10, // 距离图形元素的距离。当 position 为字符描述值(如 'top'、'insideRight')时候有效。 verticalAlign: 'middle', textStyle: { // 数值样式 color: 'black', fontSize: 12 } }//柱状图数值顶部显示 zhongNameData = ["浦东中队","黄浦中队","徐汇中队","长宁中队","静安中队","普陀中队","虹口中队","杨浦中队","闵行中队","宝山中队","嘉定中队"] zhongNumData = [300,290,280,270,260,250,240,230,220,210,200] zhiNameData = [] zhiNumData = [] tiaoshiPao:any //气泡提示数据获取 bianli(){ this.tiaoshiPao=null var arrshuzu='['; for(var i=0;i{ return this.tiao==false? this.serviceData.biaogeTishida(params):this.tableTooltip(params) }, position:this.serviceData.tableTooltipNoShowq }, series: [{ data: this.zhiNumData, type: 'bar', markPoint: { symbolSize:[65, 65], data: this.tiaoshiPao }, barWidth :'58', backgroundStyle: { color: 'rgba(220, 220, 220, 0.8)' }, //label: this.topTextlabel }] }; this.detailPlanEchart.setOption(this.option); this.detailPlanEchart.getZr().on("click",(params)=>{ const pointInPixel= [params.offsetX, params.offsetY]; if (this.detailPlanEchart.containPixel('grid',pointInPixel)){ let xIndex=this.detailPlanEchart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; if(this.serviceData.level=="0"&&this.tiao==false&&this.tabledata[0].organizations[xIndex].subOrganizations.length>=1){ //总队不跳 this.zhiNameData=[] this.zhiNumData=[] this.organizationId=[] this.tiaoshiPao='' let paramsdata={ //id:this.buildId, organizationId:this.option.xAxis.id[xIndex] } this.serviceData.getData(paramsdata,`/api/StatisticsAnalysis/Companies/BuildingTypes/${this.buildId}`) this.setTimeoutObj = window.setTimeout(()=>{ this.tabledata=JSON.parse(JSON.stringify(this.serviceData.allDate)) //console.log(this.tabledata) for(var i=0;i' res+='
'; res+=''; res+=''; res+='' res+='' res+='' res+=''; for(var i=0;i' res+='' res+='' } res+='' res+='' res+='
名称数量总占比
'+data[i].number+''+data[i].zhanbi+'
总计'+this.tabledata[0].totalCount+'100%
' return res } }