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 getAllocateIp() + 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");
|
}
|
|
export function getAllocateIp() {
|
const userInfo = JSON.parse(sessionStorage.getItem("userInfo") || "{}");
|
return userInfo.allocateIp ? userInfo.userInfo : apiConfig.showImgUrl;
|
}
|