handleDownload(row) { const { id, pictureurllist } = row if (pictureurllist && pictureurllist[0]) { const { fileservicepath, filesuffix, title } = pictureurllist[0] const isImg = ['jpg', 'jpeg', 'png'].includes(filesuffix) console.log(isImg) if (isImg) { this.downloadIamge(fileservicepath, title) } else { window.open(fileservicepath) } } }, downloadIamge(imgsrc, name) { let image = new Image() // 解决跨域 Canvas 污染问题 image.setAttribute('crossOrigin', 'anonymous') image.onload = function () { let canvas = document.createElement('canvas') canvas.width = image.width canvas.height = image.height let context = canvas.getContext('2d') context.drawImage(image, 0, 0, image.width, image.height) let url = canvas.toDataURL('image/png') //获得图片的base64编码数据 let a = document.createElement('a') // 生成一个a元素 let event = new MouseEvent('click') // 建立一个单击事件 a.download = name || 'photo' // 设置图片名称 a.href = url // 将生成的URL设置为a.href属性 a.dispatchEvent(event) // 触发a的单击事件 } image.src = imgsrc }