txw/txw-gxzx-web/src/core/download.js
2026-04-05 15:05:13 +08:00

47 lines
1.4 KiB
JavaScript

import qs from 'querystring';
export const getUA = window.navigator.userAgent.toLowerCase();
export const isIE = !!window.ActiveXObject || 'ActiveXObject' in window;
export const downloadFile = (url, params, t = 'a') => {
let type = t;
const baseURL = window.STATIC_ENV_CONFIG.API_PREFIX;
const paramsUrl = qs.stringify(params);
if (isIE) {
type = 'iframe';
}
if (type === 'a') {
const elink = document.createElement('a');
elink.style.display = 'none';
let href = baseURL + url;
if (paramsUrl) href = `${href}?${paramsUrl}`;
elink.href = href;
elink.download = '下载';
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
} else if (type === 'iframe') {
const iframe = document.createElement('iframe');
const id = 'saveFileFrame';
iframe.id = id;
iframe.style.display = 'none';
iframe.src = '';
document.body.appendChild(iframe);
setTimeout(function loadUrl() {
let href = baseURL + url;
if (paramsUrl) href = `${href}?${paramsUrl}`;
iframe.contentWindow.location.href = href;
document.body.removeChild(iframe);
}, 50);
} else if (type === 'nginx') {
const elink = document.createElement('a');
elink.style.display = 'none';
elink.target = '_block';
elink.href = `/staticfiles/${url}`;
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
}
};