今天给客户做个报表,客户是意大利的人,要求饼图显示千分位和人民币符号,不要小数点,ecahrts默认满足不了要求只能自己写方法处理了,直接上代码
title: {text: '产品销量占比',left: 'center'},tooltip: {trigger: 'item',formatter:function (params) {var data=params.data;var val=parseInt(data.value);return data.name+':¥'+vm.formatNum(val)+'('+params.percent+'%)'}},legend: {type: 'scroll',orient: 'vertical',right: 10,top: 20,bottom: 20,data: [],selected: true},series: [{name: '产品',type: 'pie',radius: '55%',center: ['40%', '50%'],label: {normal: {formatter: '{d}%'}},data: [],emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]
用到的vm.formatNum代码如下
vm.formatNum=function(strNum) {if(strNum.length <= 3) {return strNum;}if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(strNum)) {return strNum;}var a = RegExp.$1,b = RegExp.$2,c = RegExp.$3;var re = new RegExp();pile("(\\d)(\\d{3})(,|$)");while(re.test(b)) {b = b.replace(re, "$1,$2$3");}return a + "" + b + "" + c;}
注意:上面代码里面的data我是在外面赋值的,主要方法就是formatter对应的方法
下面是效果图