File tree Expand file tree Collapse file tree 3 files changed +81
-3
lines changed Expand file tree Collapse file tree 3 files changed +81
-3
lines changed Original file line number Diff line number Diff line change 1+ import { Donut } from '../../src' ;
2+
3+ describe ( 'Statistics scale format' , ( ) => {
4+ const canvasDiv = document . createElement ( 'div' ) ;
5+ canvasDiv . style . width = '600px' ;
6+ canvasDiv . style . height = '600px' ;
7+ canvasDiv . style . left = '30px' ;
8+ canvasDiv . style . top = '30px' ;
9+ canvasDiv . id = 'canvas1' ;
10+ document . body . appendChild ( canvasDiv ) ;
11+
12+ it ( 'test' , ( ) => {
13+ const data = [
14+ {
15+ type : '分类一' ,
16+ value : 27 ,
17+ } ,
18+ {
19+ type : '分类二' ,
20+ value : 25 ,
21+ } ,
22+ {
23+ type : '分类三' ,
24+ value : 18 ,
25+ } ,
26+ {
27+ type : '分类四' ,
28+ value : 15 ,
29+ } ,
30+ {
31+ type : '分类五' ,
32+ value : 10 ,
33+ } ,
34+ {
35+ type : '其它' ,
36+ value : 5 ,
37+ } ,
38+ ] ;
39+
40+ const donutPlot = new Donut ( canvasDiv , {
41+ forceFit : true ,
42+ title : {
43+ visible : true ,
44+ text : '环图' ,
45+ } ,
46+ description : {
47+ visible : true ,
48+ text : '环图的外半径决定环图的大小,而内半径决定环图的厚度。' ,
49+ } ,
50+ meta : {
51+ value : {
52+ formatter : ( v ) => `-${ v } -` ,
53+ } ,
54+ } ,
55+ radius : 0.8 ,
56+ padding : 'auto' ,
57+ data,
58+ angleField : 'value' ,
59+ colorField : 'type' ,
60+ animation : false ,
61+ } ) ;
62+ donutPlot . render ( ) ;
63+ // @ts -ignore
64+ expect ( donutPlot . getLayers ( ) [ 0 ] . labelComponent . arcPoints [ 0 ] . name ) . toBe ( '-27-' ) ;
65+ expect ( canvasDiv . getElementsByClassName ( 'ring-guide-value' ) [ 0 ] . textContent ) . toBe ( '-100-' ) ;
66+ } ) ;
67+ } ) ;
Original file line number Diff line number Diff line change @@ -88,8 +88,19 @@ export default class RingStatistic extends StatisticHtml {
8888 }
8989
9090 private parseStatisticData ( data ) {
91- const { angleField, colorField } = this . plot . options ;
92- return colorField ? { name : data [ colorField ] , value : data [ angleField ] } : data [ angleField ] ;
91+ const plot = this . plot ;
92+ const { angleField, colorField } = plot . options ;
93+ const angleScale = plot . getScaleByField ( angleField ) ;
94+ const colorScale = plot . getScaleByField ( colorField ) ;
95+
96+ if ( colorField ) {
97+ return {
98+ name : colorScale . getText ( data [ colorField ] ) ,
99+ value : angleScale . getText ( data [ angleField ] ) ,
100+ } ;
101+ }
102+
103+ return angleScale . getText ( data [ angleField ] ) ;
93104 }
94105
95106 private getStatisticTemplate ( data ) {
Original file line number Diff line number Diff line change @@ -347,7 +347,7 @@ export default abstract class PieBaseLabel {
347347 const angle = ( startAngle + endAngle ) / 2 ;
348348 const point = getEndPoint ( center , angle , radius ) ;
349349 startAngle = endAngle ;
350- const name = ` ${ originData [ angleField ] } ` ;
350+ const name = scale . getText ( originData [ angleField ] ) ;
351351 const textAlign = point . x > center . x ? 'left' : 'right' ;
352352
353353 return {
You can’t perform that action at this time.
0 commit comments