| | |
| | | import axios from 'axios'; |
| | | import apiConfig from './baseurl'; |
| | | |
| | | export const customRequest = (params) => { |
| | | const { file, onSuccess, onError } = params; |
| | | uploadObs(file) |
| | |
| | | .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'); |
| | | } |