174 lines
3.8 KiB
TypeScript
174 lines
3.8 KiB
TypeScript
// @/apis/bussiness/index.ts - 商务数据库信息模块API
|
||
import http from '@/utils/http'
|
||
import type {
|
||
FolderInfo,
|
||
FileInfo,
|
||
FolderListParams,
|
||
FileListParams,
|
||
FolderListResponse,
|
||
FileListResponse,
|
||
CreateFolderParams,
|
||
RenameFolderParams,
|
||
DeleteFolderParams,
|
||
UploadFileParams,
|
||
DownloadFileParams,
|
||
DeleteFileParams,
|
||
PreviewFileParams,
|
||
RenameFileParams
|
||
} from './type'
|
||
|
||
const { request, requestRaw } = http
|
||
|
||
// 导出类型定义
|
||
export type {
|
||
FolderInfo,
|
||
FileInfo,
|
||
FolderListParams,
|
||
FileListParams,
|
||
FolderListResponse,
|
||
FileListResponse,
|
||
CreateFolderParams,
|
||
RenameFolderParams,
|
||
DeleteFolderParams,
|
||
UploadFileParams,
|
||
DownloadFileParams,
|
||
DeleteFileParams,
|
||
PreviewFileParams,
|
||
RenameFileParams
|
||
}
|
||
|
||
// 获取文件夹列表(分页)
|
||
export function getFolderListApi(params?: FolderListParams) {
|
||
return request<FolderListResponse>({
|
||
url: '/businessData/folder/list',
|
||
method: 'get',
|
||
params: {
|
||
page: params?.page || 1,
|
||
pageSize: params?.pageSize || 10,
|
||
folderName: params?.folderName
|
||
}
|
||
})
|
||
}
|
||
|
||
// 获取文件列表(分页)
|
||
export function getFilesApi(params?: FileListParams) {
|
||
return request<FileListResponse>({
|
||
url: '/businessData/file/list',
|
||
method: 'get',
|
||
params: {
|
||
page: params?.page || 1,
|
||
pageSize: params?.pageSize || 10,
|
||
folderId: params?.folderId || '0'
|
||
}
|
||
})
|
||
}
|
||
|
||
// 创建文件夹
|
||
export function createFolderApi(data: CreateFolderParams) {
|
||
return request({
|
||
url: '/businessData/folder/creatFolder',
|
||
method: 'post',
|
||
data: {
|
||
name: data.name,
|
||
parentId: data.parentId || '0'
|
||
}
|
||
})
|
||
}
|
||
|
||
// 重命名文件夹
|
||
export function updateFolderApi(folderId: string, newName: string) {
|
||
return request({
|
||
url: '/businessData/folder/rename',
|
||
method: 'put',
|
||
params: {
|
||
folderId: folderId,
|
||
newName: newName
|
||
}
|
||
})
|
||
}
|
||
|
||
// 删除文件夹
|
||
export function deleteFolderApi(folderId: string) {
|
||
return request({
|
||
url: '/businessData/folder/delete',
|
||
method: 'delete',
|
||
params: {
|
||
folderId: folderId
|
||
}
|
||
})
|
||
}
|
||
|
||
// 上传文件
|
||
export function uploadFileApi(
|
||
file: File,
|
||
folderId: string,
|
||
onUploadProgress?: (progressEvent: any) => void,
|
||
cancelToken?: any
|
||
) {
|
||
const formData = new FormData()
|
||
formData.append('file', file)
|
||
|
||
return requestRaw({
|
||
url: '/businessData/file/add',
|
||
method: 'post',
|
||
params: {
|
||
folderId: folderId
|
||
},
|
||
data: formData,
|
||
onUploadProgress,
|
||
cancelToken,
|
||
headers: {
|
||
'Content-Type': 'multipart/form-data'
|
||
}
|
||
}).then(response => response.data)
|
||
.catch(error => {
|
||
// 确保错误不会抛出,而是返回一个错误对象
|
||
console.error('上传文件API错误:', error)
|
||
return {
|
||
code: 500,
|
||
msg: error.message || '上传失败',
|
||
success: false
|
||
}
|
||
})
|
||
}
|
||
|
||
// 下载文件
|
||
export function downloadFileApi(fileId: string) {
|
||
return request({
|
||
url: '/businessData/file/download',
|
||
method: 'get',
|
||
params: {
|
||
fileId: fileId
|
||
},
|
||
responseType: 'blob'
|
||
})
|
||
}
|
||
|
||
// 删除文件
|
||
export function deleteFileApi(fileId: string) {
|
||
return request({
|
||
url: '/businessData/file/delete',
|
||
method: 'delete',
|
||
params: {
|
||
fileId: fileId
|
||
}
|
||
})
|
||
}
|
||
|
||
// 预览文件(后端没有提供预览接口,使用下载接口)
|
||
export function previewFileApi(fileId: string) {
|
||
return request({
|
||
url: '/businessData/file/download',
|
||
method: 'get',
|
||
params: {
|
||
fileId: fileId
|
||
},
|
||
responseType: 'blob'
|
||
})
|
||
}
|
||
|
||
// 重命名文件(后端没有提供重命名接口,需要先删除再上传)
|
||
export function updateFileNameApi(fileId: string, data: RenameFileParams) {
|
||
// 注意:后端没有提供文件重命名接口,这里返回一个Promise.reject
|
||
return Promise.reject(new Error('后端暂不支持文件重命名功能'))
|
||
}
|