echarts 自定义图标调用echarts的下载/保存图片功能

 场景:

图表需要配上一个保存图片的功能,当然,echarts本身自带这个功能,但是由于样式问题,需要在图表自身的外部画下载icon并实现保存图片功能。

因未查到如何从外部直接调用这个功能,所以根据源码的实现方式,又自己封了一下,在此记录一下

左图是echats自带的下载,是可以设置其左中右等位置的,但并不适合我的ui

右图是我封装后的样式 

   

这是官网的保存图片的配置地方  Documentation - Apache ECharts

代码实现: 

/**
 * echarts图表-保存图片
 * @param {*} myChart 图表
 */
export function downloadEchartsImg() {
  var myChart = echarts.getInstanceByDom(this.$refs.myChart);
  var url = myChart.getConnectedDataURL({
    pixelRatio: 5, //导出的图片分辨率比率,默认是1
    backgroundColor: '#fff', //图表背景色
    excludeComponents: [ //保存图表时忽略的工具组件,默认忽略工具栏
      'toolbox'
    ],
    type: 'png' //图片类型支持png和jpeg
  });
  var $a = document.createElement('a');
  var type = 'png';
  $a.download = myChart.getOption().title[0].text + '.' + type;
  $a.target = '_blank';
  $a.href = url;
  // Chrome and Firefox
  if (typeof MouseEvent === 'function') {
    var evt = new MouseEvent('click', {
      view: window,
      bubbles: true,
      cancelable: false
    });
    $a.dispatchEvent(evt);
  }
  // IE
  else {
    var html = ''
      + '<body style="margin:0;">'
      + '<img src="' + url + '" style="max-width:100%;" title="' + myChart.getOption().title[0].text + '" />'
      + '</body>';
    var tab = window.open();
    tab.document.write(html);
  }
}

借鉴来源:https://www.cnblogs.com/chunyangji/p/5818322.html

若大家发现更优的方法,感谢提供! 

猜你喜欢

转载自blog.csdn.net/qq_58340302/article/details/130904833
今日推荐