import axios from 'axios';
|
import apiConfig from './baseurl';
|
|
export const customRequest = (params) => {
|
const { file, onSuccess, onError } = params;
|
uploadObs(file)
|
.then((ret) => {
|
onSuccess(ret);
|
})
|
.catch((ret) => {
|
onError();
|
});
|
};
|
|
export const customUploadRequest = ({ file, onSuccess, onError, action, headers }) => {
|
// 默认 action 为 apiConfig.imgUrl
|
const uploadUrl = action || apiConfig.imgUrl;
|
// 默认 headers 带上 Authorization
|
const uploadHeaders = {
|
Authorization: sessionStorage.getItem('token') || '',
|
...headers
|
};
|
const formData = new FormData();
|
formData.append('file', file);
|
|
axios.post(uploadUrl, formData, { headers: uploadHeaders })
|
.then(res => {
|
onSuccess(res.data);
|
})
|
.catch(err => {
|
onError(err);
|
});
|
};
|
|
export function getFullUrl(url) {
|
if (!url) return '';
|
if (/^https?:\/\//.test(url)) return url;
|
return apiConfig.showImgUrl + url;
|
}
|
|
/**
|
* 通用文件下载方法
|
* @param {string} url 文件的下载地址(支持相对和绝对路径)
|
* @param {string} name 下载保存的文件名(可选)
|
*/
|
export function downloadFileByUrl(url, name) {
|
console.log('22222222222222222222',url)
|
if (!url) return;
|
// 处理相对路径
|
const fullUrl = getFullUrl(url);
|
console.log('fullUrl fullUrl',fullUrl)
|
const a = document.createElement('a');
|
a.href = fullUrl;
|
if (name) {
|
a.download = name;
|
} else {
|
a.download = '';
|
}
|
a.style.display = 'none';
|
document.body.appendChild(a);
|
a.click();
|
document.body.removeChild(a);
|
}
|
|
/**
|
* 在新标签页打开文件(预览或下载)
|
* @param {string} url 文件地址(支持相对和绝对路径)
|
*/
|
export function openFileInNewTab(url) {
|
if (!url) return;
|
const fullUrl = getFullUrl(url);
|
window.open(fullUrl, '_blank');
|
}
|