美文网首页
echarts 图片下载事件

echarts 图片下载事件

作者: Lingli_yu | 来源:发表于2019-05-11 19:42 被阅读0次

echarts 是Baidu 开源的一款图表库,因其配置开发的方式,倍受开发者的青睐。

最近的项目中,也采用的echarts 作为图表库。项目中要求集成用户数据行为收集系统 IDIS(类似countly),其中统计要求统计用户下载图表的次数。echarts 文档配置手册中,toolbox 中可以配置自定义控件,代码如下:

toolbox: {
    feature: {
        myTool2: {
            show: true,
            title: '自定义扩展方法',
            icon: 'image://http://echarts.baidu.com/images/favicon.png',
            onclick: function (){
                alert('myToolHandler2')
            }
        }
}

以上代码可以让开发者自定义toolbox控件样式以及事件回调,但是无法满足下载图片后埋点的需求。但是实际上,自定义事件中的函数附带一个参数,参数包含echarts options 以及其实例以及一些实例方法,我们可以采用这个实例方法实现图片下载后埋点的需求:

toolbox: {
  feature: {
    myTool: {
      show: true,
      onclick: function (params) {
         // params.scheduler.ecInstance 获取图表实例,并配置生成图片的属性
        const dataSource = params.scheduler.ecInstance.getDataURL({
          type: 'png',
          pixelRatio: 2,
          backgroundColor: '#fff'
        });
        // 本地将canvas 图片导出成图片,并下载
        const MIME_TYPE = 'image/png';
        const dlLink = document.createElement('a');
        dlLink.download  = 'Near Miss.png';
        dlLink.href = dataSource;
        dlLink.dataset.downloadurl = [MIME_TYPE, dlLink.download, dlLink.href].join(':');
        document.body.appendChild(dlLink);
        dlLink.click();
        document.body.removeChild(dlLink);
        UserActionAnalyzeService.recordAction('dashboard', 'dashboard_download_leadership_vs_employee');
      },
      icon: ''  // self define
    }
  }
}

相关文章

网友评论

      本文标题:echarts 图片下载事件

      本文链接:https://www.haomeiwen.com/subject/pilfaqtx.html