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