| 12345678910111213141516171819202122232425262728293031323334353637383940 | import axios from 'axios'import { getToken } from '@/utils/auth'const mimeMap = {  xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',  zip: 'application/zip'}const baseUrl = process.env.VUE_APP_BASE_APIexport function downLoadZip(str, filename) {  var url = baseUrl + str  axios({    method: 'get',    url: url,    responseType: 'blob',    headers: { 'Authorization': 'Bearer ' + getToken() }  }).then(res => {    resolveBlob(res, mimeMap.zip)  })}/** * 解析blob响应内容并下载 * @param {*} res blob响应内容 * @param {String} mimeType MIME类型 */export function resolveBlob(res, mimeType) {  const aLink = document.createElement('a')  var blob = new Blob([res.data], { type: mimeType })  // //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名;  var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')  var contentDisposition = decodeURI(res.headers['content-disposition'])  var result = patt.exec(contentDisposition)  var fileName = result[1]  fileName = fileName.replace(/\"/g, '')  aLink.href = URL.createObjectURL(blob)  aLink.setAttribute('download', fileName) // 设置下载文件名称  document.body.appendChild(aLink)  aLink.click()  document.body.appendChild(aLink)}
 |