聊天室创建工单

This commit is contained in:
2025-12-24 19:50:38 +08:00
parent a613eb4fa1
commit 41bc41cfcd
18 changed files with 519 additions and 108 deletions

View 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}`
}
}