| | |
| | | import axios from 'axios'; |
| | | import apiConfig from './baseurl'; |
| | | import axios from "axios"; |
| | | import apiConfig from "./baseurl"; |
| | | |
| | | export const customRequest = (params) => { |
| | | const { file, onSuccess, onError } = params; |
| | |
| | | }); |
| | | }; |
| | | |
| | | export const customUploadRequest = ({ file, onSuccess, onError, action, headers }) => { |
| | | 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 |
| | | Authorization: sessionStorage.getItem("token") || "", |
| | | ...headers, |
| | | }; |
| | | const formData = new FormData(); |
| | | formData.append('file', file); |
| | | formData.append("file", file); |
| | | |
| | | axios.post(uploadUrl, formData, { headers: uploadHeaders }) |
| | | .then(res => { |
| | | axios |
| | | .post(uploadUrl, formData, { headers: uploadHeaders }) |
| | | .then((res) => { |
| | | onSuccess(res.data); |
| | | }) |
| | | .catch(err => { |
| | | .catch((err) => { |
| | | onError(err); |
| | | }); |
| | | }; |
| | | |
| | | export function getFullUrl(url) { |
| | | if (!url) return ''; |
| | | if (!url) return ""; |
| | | if (/^https?:\/\//.test(url)) return url; |
| | | return apiConfig.showImgUrl + 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.allocateIp +'/images/' : apiConfig.showImgUrl; |
| | | } |