import { Component, OnInit } from '@angular/core'; import { NzMessageService } from 'ng-zorro-antd'; @Component({ selector: 'app-stack-column-chart', templateUrl: './stack-column-chart.component.html', styleUrls: ['./stack-column-chart.component.scss'] }) export class StackColumnChartComponent implements OnInit { constructor(private message: NzMessageService) { } ngOnInit() { } typeScriptCode = `import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-stack-column-sub-chart-new', template: \` \`, styleUrls: ['./stack-column-sub-chart-new.component.scss'] }) export class StackColumnSubChartNewComponent implements OnInit { constructor() { } chartTitle: string; loading: boolean = false; position: string; data; ngOnInit() { this.initChart(); } initChart() { this.chartTitle = "行政区达标率"; this.position = 'bottom'; this.data = { seriesName: ['大型车', '大型车', '中小型车', '中小型车',], stack: ['昼间', '夜间', '昼间', '夜间'], xData: ['0类', '1类', '2类', '3类', '4a类', '4b类'], yData: [[0, 12, 240, 404, 580, 640], [12, 20, 210, 774, 864, 856], [200, 564, 300, 646, 560, 604], [365, 416, 445, 506, 564, 654]], yAxisName: '车流量', tooltipUnit: '辆', tooltipFormatter: (params) => { let another; if (params.seriesIndex % 2 == 0) { another = this.data.yData[2 - params.seriesIndex][params.dataIndex] } else { another = this.data.yData[4 - params.seriesIndex][params.dataIndex] } let total = params.value + another; let str = ''; str += params.name + '-' + this.data.stack[params.seriesIndex] + '
'; str += '' + params.seriesName + ': ' + params.value + this.data.tooltipUnit + '
' str += ' 总量: ' + total + this.data.tooltipUnit + '
' return str; } } } } `; htmlCode = `@import { ChartModule } from 'bcac-lib/business-component/chart' @NgModule({ imports: [ ChartModule ] }) '`; scssCode = ``; apiData = [ { param: "[bcacChartTitleText]", desc: "图形标题", type: "string", defaultValue: '图表名' }, { param: "[bcacChartShowTitle]", desc: "是否显示图形标题", type: "boolean", defaultValue: 'true' }, { param: "[bcacChartShowLegend]", desc: "是否显示legend图例", type: "boolean", defaultValue: 'true' }, { param: "[bcacLegendPosition]", desc: "图例位置", type: "bottom|right", defaultValue: 'bottom' }, { param: "[bcacChartFileName]", desc: "下载图片名", type: "string", defaultValue: '图表' }, { param: "[bcacChartLoading]", desc: '图片加载等待', type: "boolean", defaultValue: 'false' }, { param: "[bcacTooltipUnit]", desc: 'tooltip单位', type: "string", defaultValue: "''" }, { param: "[bcacChartShowToolbox]", desc: '图片是否显示工具栏', type: "Boolean", defaultValue: 'true' }, { param: "[bcacXAxisName]", desc: '设置x轴名称', type: "string", defaultValue: "''" }, { param: "[bcacYAxisName]", desc: '设置y轴名称', type: "string", defaultValue: "''" }, { param: "[bcacYAxisNameGap]", desc: '设置y轴名称距离', type: "number", defaultValue: 'true' }, { param: "[bcacXAxisLabelRotate]", desc: '设置x轴label旋转', type: "'leftSmallAngle'|'leftBigAngle'|'rightSmallAngle'|'rightBigAngle'", defaultValue: '-' }, { param: "[bcacYAxisLabelRotate]", desc: '设置y轴label旋转', type: "'leftSmallAngle'|'leftBigAngle'|'rightSmallAngle'|'rightBigAngle'", defaultValue: '-' }, { param: "[bcacChartData]", desc: '数据', type: "object 详情见下", defaultValue: 'false' }, { param: "(bcacGetChartInstance)", desc: '获取当前echart实例', type: "EventEmitter<>", defaultValue: '-' }, ] bcacChartData = [ { field: "seriesName", type: "string[]", required: true, eg: "['大型车', '大型车', '中小型车', '中小型车']", desc: "系列的名称" }, { field: "xData", type: "string[]", required: true, eg: "['0类', '1类', '2类', '3类', '4a类', '4b类']", desc: "目录轴的数据" }, { field: "yData", type: "string[][]", required: true, eg: '[[0, 12, 240, 404, 580, 640], [12, 20, 210, 774, 864, 856], [200, 564, 300, 646, 560, 604], [365, 416, 445, 506, 564, 654]]', desc: "值轴的数据,二维数组元素的个数与系列数量一致,二维数组里的一位数组的元素数量与x轴数量一致" }, { field: "tooltipFormatter", type: "string|((params)=>string)", required: false, eg: `(params) => { let another; if (params.seriesIndex % 2 == 0) { another = this.data.yData[2 - params.seriesIndex][params.dataIndex] } else { another = this.data.yData[4 - params.seriesIndex][params.dataIndex] } let total = params.value + another; let str = ''; str += params.name + '-' + this.data.stack[params.seriesIndex] + '
'; str += '' + params.seriesName + ': ' + params.value + '辆' + '
' str += ' 总量: ' + total + '辆' + '
' return str; }` } ] copied($event) { console.log($event) if ($event.isSuccess) { this.message.success('复制成功'); } } }