项目场景:
在项目中通过饼状图对获取到的数据进行一个显示。
问题描述
通过ucharts中的饼状图来进行数据的显示,通过labelText属性自定义饼状图标签文字,但发现有些数据太长,超出屏幕无法显示。如图:
![](https://img-blog.csdnimg.cn/be1909f7d6584302aea60d3979bc337c.png)
![](https://img-blog.csdnimg.cn/d5677e81d21447429308b42a9e86a655.png)
解决方案:
1.可以进行饼状图半径的缩小 opts.extra.pie.customRadius:?
也可以将标签文字缩小 opts.fontSize:?
但这两种方法不太好,因为无法保证文字的长度,图或字太小体验也不行。
2.进行文字的换行,但ucharts现版本不支持换行,无论是在labelText还是自定义format中添加\n,ucharts在显示时都不会换行,而是被替换成一个空格,如图:
![](https://img-blog.csdnimg.cn/52371551774b432abe4d365f50823d16.png)
虽然不可以进行换行,但可以对其显示进行控制,比如文字数大于6就对其进行省略,方法如下:
1.找到config.ucahrts.js这个文件,在"formatter":这个对象中自定义显示函数
![](https://img-blog.csdnimg.cn/26d872eb0a824f2ba49d6cd3843d6140.png)
2.在数据配置中进行声明使用自定义函数format,并赋值(basicChartData为组件props:chartData;使用自定义函数,则不能再使用labelText,否则format不起作用)
![](https://img-blog.csdnimg.cn/3e6ec6b4a5dc4c1482c917347e9321c0.png)
最终效果如图:
![](https://img-blog.csdnimg.cn/15bae1cf01ae4d32b33f14438c955db2.png)
![](https://img-blog.csdnimg.cn/9e3cd342e7e74773a88dc16d161504fc.png)
但用户体验不好,因为有时屏幕足够大能够显示全却还是会显示省略号。
3.使用echarts,echarts支持换行。