vue實現點選按鈕,儲存Echarts圖片到本地(不是Echarts自帶的下載功能---外部按鈕)
阿新 • • 發佈:2020-12-18
技術標籤:vue+element疑難雜症element踩坑vue.jsjavascript
元件內外部按鈕新增點選事件@click="downloadFile"即可,下邊程式碼copy可!
不過最重要的是理解,csdn隨時線上,歡迎騷擾!!!
// 點選儲存下載圖片
downloadFile() {
let aLink = document.createElement('a');
let blob = this.base64ToBlob();
let evt = document.createEvent('HTMLEvents' );
evt.initEvent('click', true, true);
aLink.download = "積分趨勢效果統計圖"; //下載圖片的名稱
aLink.href = URL.createObjectURL(blob);
aLink.click();
},
exportImg() { //echart返回一個 base64 的 URL
let myChart = this.$echarts.init(
document.getElementById ("echarts的Id")
);
return myChart.getDataURL({
type: 'png',
pixelRatio: 1,
backgroundColor: '#fff'
})
},
base64ToBlob() { //將base64轉換blob
let img = this.exportImg();
let parts = img.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
});
},
&最後不要忘了關注點贊噢