135 lines
2.9 KiB
TypeScript
135 lines
2.9 KiB
TypeScript
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;
|
||
}
|
||
|
||
export async function getInfoByDownloadUrl(params: {id: string}, mode: ErrorMessageMode = 'modal') {
|
||
return defHttp.get<FileModel>(
|
||
{
|
||
url: Api.Info,
|
||
params,
|
||
},
|
||
{
|
||
errorMessageMode: mode,
|
||
},
|
||
);
|
||
}
|
||
|
||
|
||
/**
|
||
* @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>(
|
||
{
|
||
url: Api.DeleteFile,
|
||
data: ids,
|
||
},
|
||
{
|
||
errorMessageMode: mode,
|
||
},
|
||
);
|
||
}
|
||
|
||
/**
|
||
* @description: 删除单个文件
|
||
*/
|
||
export async function deleteSingleFile(id: string, mode: ErrorMessageMode = 'modal') {
|
||
return defHttp.delete<string>(
|
||
{
|
||
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<ZipFilesModel>(
|
||
{
|
||
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,
|
||
},
|
||
);
|
||
}
|