新建一个Excel.js文件
import request from '@/router/axios'
export function getExcelDownload(url, params,name) {
return request({
url: url,
data: params,
headers: {
'Content-Type': 'application/json; application/octet-stream',
},
responseType: 'blob',
method: 'post',
})
.then((response) => {
const header = new Blob([response.data], { type: 'application/vnd.ms-excel' })
const url = window.URL.createObjectURL(header)
const link = document.createElement('a') // 创建a标签
link.href = url
link.download = name//文件名
document.body.appendChild(link)
link.click() // 执行下载
document.body.removeChild(link) // 释放标签
})
.catch((error) => {
console.log('下载excelerror', error)
})
}
导入到你封装的api
import { getExcelDownload } from '@/uitl/Excel.js'
export const exportCustomer = (params,name) => {//-导出
return getExcelDownload('接口/接口/xx/xx', params,name)//name文件名
}
2.图片下载
//url图片链接
downloadFile(url){
let image = new Image()
image.setAttribute('crossOrigin', 'anonymous')
image.src = url
image.onload = () => {
let canvas = document.createElement('canvas')
canvas.width = image.width
canvas.height = image.height
let ctx = canvas.getContext('2d')
ctx.drawImage(image, 0, 0, image.width, image.height)
canvas.toBlob((blob) => {
let url = URL.createObjectURL(blob)
this.download(url)
// 用完释放URL对象
URL.revokeObjectURL(url)
})
}
},
download(href) {
let eleLink = document.createElement('a')
eleLink.download = "二维码" //文件名
eleLink.href = href
eleLink.click()
eleLink.remove()
}