下载文件excel

news/2024/7/24 10:26:54 标签: typescript, javascript, vue.js
//接口
 //群成员数据导出
  async groupMemberDataExportApi(data: any) {
    // return http("/gw-console/v1/data-platform/group-members-data-export", {
    //   method: "GET",
    //   params: data,
    //   responseType: "blob"
    // });
    let url = Serve + "接口地址?";
    for (const k in data) {
      url += `${k}=${data[k]}&`;
    }
    const name = "导出文件名.xlsx";
    const code: number = await downLoadPromise(
      url,
      name,
      LoginManager.getToken() || ""
    );
    return code;
  },
//  ---------
//逻辑
private async groupMemberDataExport() {
    try {
    //此路成功
      await API.groupMemberDataExportApi({
        此处传参数
      });
    } catch (error) {
    //此路error
      console.log(error, "on error");
      this.$message.warning(error.message || "下载失败");
    }
  }
//----------------------------------------
//在接口中:引入两个外部的方法
//1.
import { Serve } from "@/utils/serve";
export const Serve = process.env.VUE_APP_API_ROOT;
//2.
import { downLoadPromise } from "@/utils/down-load";
// 下载文件到本地的方法
export function downLoadPromise(url: string, name: string, token?: string) {
  const promise = new Promise<number>(function(resolve, reject) {
    const x = new XMLHttpRequest();
    x.open("GET", url, true);
    if (token) {
      x.setRequestHeader("Auth-Token", token);
    }
    x.responseType = "blob";
    x.send();
    x.onload = function() {
      if (x.status === 200) {
        const urlResponse = window.URL.createObjectURL(x.response);
        const a = document.createElement("a");
        a.href = urlResponse;
        a.download = name;
        a.click();
        resolve(x.status);
      } else {
        reject(x.status);
      }
    };
  });
  return promise;
}
//3,在接口的最后传token
/**登陆流程相关控制 */
class LoginManager {
  static MOCK_ACCOUNT = "yuruizhi@vchangyi.com"; //本地静默登录账号
  static PASS_WORD = "hOJYZv"; //本地静默登录密码
  // 获取登陆数据
  static getLoginData: () => IUserInfo = function() {
    try {
      return JSON.parse(localStorage.getItem("USERINFO") || "");
    } catch (error) {
      return null;
    }
  };
   // 获取token
  static getToken: () => string | null = function() {
    try {
      return JSON.parse(localStorage.getItem("TOKEN") || "");
    } catch (error) {
      return null;
    }
  };

http://www.niftyadmin.cn/n/1162209.html

相关文章

react中的hooks

react hooks 文章目录react hooksHooks 介绍使用规则useState &#xff08;使用状态&#xff09;&#xff1a;useEffect 处理副作用 &#xff08;生命周期钩子函数&#xff09;useRef 保存引用值useContext&#xff08;使用状态树传参&#xff09;useReduceruseCallback 记忆函…

Elasticsearch基础(二) Elasticsearch技术解析与实战学习

Elasticsearch基础(二) Elasticsearch技术解析与实战学习 Elasticsearch优点 全文搜索 倒排索引 Elasticsearch集群 映射 搜索

textarea换行字符数统计-ios兼容的问题(已angular为例)

textarea换行字符数统计 通过length获取双向绑定的字符串长度时&#xff0c;发现IOS上一个换行占两个字符&#xff0c; 解决&#xff1a;ng-maxLength maxLength ng-maxlength 指令将限制添加到输入字段和表单的验证器中。 ng-maxlength 与 HTML 中的 maxlength 属性不同&a…

MinIO 对象存储服务

MinIO 对象存储服务 目录 MinIO 对象存储服务 MinIO 介绍 容器化支持 MinIO核心概念 Drive和Set MinIO核心流程 数据编码 存储形式 上传和下载流程 MinIO的局限 局限1、搭建集群后&#xff0c;不允许扩容 局限2、大集群最大节点数为32 Docker容器启动 minIO spr…

解决安卓弹出软键盘 页面被顶--软键盘唤起监听

解决安卓弹出软键盘 页面被顶–软键盘唤起监听 安卓设备当唤起软件盘时&#xff0c;页面布局会被软键盘顶起从而整体上移&#xff0c;可通过如下方式解决&#xff1a; var screenHeight document.body.offsetHeight; // 获取视图原始高度var NowHeight null; // 记录软键盘…

分布式事务Seata(一) 分布式事务基础

分布式事务Seata(一) 分布式事务基础 目录 分布式事务Seata(一) 分布式事务基础 分布式事务基础 1.事务 2.本地事务 3.分布式事务 4.分布式事务的场景 分布式事务解决方案 1.全局事务 2.可靠消息服务 3.最大努力通知 4.TCC事务 5.总结 分布式事务基础 1.事务 事…

H5项目:ios中input font-size和font-weight不生效的问题

H5项目 ios中input font-size和font-weight不生效的问题 在H5开发过程中&#xff0c;发现给弹出框的input框设置的字体大小及粗细在ios不生效 解决方法 // 给当前元素添加 text-size-adjust: none;

分布式事务Seata(二) Seata介绍

分布式事务Seata(二) Seata介绍 目录 分布式事务Seata(二) Seata介绍 Seata介绍 Seata主要由三个重要组件组成 Seata的执行流程 Seata实现2PC与传统2PC的差别&#xff1a; Seata亮点 Seata设计 AT模式(业务侵入小) TCC(高性能) saga模式 总结 AT、TCC、Saga、XA 模…