聊天室创建工单
This commit is contained in:
74
urbanLifelineWeb/packages/workcase_wechat/api/file/file.ts
Normal file
74
urbanLifelineWeb/packages/workcase_wechat/api/file/file.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
import { request, uploadFile } from '../base'
|
||||
import type { ResultDomain, TbSysFileDTO, FileUploadParam, BatchFileUploadParam } from '../../types'
|
||||
import { BASE_URL } from '../../config'
|
||||
|
||||
export const fileAPI = {
|
||||
baseUrl: '/urban-lifeline/file',
|
||||
|
||||
/**
|
||||
* 上传单个文件(uni-app 版本)
|
||||
* @param filePath 文件临时路径
|
||||
* @param param 文件上传参数
|
||||
* @returns Promise<ResultDomain<TbSysFileDTO>>
|
||||
*/
|
||||
uploadFile(filePath: string, param?: FileUploadParam): Promise<ResultDomain<TbSysFileDTO>> {
|
||||
return uploadFile<TbSysFileDTO>({
|
||||
url: `${this.baseUrl}/upload`,
|
||||
filePath: filePath,
|
||||
name: 'file',
|
||||
formData: {
|
||||
module: param?.module || '',
|
||||
optsn: param?.optsn || '',
|
||||
uploader: param?.uploader || ''
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 批量上传文件(uni-app 版本)
|
||||
* @param filePaths 文件临时路径数组
|
||||
* @param param 批量文件上传参数
|
||||
* @returns Promise<ResultDomain<TbSysFileDTO>>
|
||||
*/
|
||||
async batchUploadFiles(filePaths: string[], param?: BatchFileUploadParam): Promise<ResultDomain<TbSysFileDTO>> {
|
||||
const uploadPromises = filePaths.map(filePath =>
|
||||
this.uploadFile(filePath, param)
|
||||
)
|
||||
|
||||
try {
|
||||
const results = await Promise.all(uploadPromises)
|
||||
// 返回包含所有上传文件的结果
|
||||
const uploadedFiles = results
|
||||
.filter((r: ResultDomain<TbSysFileDTO>) => r.success && r.data)
|
||||
.map((r: ResultDomain<TbSysFileDTO>) => r.data!)
|
||||
|
||||
return {
|
||||
success: true,
|
||||
dataList: uploadedFiles
|
||||
} as ResultDomain<TbSysFileDTO>
|
||||
} catch (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: '批量上传失败'
|
||||
} as ResultDomain<TbSysFileDTO>
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取文件信息
|
||||
* @param fileId 文件ID
|
||||
* @returns Promise<ResultDomain<TbSysFileDTO>>
|
||||
*/
|
||||
getFileById(fileId: string): Promise<ResultDomain<TbSysFileDTO>> {
|
||||
return request<TbSysFileDTO>({ url: `${BASE_URL}${this.baseUrl}/${fileId}`, method: 'GET' })
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取文件下载 URL
|
||||
* @param fileId 文件ID
|
||||
* @returns string
|
||||
*/
|
||||
getDownloadUrl(fileId: string): string {
|
||||
return `${BASE_URL}${this.baseUrl}/download/${fileId}`
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user