后端返回文件流格式,前端vue 导出下载表格

//日期时间格式化

export const formatDate = (edate, type) => {

  var date = new Date(edate);

  var year = date.getFullYear(); //年

  var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; //月

  var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); //日

  var hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(); //时

  var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); //分

  var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); //秒

  var milliseconds = date.getMilliseconds() < 10 ? "0" + date.getMilliseconds() : date.getMilliseconds(); //毫秒

  if (type == 1) {

      return year + "-" + month + "-" + day + "   " + hour + ":" + minutes + ":" + seconds + "." + milliseconds;

  } else if (type == 2) {

      return year + "-" + month + "-" + day + "   " + hour + ":" + minutes + ":" + seconds;

  } else if (type == 3) {

      return year + "-" + month + "-" + day;

  } else if (type == 4) {

      return year + '' + month;

  }

};

// 根据后端返回的blob数据进行下载导出

export function getDownload(res,name) {

    const blob = new Blob([res]);

    // const blob = new Blob([res], {

    //   type: "application/vnd.ms-excel;charset=utf-8",

    // });

    // const fileName = res.headers["content-disposition"].split("=")[1];

    const elink = document.createElement("a");

    elink.download = window.decodeURIComponent(name);

    elink.style.display = "none";

    elink.href = URL.createObjectURL(blob);

    document.body.appendChild(elink);

    elink.click();

    URL.revokeObjectURL(elink.href); // 释放URL 对象

    document.body.removeChild(elink);

  }

  /* 深拷贝 */

  export const deepClone = (obj) => {

    let result = typeof obj.splice === "function" ? [] : {};

    if (obj && typeof obj === 'object') {

        for (let key in obj) {

            if (obj[key] && typeof obj[key] === 'object') {

                result[key] = deepClone(obj[key]); //如果对象的属性值为object的时候,递归调用deepClone,即在吧某个值对象复制一份到新的对象的对应值中。

            } else {

                result[key] = obj[key]; //如果对象的属性值不为object的时候,直接复制参数对象的每一个键值到新的对象对应的键值对中。

            }

        }

        return result;

    }

    return obj;

}

导出vue页面引用

import { getDownload } from "@/utils/comp.js";

// 导出

    downLoadTemplete() {

      this.$http

        .getDownLoadRequest("/sso-management/user/downloadTemp", {})

        .then((res) => {

           //  引入直接调用,传入参数

          getDownload(res.data, "用户模板.xlsx");

        });

    },

export const getDownLoadRequest = (url, params,) => {

    return axios({

        method: 'get',

        url: `${url}`,

        responseType: 'blob', // 需要设置blob类型

        headers: {

            'Content-Type': 'application/json'

        },

        data: params

    });

};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

家装新宠!装修APP开发解决方案,为业主提供全新装修模式

随着人们对家庭装修的需求度越来越高&#xff0c;装修APP开发也随之出现。如今装修APP开发可实现互联网与传统家装行业的信息结合&#xff0c;由传统的家装行业广告模式向移动端的互联网模式进行转移&#xff0c;实现传统家装行业与互联网的相辅相成&#xff0c;以此来推动家装…

电商核心技术揭秘54: 粉丝经济的挖掘与利用

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘相关系列文章合集&#xff08;3&#xff09; 电商技术揭秘四十一&#xff1a;电商平台的营销系统浅析 电商技术揭秘四十二&#…

2024年华为OD机试真题-螺旋数字矩阵-C++-OD统一考试(C卷D卷)

题目描述: 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数n和行数m(0 < n ≤ 999,0 < m ≤ 999),从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3...n,最终形成一个m行矩阵。 小明对这个矩阵有些要求: 1.每行数字的…

一、数据结构的三要素

数据的存储结构&#xff1a;顺序&#xff08;物理位置相邻&#xff09;、链式&#xff08;物理位置不相邻&#xff09;、索引&#xff08;还需要建立索引表&#xff09;、散列&#xff08;根据关键字直接计算出该元素的存储地址又称为hash存储&#xff09;、 时间复杂度&#x…

接口(Interface)和抽象类(Abstract Class)编程思想

目录 抽象类(Abstract Class)编程思想 接口(Interface)编程思想 接口(Interface)和抽象类(Abstract Class)是面向对象编程(OOP)中的两个重要概念,它们都是用于实现代码重用和定义共同行为的方式,但各自有其独特的应用场景和编程思想。 抽象类(Abstract Class)编程思…

6.5.Docker数据管理和端口映射应用

文章目录 实战总体步骤案例1:安装tomcat&#xff08;端口映射使用&#xff09;案例2:安装mysql&#xff08;数据卷应用&#xff09;测试版实战版 案例3:安装Redis&#xff08;数据卷应用&#xff09; 实战总体步骤 搜索镜像 可以在Dockerhub中查看容器如何使用&#xff0c;包括…

js原生三种弹框

第一种&#xff1a; alert("提示内容")&#xff1a;提示弹框&#xff1b; alert("提示"); 第二种&#xff1a; prompt("内容","输入框默认值")&#xff1a;输入弹框&#xff0c;第一个值输入框提示内容&#xff0c;第二个值输入框默…

23种设计模式——责任链

责任链模式是一种行为设计模式&#xff0c;它允许将请求沿着处理链传递&#xff0c;直到有一个处理者能够处理该请求为止。责任链模式将请求的发送者和接收者解耦&#xff0c;使得多个对象都有机会处理请求&#xff0c;同时也可以动态地组织和修改处理链。 在责任链模式中&…

【SpringSecurity源码】过滤器链加载流程

theme: smartblue highlight: a11y-dark 一、前言及准备 1.1 SpringSecurity过滤器链简单介绍 在Spring Security中&#xff0c;过滤器链&#xff08;Filter Chain&#xff09;是由多个过滤器&#xff08;Filter&#xff09;组成的&#xff0c;这些过滤器按照一定的顺序对进…

AI绘画Stable Diffusion 插件篇:智能标签提示词插件sd-danbooru-tags-upsampler

大家好&#xff0c;我是向阳。 关于智能标签提示词插件&#xff0c;在很早之前就介绍过很多款了&#xff0c;今天再给大家介绍一款智能标签提示词插件sd-danbooru-tags-upsampler。该智能提示词插件是今年2月23号才发布的第一版V0.1.0&#xff0c;算是比较新的智能提示词插件。…

简化多容器应用部署:深入理解 Docker Compose

Docker Compose 已成为现代应用开发和部署的核心工具之一。它为开发者提供了一种简单且高效的方式来定义、运行和管理多容器应用程序。无论是在本地开发环境还是生产环境中&#xff0c;Docker Compose 都能够帮助开发团队快速搭建、部署和扩展复杂的应用系统。本文将深入探讨 D…

第100+7步 ChatGPT文献复现:ARIMA-GRNN预测出血热

基于WIN10的64位系统演示 一、写在前面 这一次&#xff0c;我们来解读ARIMA-GRNN组合模型文章&#xff0c;也是老文章了&#xff1a; 《PLoS One》杂志的2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal…

代码随想录 动态规划 刷题记录

动态规划 动规的五部曲: 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组509.斐波那契数列 70.爬楼梯 746.使用最小花费爬楼梯 62.不同路径 63.不同路径II 343.整数拆分 96.不同的二叉搜索树 本轮树可以分为当1,2,3……

uni-app(五):原生插件打包并使用(Android)

原生插件打包并使用 解决Gradle不显示命令问题解决方法 运行打包查看打包好的包引入到uni-app项目中编写配置文件TestModuleTestComponent 制作基座并运行 解决Gradle不显示命令问题 解决方法 运行打包 查看打包好的包 引入到uni-app项目中 编写配置文件 TestModule {"n…

vue2 Avoided redundant navigation to current location

再次点击同一个链接会报错 每次使用 push 方法时带上两个回调函数 this.$router.push({name: item.name}, ()>{}, ()>{}) //第二、第三个参数分别为成功和失败的回调函数重写 Vue-router 原型对象上的 push 函数不行 https://blog.csdn.net/weixin_43615570/article/d…

Linux -- Git

Git Git 是一个开源的分布式版本控制系统&#xff0c;主要用于软件开发中的源代码管理。它由 Linus Torvalds 创建&#xff0c;也是 Linux 内核的开发者。Git 使得多个开发者可以在同一个项目上协作&#xff0c;而不会相互干扰。它允许开发者在本地计算机上创建多个分支&#…

番外篇 | YOLOv8改进之利用SCINet解决黑夜目标检测问题 | 低照度图像增强网络

前言:Hello大家好,我是小哥谈。自校正照明网络(Self-Calibrating Illumination Network, SCINet)是一种基于深度学习的图像照明算法,可以自动分析图像的内容并根据图像内容自动优化照明。SCINet是一种专为低光照图像增强设计的框架。它通过级联照明学习过程和权重共享机制…

Php php7的特性

1. 性能优化 PHP7引入了Zend Engine 3.0&#xff0c;显著提高了执行效率&#xff0c;相比PHP 5.x&#xff0c;性能提升了2-3倍。这个特性无法直接通过代码示例展示&#xff0c;但你可以感受到在升级到PHP7后&#xff0c;相同代码的执行速度更快。 2. 函数返回类型声明 允许在…

【系统分析师】软件架构设计

文章目录 1、构件与软件复用1.1 主流构件标准1.2 构件获取与管理1.3 构件复用的方法 2、软件架构概述3、软件架构建模4、软件架构风格4.1 经典架构风格4.2 层次架构风格4.3 富互联网应用-RIA 5、面向服务的架构5.1 SOA概述5.2 SOA的关键技术5.3 SOA的实现方法 6、软件架构评估6…

Nginx - server、listen、server_name和多服务请求处理(三)

server 上下文 server { }server指令用于配置一个虚拟服务。listen指令描述了本服务可接受链接的所有地址和端口&#xff0c;server_name指令列举了所有服务的名字&#xff0c;例如 server {listen 80;server_name example.org www.example.org; }listen 指令 Syntax: …