diff --git a/apps/backend/src/services/worker-platform/worker-service.ts b/apps/backend/src/services/worker-platform/worker-service.ts index 57f05bac..240a27bf 100644 --- a/apps/backend/src/services/worker-platform/worker-service.ts +++ b/apps/backend/src/services/worker-platform/worker-service.ts @@ -2100,7 +2100,7 @@ export async function remindWorkerOrderAcceptance( } } -/** VIP 自动验收订单在 24 小时内追加验收图片,不改变订单状态和结算结果。 */ +/** 已验收订单可追加验收图片,不改变订单状态和结算结果。 */ export async function supplementWorkerAcceptedOrderEvidence( workOrderId: number | string, payload: JsonObject = {}, @@ -2128,20 +2128,6 @@ export async function supplementWorkerAcceptedOrderEvidence( const now = nowIso() const previous = safeParseJson(workOrder.acceptance_json) - if (String(previous.reviewMode || '').trim() !== 'vip_auto') { - throw createHttpError('该订单不支持验收后补图', { - statusCode: 403, - errorCode: 'work_order_evidence_supplement_not_allowed', - }) - } - const evidenceDueAt = String(previous.evidenceDueAt || '').trim() - if (!evidenceDueAt || Date.parse(evidenceDueAt) <= Date.now()) { - throw createHttpError('补充验收图片已超过 24 小时时限', { - statusCode: 409, - errorCode: 'work_order_evidence_supplement_expired', - }) - } - const existingFiles = normalizeUploadedFiles(previous.files) const uploadedFiles = normalizeUploadedFiles(payload.files) const mergedFiles = [...existingFiles] @@ -2294,7 +2280,7 @@ async function submitWorkerSharingAcceptance( } } -/** VIP 拼单份额在免审核后 24 小时内补充验收图片。 */ +/** 已验收拼单份额可追加验收图片,不改变订单状态和结算结果。 */ async function supplementWorkerAcceptedSharingEvidence( workOrder: WorkOrderRow, sharingShare: WorkOrderShareRow, @@ -2310,20 +2296,6 @@ async function supplementWorkerAcceptedSharingEvidence( const now = nowIso() const previous = safeParseJson(sharingShare.acceptance_json) - if (String(previous.reviewMode || '').trim() !== 'vip_auto') { - throw createHttpError('该拼单份额不支持验收后补图', { - statusCode: 403, - errorCode: 'work_order_sharing_evidence_supplement_not_allowed', - }) - } - const evidenceDueAt = String(previous.evidenceDueAt || '').trim() - if (!evidenceDueAt || Date.parse(evidenceDueAt) <= Date.now()) { - throw createHttpError('补充验收图片已超过 24 小时时限', { - statusCode: 409, - errorCode: 'work_order_sharing_evidence_supplement_expired', - }) - } - const existingFiles = normalizeUploadedFiles(previous.files) const uploadedFiles = normalizeUploadedFiles(payload.files) const mergedFiles = [...existingFiles] diff --git a/apps/frontend/src/pages/worker/WorkerOrdersPage.tsx b/apps/frontend/src/pages/worker/WorkerOrdersPage.tsx index 490b0bdc..fad774ff 100644 --- a/apps/frontend/src/pages/worker/WorkerOrdersPage.tsx +++ b/apps/frontend/src/pages/worker/WorkerOrdersPage.tsx @@ -292,6 +292,13 @@ export default function WorkerOrdersPage() { function openAcceptanceModal(order: WorkOrder) { markOrderAsRead(order) setEditingOrder(order) + if (canSupplementAcceptedEvidence(order)) { + // 已验收补图只上传新增文件,原有验收图片由服务端保留。 + setAcceptanceFiles([]) + form.resetFields() + setDetailOrder(null) + return + } // 已提交:以已提交的验收资料为初始内容;未提交:以暂存草稿为初始内容 const source = hasSubmittedAcceptance(order) ? getWorkerAcceptance(order) @@ -1307,18 +1314,25 @@ export default function WorkerOrdersPage() { } >