@@ -8,10 +8,9 @@ import echarts from 'echarts/lib/echarts'
88class BarpieChart extends BaseChart {
99 // build tooltip
1010 static getBarTooltip ( data , settings ) {
11- const { tooltipOptions, childSetting } = settings
11+ const { tooltipOptions, childSetting = { series : { } , legend : { } , legendShow : { } , contentSize : { } } } = settings
1212 const { series, legend, ...others } = childSetting
13- console . log ( others )
14- function returnPieData ( data , dimensionName , sum ) {
13+ function returnPieData ( data , dimensionName ) {
1514 return {
1615 series : {
1716 type : 'pie' ,
@@ -24,7 +23,9 @@ class BarpieChart extends BaseChart {
2423 } ,
2524 tooltip : {
2625 trigger : 'item' ,
27- valueFormatter : ( value ) => value . toLocaleString ( 'en-US' , { maximumFractionDigits : 2 } )
26+ formatter : ( params ) => {
27+ return params . name + ' : ' + params . value + ' (' + params . percent + '%)'
28+ }
2829 } ,
2930 color : [ '#426fff' , '#40adff' , '#3fdace' , '#18bdb0' , '#ffda3e' , '#ffa900' , '#83dd89' , '#bedf65' , '#956bfd' , '#f67bb2' ] ,
3031 animation : false ,
@@ -76,6 +77,9 @@ class BarpieChart extends BaseChart {
7677 percent : true ,
7778 ...childSetting [ 'legendShow' ]
7879 }
80+ const sum = data . reduce ( ( accumulator , currentValue ) => {
81+ return accumulator + currentValue . value
82+ } , 0 )
7983 let p = ( data [ index ] . value / sum * 100 ) . toFixed ( childSetting [ 'toFix' ] || 2 )
8084 let value = data [ index ] . value . toLocaleString ( 'en-US' , { maximumFractionDigits : 2 } )
8185 let thisName = name . length > 10 ? name . substr ( 0 , 10 ) + '...' : name
@@ -95,11 +99,11 @@ class BarpieChart extends BaseChart {
9599 }
96100 }
97101
98- function initPieTooltip ( data , dimensionName , sum ) {
102+ function initPieTooltip ( data , dimensionName ) {
99103 setTimeout ( ( ) => { // 使用延迟机制,先执行formatter的div创建
100104 if ( document . getElementById ( 'pieTooltip' ) !== null ) {
101105 let tooltipChart = echarts . init ( document . getElementById ( 'pieTooltip' ) )
102- tooltipChart . setOption ( returnPieData ( data , dimensionName , sum ) )
106+ tooltipChart . setOption ( returnPieData ( data , dimensionName ) )
103107 }
104108 } , 0 )
105109 }
@@ -126,7 +130,6 @@ class BarpieChart extends BaseChart {
126130 formatter : ( params ) => {
127131 let dax = params [ 0 ] . dataIndex
128132 let childData = data . childData [ dax ]
129- let sum = params [ 0 ] . value [ 1 ]
130133 let dimensionName = childData . map ( item => {
131134 item . icon = item . icon ? item . icon : 'circle'
132135 return item . name
@@ -136,7 +139,7 @@ class BarpieChart extends BaseChart {
136139 height : '200px' ,
137140 ...childSetting [ 'contentSize' ]
138141 }
139- initPieTooltip ( childData , dimensionName , sum )
142+ initPieTooltip ( childData , dimensionName )
140143 return `<div id="tooltip" style="width: ${ contentSize [ 'width' ] } ;height: ${ contentSize [ 'height' ] } +30px;border-radius: 2px;box-shadow: 0 0 20px 0 rgba(110, 117, 145, 0.1);padding: 10px;">${ params [ 0 ] . name } <br/>
141144 <div id="pieTooltip" style="width: ${ contentSize [ 'width' ] } ;height: ${ contentSize [ 'height' ] } ;"></div></div>`
142145 }
0 commit comments