2025-08-20 14:39:30 +08:00
|
|
|
|
import { defHttp } from '/@/utils/http/axios';
|
|
|
|
|
|
|
|
|
|
|
|
import { ErrorMessageMode } from '/#/axios';
|
2025-10-13 11:53:54 +08:00
|
|
|
|
import { FilePageListParams, FilePageListSearchModel, FilePageListResultModel, ZipFilesModel, FileModel } from './model';
|
2025-12-05 10:05:50 +08:00
|
|
|
|
|
|
|
|
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
|
|
|
|
|
const globSetting = useGlobSetting();
|
|
|
|
|
|
|
|
|
|
|
|
const urlPrefix = globSetting.apiUrl;
|
|
|
|
|
|
|
2025-08-20 14:39:30 +08:00
|
|
|
|
enum Api {
|
|
|
|
|
|
File = '/system/file',
|
|
|
|
|
|
Info = '/system/file/info',
|
2025-12-05 10:05:50 +08:00
|
|
|
|
List = '/system/file/list',
|
2025-08-20 14:39:30 +08:00
|
|
|
|
Page = '/system/file/page',
|
2025-12-05 10:05:50 +08:00
|
|
|
|
DeleteFile = '/system/file/delete',
|
2025-10-13 11:53:54 +08:00
|
|
|
|
ZipFiles = '/system/file/package-files',
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-05 10:05:50 +08:00
|
|
|
|
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;
|
2025-08-20 14:39:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-05 11:34:18 +08:00
|
|
|
|
export async function getInfoByDownloadUrl(params: {id: string}, mode: ErrorMessageMode = 'modal') {
|
|
|
|
|
|
return defHttp.get<FileModel>(
|
|
|
|
|
|
{
|
|
|
|
|
|
url: Api.Info,
|
|
|
|
|
|
params,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
errorMessageMode: mode,
|
|
|
|
|
|
},
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-05 10:05:50 +08:00
|
|
|
|
|
2025-08-20 14:39:30 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @description: 查询文件分页
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function getFilePage(
|
|
|
|
|
|
params: FilePageListSearchModel,
|
|
|
|
|
|
mode: ErrorMessageMode = 'modal',
|
|
|
|
|
|
) {
|
|
|
|
|
|
return defHttp.get<FilePageListResultModel>(
|
|
|
|
|
|
{
|
|
|
|
|
|
url: Api.Page,
|
|
|
|
|
|
params,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
errorMessageMode: mode,
|
|
|
|
|
|
},
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 删除文件(批量删除)
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function deleteFile(ids: string[], mode: ErrorMessageMode = 'modal') {
|
|
|
|
|
|
return defHttp.delete<number>(
|
|
|
|
|
|
{
|
2025-12-05 10:05:50 +08:00
|
|
|
|
url: Api.DeleteFile,
|
2025-08-20 14:39:30 +08:00
|
|
|
|
data: ids,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
errorMessageMode: mode,
|
|
|
|
|
|
},
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 删除单个文件
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function deleteSingleFile(id: string, mode: ErrorMessageMode = 'modal') {
|
2025-12-05 10:05:50 +08:00
|
|
|
|
return defHttp.delete<string>(
|
|
|
|
|
|
{
|
|
|
|
|
|
url: Api.DeleteFile,
|
|
|
|
|
|
data: [id],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
2025-08-20 14:39:30 +08:00
|
|
|
|
errorMessageMode: mode,
|
|
|
|
|
|
},
|
2025-12-05 10:05:50 +08:00
|
|
|
|
);
|
2025-08-20 14:39:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 查询文件列表
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function getFileList(params: FilePageListParams, mode: ErrorMessageMode = 'modal') {
|
|
|
|
|
|
return defHttp.get(
|
|
|
|
|
|
{
|
|
|
|
|
|
url: Api.List,
|
|
|
|
|
|
params,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
errorMessageMode: mode,
|
|
|
|
|
|
},
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-10-13 11:53:54 +08:00
|
|
|
|
export async function getZipFiles(params, mode: ErrorMessageMode = 'modal') {
|
|
|
|
|
|
return defHttp.get<ZipFilesModel>(
|
|
|
|
|
|
{
|
|
|
|
|
|
url: Api.ZipFiles,
|
|
|
|
|
|
params,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
errorMessageMode: mode,
|
|
|
|
|
|
},
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-08-20 14:39:30 +08:00
|
|
|
|
export async function getAppToken(params, mode: ErrorMessageMode = 'modal') {
|
|
|
|
|
|
return defHttp.get(
|
|
|
|
|
|
{
|
|
|
|
|
|
url: '/v1/3rd/weboffice/url',
|
|
|
|
|
|
params
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
errorMessageMode: mode,
|
|
|
|
|
|
},
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|