import { apiRequest, buildUrl, type PaginatedResponse } from './base'; import type { File, DocumentType } from '~/models/file'; /** * 文件API服务 */ interface FileFilterParams { documentTypeId?: string; status?: string; reviewStatus?: string; keyword?: string; startDate?: string; endDate?: string; page?: number; pageSize?: number; } // 获取文件列表 export async function getFiles(params?: FileFilterParams): Promise> { const url = buildUrl('/api/files', params); return apiRequest>(url); } // 获取单个文件 export async function getFile(id: string): Promise { const url = buildUrl(`/api/files/${id}`); return apiRequest(url); } // 上传文件 export async function uploadFile(formData: FormData): Promise { const url = buildUrl('/api/files/upload'); const response = await fetch(url, { method: 'POST', body: formData, }); if (!response.ok) { const error = await response.json(); throw new Error(error.message || '文件上传失败'); } return response.json().then(data => data.data); } // 删除文件 export async function deleteFile(id: string): Promise { const url = buildUrl(`/api/files/${id}`); return apiRequest(url, 'DELETE'); } // 获取文档类型列表 export async function getDocumentTypes(): Promise { const url = buildUrl('/api/document-types'); return apiRequest(url); } // 获取单个文档类型 export async function getDocumentType(id: string): Promise { const url = buildUrl(`/api/document-types/${id}`); return apiRequest(url); } // 创建文档类型 export async function createDocumentType(documentType: Omit): Promise { const url = buildUrl('/api/document-types'); return apiRequest(url, 'POST', documentType); } // 更新文档类型 export async function updateDocumentType(id: string, documentType: Partial>): Promise { const url = buildUrl(`/api/document-types/${id}`); return apiRequest(url, 'PUT', documentType); } // 删除文档类型 export async function deleteDocumentType(id: string): Promise { const url = buildUrl(`/api/document-types/${id}`); return apiRequest(url, 'DELETE'); }