angularjs2 如何使用highcharts的钻取(drilldown)

陈_先生 2017-07-25 10:37:30
使用angularjs2的highcharts完成饼图钻取功能,但是ng2-highcharts似乎不支持直接使用drilldown,哪位大神有没有什么解决方案帮忙实现下,多谢
/**
* 报道详情-概述-参与人数
*
* author: neusoft
*/
import {
NgModule,
Component,
OnInit,
Input,
ViewChild,
OnDestroy
} from '@angular/core';
import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import {
Router,
ActivatedRoute,
Params
} from '@angular/router';
import {
Serie
} from '../../core/common.model';
import { SummaryDeptService } from './summaryDept.service';
import { Ng2HighchartsModule } from 'ng2-highcharts';
@Component({
selector: 'summary-Dept',
templateUrl: './summaryDept.component.html',
styleUrls: ['./summaryDept.component.css']
})

// 报道详情-概述-部门图表
export class SummaryDeptComponent implements OnInit {

constructor(private summaryDeptService: SummaryDeptService) { }

@Input() reportID: any; // 报道ID
private deptCount: number; // 参与单位数
private peopleCount: number; // 参与人数
private totalPeopleNum: number; // 总人数
private chartData: any; // 饼图数据
private serieList: Serie[] = []; // 饼图各个模块数据
// 颜色类别
private colordept = ["#fcb848", "#ff9191", "#e85367", "#ff7247", "#74d8ff", "#675af1", "#879af8", "#FF7F00", "#FFFACD", "#FFD700", "#FF3E96", "#EEEED1", "#EE9A49", "#EE30A7", "#D15FEE", "#D02090", "#CD2990", "#BF3EFF"];

ngOnInit() {
this.deptCount = 0;
this.peopleCount = 0;
this.refresh();
}
public refresh() {
this.summaryDeptService.geTotalPeopleNum(this.reportID)
.then(data => {
if (0 == data.errCode) {
this.totalPeopleNum = data.count;
}
});
this.serieList = [];
// 取得报道下部门统计
this.summaryDeptService.getSummaryDept(this.reportID)
.then(data => {
this.chartData = {
credits: {
enabled: false
},
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: this.peopleCount,
style: {
color: "#666666",
fontSize: "30",
fontFamily: "微软雅黑"
},
verticalAlign: 'middle'
},
subtitle: {
text: '报道人数',
style: {
color: "#666666",
fontSize: "10",
fontFamily: "微软雅黑"
},
verticalAlign: 'middle',
y: 25
},
xAxis: {
type: 'category'
},
legend: {
enabled: true
},
plotOptions: {
series: {
dataLabels: {
enabled: true
},
shadow: false
},
pie: {
size: '80%'
}
},
series: [{
name: 'Things',
colorByPoint: true,
data: [{
name: 'Animals',
y: 5,
drilldown: 'animals'
}, {
name: 'Fruits',
y: 2,
drilldown: 'fruits'
}, {
name: 'Cars',
y: 4,
drilldown: 'cars'
}]
}],
drilldown: {
series: [{
id: 'animals',
data: [
['Cats', 4],
['Dogs', 2],
['Cows', 1],
['Sheep', 2],
['Pigs', 1]
]
}, {
id: 'fruits',
data: [{
name: 'Apples',
y: 4
},{
name: 'Oranges',
y:2,
drilldown: 'third-leves'
}]
}, {
id: 'cars',
data: [
['Toyota', 4],
['Opel', 2],
['Volkswagen', 2]
]
},{
id: 'third-leves',
data: [
['Toyota', 4],
['Opel', 2],
['Volkswagen', 2]
]
}]
}

};
});
}
}

@NgModule({
imports: [
FormsModule,
CommonModule,
Ng2HighchartsModule
],
exports: [SummaryDeptComponent],
declarations: [SummaryDeptComponent],
providers: [
SummaryDeptService
]
})
export class SummaryDeptModule { }


<div class="pagepie-w">
<div class="deploy-w" style="top:-8px;">
<div class="case-w">参与情况</div>
<div class="tcount-w">
<p class="count1-w">{{totalPeopleNum}}</p>
<p class="count2-w">总人数</p>
</div>
<div class="count-w">
<p class="count1-w">{{peopleCount}}</p>
<p class="count2-w">报道人数</p>
</div>
<div class="tcount-w">
<p class="count1-w">{{deptCount}}</p>
<p class="count2-w">一级部门</p>
</div>
</div>
<div class="pie-w">
<!--部门参与人数-饼图-->
<div style="height: 308px;" [ng2-highcharts]="chartData"></div>
</div>
</div>
...全文
556 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈_先生 2017-07-25
  • 打赏
  • 举报
回复
来大神,在线等

6,721

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 Google技术社区
社区管理员
  • Google技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧