From 62a8f4b13d8c053b93eb5f7350e8c34ddf86f6ae Mon Sep 17 00:00:00 2001 From: wren Date: Wed, 18 Mar 2026 22:00:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(cross-checking):=20=E4=BA=A4=E5=8F=89?= =?UTF-8?q?=E8=AF=84=E6=9F=A5=E4=B8=8A=E4=BC=A0=E6=94=AF=E6=8C=81=E5=90=88?= =?UTF-8?q?=E5=90=8C=E7=B1=BB=E5=9E=8B=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/cross-checking/cross-files-upload.ts | 7 +++-- app/routes/cross-checking.upload.tsx | 31 +++++++++++++++++++- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/app/api/cross-checking/cross-files-upload.ts b/app/api/cross-checking/cross-files-upload.ts index d2b674a..1ef7341 100644 --- a/app/api/cross-checking/cross-files-upload.ts +++ b/app/api/cross-checking/cross-files-upload.ts @@ -1,5 +1,6 @@ import { UPLOAD_URL, API_BASE_URL } from '../../config/api-config'; import axios from 'axios'; +import { CONTRACT_TYPES, DEFAULT_CONTRACT_TYPE } from '~/constants/contractTypes'; /** * 从不同格式的 API 响应中提取数据 @@ -224,7 +225,8 @@ export async function batchUploadAndAssignCrossCheckingFiles( docType: string, taskType: string = '市局间交叉评查', token: string | null = null, - principalUserIds: number[] = [] + principalUserIds: number[] = [], + attributeType?: string ): Promise<{ successes: Array<{file: CrossCheckingUploadedFile; result: Record}>; failures: Array<{file: CrossCheckingUploadedFile; error: string}>; @@ -249,7 +251,8 @@ export async function batchUploadAndAssignCrossCheckingFiles( is_test_document: isTestDocument, task_name: taskName, doc_type: typeof docType === 'string' ? docType.toUpperCase() : docType, - task_type: taskType + task_type: taskType, + attribute_type: attributeType || null }; // console.log('fileInfo', fileInfo) diff --git a/app/routes/cross-checking.upload.tsx b/app/routes/cross-checking.upload.tsx index 3fea53f..212d297 100644 --- a/app/routes/cross-checking.upload.tsx +++ b/app/routes/cross-checking.upload.tsx @@ -32,6 +32,7 @@ import { type UserInfo } from "~/api/user/user-management"; import { API_BASE_URL } from '~/config/api-config'; +import { CONTRACT_TYPES, DEFAULT_CONTRACT_TYPE } from '~/constants/contractTypes'; export const meta: MetaFunction = () => { return [ @@ -173,6 +174,7 @@ export default function CrossCheckingUpload() { const [documentNumber] = useState(""); const [remark] = useState(""); const [isTestDocument] = useState(false); + const [attributeType, setAttributeType] = useState(DEFAULT_CONTRACT_TYPE); // 文件管理状态 - 简化为单文件上传 const [uploadedFile, setUploadedFile] = useState(null); @@ -358,7 +360,8 @@ export default function CrossCheckingUpload() { selectedDocType.code, // 使用文档类型code taskInfo.type, // 使用任务类型(市局间交叉评查 或 区局间交叉评查) frontendJWT, - principalUserIds // 负责人ID数组 + principalUserIds, // 负责人ID数组 + attributeType // 合同类型 ); @@ -987,6 +990,32 @@ export default function CrossCheckingUpload() { + {/* 合同类型选择器 - 仅在选择合同类型文档时显示 */} + {selectedDocTypeId === 1 && ( +
+
+
选择合同类型(可选)
+
+ {CONTRACT_TYPES.map((type) => ( + + ))} +
+
+
+ )} + {/* 文件上传区域 - 左右布局 */}