download.js (实例2)下载

调用

    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);
    }
}

 

posted @ 2022-11-04 11:38  ThisCall  阅读(209)  评论(0编辑  收藏  举报