<div class="line">
<img :src="img" class="w200" ref="canvas" />
<a-icon type="download" class="icon" @click="downloadQrCode" title="下载二维码"></a-icon>
</div>
data() {
return {
img: 'data:image/png;base64,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
}
},
base64ToBlob(base64Str, contentType, sliceSize) {
contentType = contentType || ''
sliceSize = sliceSize || 512
const byteCharacters = atob(base64Str.split(',')[1])
const byteArrays = []
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize)
const byteNumbers = new Array(slice.length)
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i)
}
const byteArray = new Uint8Array(byteNumbers)
byteArrays.push(byteArray)
}
const blob = new Blob(byteArrays, { type: contentType })
return blob
},
downloadQrCode(fileName) {
const blob = this.base64ToBlob(this.img, 'image/png')
const url = URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.download = '二维码' + formatDate(new Date().getTime(), 'MM_dd_hh_mm_ss')
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
URL.revokeObjectURL(url)
},