导出 vue

 导出一个压缩包

zipPost('/system/data/downloadFillingMonthFileZip',this.queryParams).then(async res=> {
     const isBlob = await blobValidate(res.data)
     if(isBlob) {
         let url = window.URL.createObjectURL(res.data);  //生成文件流
         let newDownloadHref = document.createElement('a');
         newDownloadHref.href = url;
         newDownloadHref.download = '444' + '.zip'
         document.body.appendChild(newDownloadHref);
         newDownloadHref.click();
         window.URL.revokeObjectURL(url);//释放 url 对象内存
         document.body.removeChild(newDownloadHref);
      }else {
          const r = await res.data.text()
          let data = JSON.parse(r)
          this.$message({
                message: data.msg,
                type: 'error'
          });
     }
})


export function zipPost(url, data) {
  var url = process.env.VUE_APP_BASE_API + url;
  return axios({
    method: 'post',
    url: url,
    data: data,
    responseType: 'blob',
    headers: { 'Authorization': 'Bearer ' + getToken() }
  })
}


                

 导出文件流

export function yearExport(data) {
  return request({
    url: '/system/data/year/export',
    method: 'post',
    data: data,
    responseType: 'blob', // 重点,responseType设置为 blob
  })
}


yearExport().then(res => {
     console.log(res); // 控制台输出:Blob {size: 30208, type: 'application/x-msdownload'}
     var debug = res;
     if (debug) {
        var elink = document.createElement('a');
        elink.download = '导出表格.xls';
        elink.style.display = 'none';
        var blob = new Blob([debug], { type: 'application/x-msdownload' });
        elink.href = URL.createObjectURL(blob);
        document.body.appendChild(elink);
        elink.click();
        document.body.removeChild(elink);
     } else {
        this.$message.error('导出异常请联系管理员');
     }).catch(err => {
      console.log(err);
     });
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值