From 9cb1c3c39136c89974bc4049fca5e450e757b1be Mon Sep 17 00:00:00 2001 From: 13404089107 <puwei@sinata.cn> Date: 星期五, 15 八月 2025 17:51:03 +0800 Subject: [PATCH] fix --- laboratory/src/utils/utils.js | 65 ++++++++++++++++++++++++++++++++ 1 files changed, 64 insertions(+), 1 deletions(-) diff --git a/laboratory/src/utils/utils.js b/laboratory/src/utils/utils.js index a1019e4..ee15529 100644 --- a/laboratory/src/utils/utils.js +++ b/laboratory/src/utils/utils.js @@ -1,3 +1,6 @@ +import axios from 'axios'; +import apiConfig from './baseurl'; + export const customRequest = (params) => { const { file, onSuccess, onError } = params; uploadObs(file) @@ -7,4 +10,64 @@ .catch((ret) => { onError(); }); -}; \ No newline at end of file +}; + +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'); +} \ No newline at end of file -- Gitblit v1.7.1