// 下载文件
async downList (item, index) {
let res = await api.downLoadExportList({fileName: item.fileName}, {responseType: "blob"})
this.currentdown = index
let _this = this
try{
if(res) {
let blob = new Blob([res])
// 创建文件流URL
let URL = window.URL || window.webkitURL
let link = URL.createObjectURL(blob)
if(navigator.appVersion.toString().indexOf('.NEF')>0) {
window.navigator.msSaveBlob(blob, this.taskName + dateFtt('yyy.MM.dd', new Date()) + '.xlsx')
} else { // 非IE浏览器
// 创建a标签元素
let downloadElement = document.createElement('a')
// 赋值给a标签
downloadElement.href = link
// 设置文件名称, 可与后端约定
downloadElement.download = _this.tasName + dateFtt('yyy.MM.dd', new Date()) + '.xlsx'
// 将包装好的a标签添加到页面中
document.body.appendChild(downloadElement)
// 触发a标签点击事件
downloadElement.click()
// 移除标签
document.body.removeChild(downloadElement)
// 释放创建的href
window.URL.revokeObjectURL(link)
}
this.currentdown = -1
}else {
translateBlobToJSON(this.responseResult, (_rs) => {
toastTip(_this, {message: _rs.message || '系统异常,稍后再试'})
})
this.currentdown = -1
}
} catch (err) {
errorTip(_this, err)
this.currentdown = -1
}
},
// 生成下载文件的列表(后端提供接口)
通过文件流-下载文件 (结合自己的项目写的, dateFtt()是转换日期格式方法)
于 2021-12-29 00:32:56 首次发布