vue-文件导出

话不多说,直接上代码

  //导出按钮
exportClick() {
        //导出接口
      transcriptExport().then(res => {
        console.log(res);
        let blob = new Blob([res], {
          type: "text/xml",  //导出文件类型
        })
        let fileName = 'filename.docx';   //文件名称
        // 允许用户在客户端上保存文件
        if (window.navigator.msSaveOrOpenBlob) {
          navigator.msSaveBlob(blob, fileName);
        } else {
          var link = document.createElement("a"); //定义一个a标签
          link.href = window.URL.createObjectURL(blob); //需要生成一个 URL 来实现下载,链接到blob上
          link.download = fileName; //下载后的文件名称
          link.click();
          console.log("fileName", link);
        }
      }).catch((err) => {
        console.log(err);
      });
    }

注意:服务器响应的数据类型 —> responseType: 'blob'

//manage.js
import instance from '@/utils/request'
export function getExAction(url, parameter) {
  return instance({
    url: url,
    method: 'get',
    responseType: 'blob', //服务器响应的数据类型
    params: parameter,
  })
}


//api.js
import { getExAction } from '@/api/manage'
export function transcriptExport(memberId) {
    return getExAction(`/admin/party/transcript/detail/export/${memberId}`)
}



//request.js
import axios from "axios";
const baseURL = process.env.VUE_APP_BASE_API || "/api";
axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
// 创建axios实例
const service = axios.create({
  // axios中请求配置有baseURL选项,表示请求URL公共部分
  baseURL,
  withCredentials: true,
  // 超时
  timeout: 10000,
});
// request拦截器
service.interceptors.request.use(
  (config) => {}
  (error) => {}
);
// 响应拦截器
service.interceptors.response.use(
    (res)=>{}
    (error)=>{}
);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值