简单粗暴:见下图;

import axios from "axios";
let isLoadingExport = ref(false);
async function exportExcel() {
  isLoadingExport.value = true;
  let url ='/api/admin/order/orderOutExcel'  //url
  try {
    let res = await axios.post(url, queryForm, {
      headers: {
        Authorization: "Bearer " + proxy.$storage.getItem("userInfo").token,
        token: proxy.$storage.getItem("userInfo").token,
      },
      responseType: "blob", //响应体类型设置 关键!!
    });
    isLoadingExport.value = false;
    const xlsx = "application/vnd.ms-excel;charset=utf-8";
    const blob = new Blob([res.data], { type: xlsx });
    const a = document.createElement("a"); 
    a.download = "OrderTable";
    a.href = window.URL.createObjectURL(blob);  //生成文件对象的url
    a.click();
    a.remove();
    proxy.$message.success("导出成功");
  } catch (error) {
    proxy.$message.error("导出失败");
  } finally {
    isLoadingExport.value = false;
  }
  // window.URL.revokeObjectURL(blob);
}

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐