echart自定义下载事件

  1 echart本身是提供了下载按钮的,但是有的时候设计稿不是这样的 ,我们就需要自主实现下载方式,这里就介绍base64 转blob的一种方式 ,还有一种canvas的方式有空再补上.

   代码如下

//自定义下载表格图片
 //base64转blob
        
export function downloadPic(id,name){
  let content = id.getDataURL();                       // 这个方法是经过封装之后的,id就是我们最终经过init(),setOptions的echart图表,它具有getDataURL()方法
  let aLink = document.createElement('a');
  let blob = base64ToBlob(content);
  let evt = document.createEvent("HTMLEvents");
  evt.initEvent("click", true, true);
  aLink.download = `${name}.png`;
  aLink.href = URL.createObjectURL(blob);
  aLink.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));
}


function base64ToBlob(code) {
    let parts = code.split(';base64,');
    let contentType = parts[0].split(':')[1];
    let raw = window.atob(parts[1]);
    let rawLength = raw.length;

    let uInt8Array = new Uint8Array(rawLength);

    for (let i = 0; i < rawLength; ++i) {
           uInt8Array[i] = raw.charCodeAt(i);
      }
      return new Blob([uInt8Array], { type: contentType });
}

  这样我们就可以在任意的地方提供下载按钮  文字...

上一篇:C++ Primer 5th笔记(chap 16 模板和泛型编程) 类模板的成员函数


下一篇:从word中复制图片到tinymce编辑器中