1.同步包版本。
2.交叉评查的任务中上传文件。 3.添加dify库名解决保存配置失败的问题。
This commit is contained in:
@@ -362,10 +362,81 @@ export function generateFileId(): string {
|
||||
*/
|
||||
export function formatFileSize(bytes: number): string {
|
||||
if (bytes === 0) return '0 Bytes';
|
||||
|
||||
|
||||
const k = 1024;
|
||||
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
|
||||
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
||||
|
||||
|
||||
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
|
||||
}
|
||||
|
||||
/**
|
||||
* 向已有任务上传新文档
|
||||
*
|
||||
* POST /api/v2/cross_review/tasks/{task_id}/upload_documents
|
||||
*
|
||||
* @param params 上传参数
|
||||
* @returns 上传结果
|
||||
*/
|
||||
export async function uploadDocumentToTask(params: {
|
||||
taskId: number;
|
||||
file: File;
|
||||
jwtToken?: string | null;
|
||||
}): Promise<{
|
||||
success: boolean;
|
||||
data?: unknown;
|
||||
error?: string;
|
||||
}> {
|
||||
const { taskId, file, jwtToken } = params;
|
||||
|
||||
try {
|
||||
console.log('[上传文档到任务] 开始上传:', { taskId, fileName: file.name });
|
||||
|
||||
const formData = new FormData();
|
||||
// 添加文件(使用 files 字段名)
|
||||
formData.append('files', file, file.name);
|
||||
|
||||
const uploadEndpoint = `/api/v2/cross_review/tasks/${taskId}/upload_documents`;
|
||||
const uploadUrl = API_BASE_URL + uploadEndpoint;
|
||||
|
||||
const headers: Record<string, string> = {};
|
||||
if (jwtToken) {
|
||||
headers['Authorization'] = `Bearer ${jwtToken}`;
|
||||
}
|
||||
|
||||
const response = await axios.post(uploadUrl, formData, { headers });
|
||||
const result = response.data;
|
||||
|
||||
// 新接口响应格式: { code: 0, success: true, message: "...", data: {...} }
|
||||
if (result && (result.success || result.code === 0)) {
|
||||
console.log('[上传文档到任务] 上传成功:', result.message);
|
||||
return { success: true, data: result.data };
|
||||
} else {
|
||||
console.error('[上传文档到任务] 上传失败:', result.detail || result.message);
|
||||
return { success: false, error: result.detail || result.message || '上传失败' };
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('[上传文档到任务] 请求失败:', error);
|
||||
|
||||
let errorMessage = '上传文档失败';
|
||||
if (axios.isAxiosError(error)) {
|
||||
// 新接口错误格式: { detail: "错误信息" }
|
||||
if (error.response?.data?.detail) {
|
||||
errorMessage = error.response.data.detail;
|
||||
} else if (error.response?.data?.message) {
|
||||
errorMessage = error.response.data.message;
|
||||
} else if (error.response?.status === 403) {
|
||||
errorMessage = '无权操作:只有任务创建者或主要负责人可以上传文档';
|
||||
} else if (error.response?.status === 400) {
|
||||
errorMessage = '请求参数错误';
|
||||
}
|
||||
} else if (error instanceof Error) {
|
||||
errorMessage = error.message || errorMessage;
|
||||
}
|
||||
|
||||
return {
|
||||
success: false,
|
||||
error: errorMessage
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { API_BASE_URL } from '../../config/api-config';
|
||||
import { postgrestPut, postgrestGet } from '../postgrest-client';
|
||||
import axios from 'axios';
|
||||
export { uploadDocumentToTask } from './cross-files-upload';
|
||||
|
||||
// 交叉评查任务状态枚举
|
||||
export enum CrossCheckingTaskStatus {
|
||||
|
||||
Reference in New Issue
Block a user