前端导出(下载)

该代码段展示了在Vue应用中如何利用axios库进行POST请求,从后台接口导出Excel文件。它涉及到store获取用户Token和ID,设置请求头,以及利用Blob对象处理响应数据以实现文件下载功能。
import { BASE_URL } from '@/config'  //基本路径(根据项目封装情况决定)
import axios from 'axios'
import store from '@/store'
import router from '@/router'

/* 导出(POST)
   url:接口地址
   data:参数
   name:导出表格名称.xls
*/
export const exportExcelPost = (url, data, name) => {
  try {
    axios({
      method: 'post',
      url: `${BASE_URL}${url}`,
      timeout: 3 * 1000 * 60,
      headers: {
        userToken: store.getters.token,
        userId: store.getters.id,
        referers: router.app._route.meta.role
      },
      responseType: 'blob',
      data
    }).then(result => {
      const link = document.createElement('a')
      let blob = new Blob([result.data], {
        type: 'application/octet-stream'
      })
      link.style.display = 'none'
      link.href = URL.createObjectURL(blob)
      link.download = `${name}`
      document.body.appendChild(link)
      link.click()
      document.body.removeChild(link)
    })
  } catch (error) {
    console.log(error)
  }
}

 ps:调用后端接口即可,uri:接口地址;data:参数;name:导出文件名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值