import { defHttp } from '/@/utils/http/axios'; import { ErrorMessageMode } from '/#/axios'; import { FilePageListParams, FilePageListSearchModel, FilePageListResultModel, ZipFilesModel, FileModel } from './model'; import { useGlobSetting } from '/@/hooks/setting'; const globSetting = useGlobSetting(); const urlPrefix = globSetting.apiUrl; enum Api { File = '/system/file', Info = '/system/file/info', List = '/system/file/list', Page = '/system/file/page', DeleteFile = '/system/file/delete', ZipFiles = '/system/file/package-files', } export function parseDownloadUrl(url:string,th?:boolean,full?:boolean) { // 空值防护:如果url为空,直接返回空字符串(避免拼接出错) if (!url) return ''; // 判断url是否以/api开头(忽略首尾空格,兼容可能的空格场景) const trimmedUrl = url.trim(); if(urlPrefix!=undefined && trimmedUrl.startsWith(urlPrefix)){ return trimmedUrl + (th ? '&th=true' : ''); } let resultUrl = urlPrefix + trimmedUrl + (th ? '&th=true' : ''); if(full){ return location.origin + resultUrl; } return resultUrl; } /** * @description: 查询文件分页 */ export async function getFilePage( params: FilePageListSearchModel, mode: ErrorMessageMode = 'modal', ) { return defHttp.get( { url: Api.Page, params, }, { errorMessageMode: mode, }, ); } /** * @description: 删除文件(批量删除) */ export async function deleteFile(ids: string[], mode: ErrorMessageMode = 'modal') { return defHttp.delete( { url: Api.DeleteFile, data: ids, }, { errorMessageMode: mode, }, ); } /** * @description: 删除单个文件 */ export async function deleteSingleFile(id: string, mode: ErrorMessageMode = 'modal') { return defHttp.delete( { url: Api.DeleteFile, data: [id], }, { errorMessageMode: mode, }, ); } /** * @description: 查询文件列表 */ export async function getFileList(params: FilePageListParams, mode: ErrorMessageMode = 'modal') { return defHttp.get( { url: Api.List, params, }, { errorMessageMode: mode, }, ); } export async function getZipFiles(params, mode: ErrorMessageMode = 'modal') { return defHttp.get( { url: Api.ZipFiles, params, }, { errorMessageMode: mode, }, ); } export async function getAppToken(params, mode: ErrorMessageMode = 'modal') { return defHttp.get( { url: '/v1/3rd/weboffice/url', params }, { errorMessageMode: mode, }, ); }