export function downLoad(_url, _method, _data,_newFileName) {
let baseURL = window.location.protocol + '//' + window.location.host + process.env.VUE_APP_BASE_API;
function createObjectURL(object) {
return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}
let xhr = new XMLHttpRequest()
let url = baseURL + _url;
if (url.indexOf("?") == -1) {
url = url + "?nowtimes=" + new Date().getTime();
} else {
url = url + "&nowtimes=" + new Date().getTime();
}
xhr.open(_method, url)
xhr.setRequestHeader('Authorization', getToken())
xhr.responseType = 'blob'
let formData = new FormData();
if (_method == 'post') {
formData = {};
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8')
for (let key in _data) {
formData[key] = _data[key];
}
formData = JSON.stringify(formData);
}
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
//取出下载文件名
let fileName = decodeURI(xhr.getResponseHeader('content-disposition').split(';')[1].split('=')[1]);
if (_newFileName) {
let fileSuffix = fileName.substring(fileName.lastIndexOf('.'));
fileName = _newFileName + fileSuffix
}
if(!!window.ActiveXObject || "ActiveXObject" in window){
console.log('ie浏览器')
var data = xhr.response;
var blob = new Blob([data], { type: "application/vnd.ms-excel" });
window.navigator.msSaveOrOpenBlob(blob, fileName);
}else{
console.log('非ie浏览器')
const blob = new Blob([xhr.response])
let url = window.URL.createObjectURL(blob)
//创建一个a标签元素,设置下载属性,点击下载,最后移除该元素
let link = document.createElement('a')
link.href = url
link.style.display = 'none'
link.setAttribute('download', fileName)
link.click()
window.URL.revokeObjectURL(url)
}
}
}
xhr.send(formData);
}