首页 > 其他分享 >download.js (实例2)下载

download.js (实例2)下载

时间:2022-11-04 11:44:10浏览次数:39  
标签:console name url res baseURL js 实例 blob download

调用

    this.$download.url('/api/v1/org/question/exportData', datVal, `${this.questMess.name}.xlsx`);

js文件

import { saveAs } from 'file-saver'
import axios from 'axios'
import { getToken } from '@/utils/util'
import { tansParams } from "@/utils/ruoyi";
// const baseURL = process.env.VUE_APP_API_URL
//const baseURL = 'https://rly.zgshzyp.com'
//const baseURL = 'http://localhost:8080'
// console.log(baseURL)
// var baseURL = ''
// if (process.env.NODE_ENV == 'production') {
//     baseURL = process.env.VUE_APP_API_URL
// } else if (process.env.NODE_ENV == 'test') {
//     baseURL = process.env.VUE_APP_API_URL
// } else if (process.env.NODE_ENV == 'test1') {
//     baseURL = process.env.VUE_APP_API_URL
// }

export default {
    // + "&delete=" + isDelete
    //如果这里设置值 又不传参 导致后台报错 默认传Y
    name(urlBase, name, isDelete = true) {
        // var url = baseURL + "/api/v1/common/downloadTemple?fileName=" + encodeURI(name)
        var url = urlBase
        console.log(url)
        let index = url.lastIndexOf(".")
        let strType = urlBase.substring(index, url.length);
        let newName = name + strType
        console.log(newName)
        // return
        axios({
            method: 'get',
            url: url,
            responseType: 'blob',
            headers: { 'Authorization': 'Bearer ' + getToken() }
        }).then(res => {
            console.log('再这里开始的')
            // console.log(res)
            // console.log(res.data)
            // console.log(res.headers)
            // console.log(res.headers['download-filename'])
            // console.log(name)
            // console.log('end')
            const blob = new Blob([res.data])
            // this.saveAs(blob, decodeURI(res.headers['download-filename']))
            this.saveAs(blob, newName)
        })
    },
    resource(resource) {
        var url = baseURL + "/api/v1/common/download/resource?resource=" + encodeURI(resource);
        axios({
            method: 'get',
            url: url,
            responseType: 'blob',
            headers: { 'Authorization': 'Bearer ' + getToken() }
        }).then(res => {
            const blob = new Blob([res.data])
            this.saveAs(blob, decodeURI(res.headers['download-filename']))
        })
    },
    zip(url, name) {
        var url = baseURL + url
        axios({
            method: 'get',
            url: url,
            responseType: 'blob',
            headers: { 'Authorization': 'Bearer ' + getToken() }
        }).then(res => {
            const blob = new Blob([res.data], { type: 'application/zip' })
            this.saveAs(blob, name)
        })
    },
    // ly20221031 url,params
    url(urlBase,params, name,type) {
        
        var url = urlBase
        axios({
            method: type||'post',
            url: url,
            params,
            responseType: 'blob',
            data:params,
            headers: { 'Authorization': 'Bearer ' + getToken() }
        }).then(res => {
            const blob = new Blob([res.data])
            this.saveAs(blob, name)
        })
    },

    saveAs(text, name, opts) {
        saveAs(text, name, opts);
    }
}

 

标签:console,name,url,res,baseURL,js,实例,blob,download
From: https://www.cnblogs.com/dianzan/p/16857221.html

相关文章

  • el-dialog 或dialog 封装 通过js控制
    1.通用组件封装dialogImg.vue<template><div><el-dialogv-show="isShow":visible.sync="isShow"width="50%"@close="seePicUrl='......
  • ArcGIS JS API 添加要素图层 点击时获取图层属性
    //需要引入:"esri/layers/FeatureLayer"模块//要素图层被点击时弹出图层属性的模板定义{为字段}varTuCeng03TC={"title":"ID:{objectid}",......
  • Vue、Three.js实现全景图
    一、首先我们需要创建一个Vue工程本文主要详细记录搭建全景图的过程,故搭建Vue工程不在过多描述。二、安装Three.jsnpminstallthree--savenpminstallthree-trackba......
  • JSON
    数据交换格式1、什么是数据交换格式数据交换格式,就是服务器端与客户端之间进行数据传输与交换的格式。前段领域,经常提及的两种数据交换格式分别是XML和JSON。其中......
  • js踩坑记录-数组
    数组比较eg1:以为打印出的是true,但是是false,原因是数组是引用数据类型,比较的时候比较的是地址,所以是不相等的。在C++中,数组也是不能通过这种方式比较的。但是python是可以......
  • 2022-11-04 js foreach 三重循环
    letarr=[];req.data.forEach((e,k1)=>{letobj={};obj.value=e.content;obj.children=[];obj.expand=false;if(e.children){e.child......
  • 为什么JSON.parse会损坏大数字,如何解决这个问题?
    为什么大数字会被JSON.parse破坏?像 9123372036854000123 这样的长数字既是有效的JSON也是有效的JavaScript。当JavaScript将数值解析为数字时,事情就出错了。最初,Jav......
  • JS模拟给按钮上锁
    为了防止用户连续点击一个按钮而导致代码处理错乱,可参考以下代码为按钮上锁:varfeedbtnlock=0;if(feedbtnlock==0){feedbtnlock=1;setTimeout(function(......
  • JS优化
    1.带有多个条件的if语句把多个值放在一个数组中,然后调用数组的includes方法。//longhandif(x==='abc'||x==='def'||x==='ghi'||x==='jkl'){//......
  • js高级
    面向对象面向过程的思维方式:就是把解决问题的关注点放到解决问题的每一个详细步骤上;面向对象的思维方式:就是把解决问题的关注点放到解决问题需要的一系列对象身上。面......