feat: migrate cross checking ui to v3 flow

This commit is contained in:
wren
2026-05-07 18:15:40 +08:00
parent a14a1f0ee1
commit add399e126
7 changed files with 786 additions and 333 deletions
+23 -31
View File
@@ -199,19 +199,13 @@ export async function uploadCrossCheckingDocument(
}
/**
* 批量上传并自动分配交叉评查任务(新接口适配
* @param files 文件列表
* @param typeId 文档类型ID
* @param priority 优先级
* @param documentNumber 文档编号
* @param remark 备注
* @param isTestDocument 是否为测试文档
* @param assignUserIds 需要分配的用户ID数组
* @param taskName 任务名称
* @param docType 文档类型(如 XZCF、XZXK
* @param taskType 任务类型(如 市局间交叉评查、区局间交叉评查)
* @param token JWT Token
* @param principalUserIds 负责人ID数组(包含主要负责人和额外负责人)
* 旧的一体化“上传并分配任务”接口适配
*
* 现在创建交叉评查任务已改为:
* 1. 先上传文档
* 2. 再调用 `createCrossReviewTask()` 创建 v3 任务
*
* 这里先保留兼容实现,避免影响可能的旧调用方。
*/
export async function batchUploadAndAssignCrossCheckingFiles(
files: CrossCheckingUploadedFile[],
@@ -286,16 +280,15 @@ export async function batchUploadAndAssignCrossCheckingFiles(
}
/**
* 创建交叉评查任务
* @param taskData 任务数据
* @param token JWT Token
* @returns 创建结果
* 创建交叉评查任务v3)。
* 先由前端完成文档上传,再将上传成功后的 documentIds 挂到任务上。
*/
export async function createCrossReviewTask(taskData: {
documentIds: number[];
userIds: number[];
assignerId: number;
principalUserIds?: number[];
taskName: string;
docTypeId?: number;
docType: string;
taskType?: string;
}, token: string | null = null): Promise<{
@@ -305,12 +298,13 @@ export async function createCrossReviewTask(taskData: {
}> {
try {
const requestBody = {
document_ids: taskData.documentIds,
user_ids: taskData.userIds,
assigner_id: taskData.assignerId,
task_name: taskData.taskName,
doc_type: taskData.docType,
task_type: taskData.taskType || '市局间交叉评查'
documentIds: taskData.documentIds,
memberUserIds: taskData.userIds,
principalUserIds: taskData.principalUserIds || [],
taskName: taskData.taskName,
docTypeId: taskData.docTypeId,
docTypeCode: taskData.docType,
taskType: taskData.taskType || 'CITY'
};
// console.log('[创建任务] 请求数据:', requestBody);
@@ -323,7 +317,7 @@ export async function createCrossReviewTask(taskData: {
}
const response = await axios.post(
`${API_BASE_URL}/admin/cross_review/tasks/assign`,
`${API_BASE_URL}/api/v3/cross-review/tasks`,
requestBody,
{ headers }
);
@@ -376,7 +370,7 @@ export function formatFileSize(bytes: number): string {
/**
* 向已有任务上传新文档
*
* POST /api/v2/cross_review/tasks/{task_id}/upload_documents
* POST /api/v3/cross-review/tasks/{task_id}/documents/upload
*
* @param params 上传参数
* @returns 上传结果
@@ -396,10 +390,9 @@ export async function uploadDocumentToTask(params: {
console.log('[上传文档到任务] 开始上传:', { taskId, fileName: file.name });
const formData = new FormData();
// 添加文件(使用 files 字段名)
formData.append('files', file, file.name);
formData.append('file', file, file.name);
const uploadEndpoint = `/api/v2/cross_review/tasks/${taskId}/upload_documents`;
const uploadEndpoint = `/api/v3/cross-review/tasks/${taskId}/documents/upload`;
const uploadUrl = API_BASE_URL + uploadEndpoint;
const headers: Record<string, string> = {};
@@ -410,10 +403,9 @@ export async function uploadDocumentToTask(params: {
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 };
return { success: true, data: result.data || result };
} else {
console.error('[上传文档到任务] 上传失败:', result.detail || result.message);
return { success: false, error: result.detail || result.message || '上传失败' };