最近做一个数据治理的可视化项目,其中有一个需求是鼠标悬浮于某个div元素,需显示弹窗展示图表,如图所示:
问题:
- 在开始渲染图表时,canvas画布显示的图表大小为固定小正方形无法调节尺寸,设置图表宽高不起作用,且图表无数据;
解决:
- 通过查阅资料分析,原因是element UI组件popover弹窗还没完全展开时,echarts的图表便已经开始渲染,获取不到popover弹窗尺寸图表的渲染也就出现问题;
- 在popover的@after-enter方法中调用插入图表的方法,在此方法中调用获取图表等数据的接口,区分渲染先后顺序。after-enter方法是popover显示动画播放完毕后触发,这时弹窗显示之后canvas画布的图表渲染也都没有问题了。
<el-popover
popper-class="popover_style"
placement="right-start"
width="600"
trigger="hover"
:key="index"
@after-enter="setChartLine(id)"
@hide="cancelChartLine()"
> </el-popover>
after-enter 显示动画播放完毕后触发
hide 隐藏时触发