fix: Use payload.send_to_form_approve.draft data directly instead of converting
Problem: - Data already exists in DB in propertyName format at payload.send_to_form_approve.draft - We were trying to convert from wizard_answers instead of using existing data - Form was empty because we ignored the correct data structure Solution: 1. Added priority check for payload.send_to_form_approve.draft: - If exists, use it directly (PRIORITY 1) - If not, fall back to conversion from wizard_answers (PRIORITY 2) 2. Direct usage of send_to_form_approve.draft: - Extract propertyName structure directly from draft - Preserve all fields: applicant, case, contract_or_service, offenders, claim, meta, attachments - Use unified_id from draft.meta or fallback to claim/formData 3. Enhanced logging: - Logs if send_to_form_approve.draft found - Logs draft data structure - Logs result structure Files: - frontend/src/pages/ClaimForm.tsx: Use send_to_form_approve.draft directly
This commit is contained in:
@@ -295,10 +295,59 @@ export default function ClaimForm() {
|
|||||||
hasCaseData: !!(body.case || payload.case),
|
hasCaseData: !!(body.case || payload.case),
|
||||||
hasContractData: !!(body.contract_or_service || payload.contract_or_service),
|
hasContractData: !!(body.contract_or_service || payload.contract_or_service),
|
||||||
hasWizardAnswers: !!(body.answers || payload.answers || body.wizard_answers || payload.wizard_answers),
|
hasWizardAnswers: !!(body.answers || payload.answers || body.wizard_answers || payload.wizard_answers),
|
||||||
|
hasSendToFormApprove: !!(payload.send_to_form_approve && payload.send_to_form_approve.draft),
|
||||||
payloadKeys: Object.keys(payload),
|
payloadKeys: Object.keys(payload),
|
||||||
bodyKeys: Object.keys(body),
|
bodyKeys: Object.keys(body),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// ✅ ПРИОРИТЕТ 1: Если есть данные в payload.send_to_form_approve.draft - используем их напрямую!
|
||||||
|
const sendToFormApproveDraft = payload.send_to_form_approve?.draft;
|
||||||
|
if (sendToFormApproveDraft) {
|
||||||
|
console.log('✅ Найдены данные в payload.send_to_form_approve.draft, используем их напрямую!');
|
||||||
|
console.log('✅ send_to_form_approve.draft:', sendToFormApproveDraft);
|
||||||
|
|
||||||
|
// Используем данные из send_to_form_approve.draft напрямую
|
||||||
|
const draftData = sendToFormApproveDraft;
|
||||||
|
|
||||||
|
// Формируем propertyName из draft данных
|
||||||
|
const propertyName = {
|
||||||
|
applicant: draftData.applicant || {},
|
||||||
|
case: draftData.case || {},
|
||||||
|
contract_or_service: draftData.contract_or_service || {},
|
||||||
|
offenders: draftData.offenders || [],
|
||||||
|
claim: draftData.claim || {},
|
||||||
|
meta: {
|
||||||
|
...(draftData.meta || {}),
|
||||||
|
claim_id: finalClaimId,
|
||||||
|
unified_id: draftData.meta?.unified_id || claim.unified_id || currentFormData.unified_id || null,
|
||||||
|
},
|
||||||
|
attachments: draftData.attachments || [],
|
||||||
|
attachments_count: draftData.attachments_count || 0,
|
||||||
|
attachments_names: draftData.attachments_names || [],
|
||||||
|
};
|
||||||
|
|
||||||
|
// Возвращаем данные в формате объекта (для компонента StepClaimConfirmation)
|
||||||
|
const result = {
|
||||||
|
propertyName: propertyName,
|
||||||
|
session_token: actualSessionId,
|
||||||
|
prefix: '',
|
||||||
|
telegram_id: null,
|
||||||
|
claim_id: finalClaimId,
|
||||||
|
unified_id: propertyName.meta.unified_id,
|
||||||
|
user_id: propertyName.meta.user_id || null,
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log('🔄 transformDraftToClaimPlanFormat: результат из send_to_form_approve:', {
|
||||||
|
claim_id: result.claim_id,
|
||||||
|
unified_id: result.unified_id,
|
||||||
|
hasPropertyName: !!result.propertyName,
|
||||||
|
hasMeta: !!result.propertyName?.meta,
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ✅ ПРИОРИТЕТ 2: Если данных нет в send_to_form_approve, извлекаем из body/payload
|
||||||
// Извлекаем данные из body (telegram) или напрямую из payload (web_form)
|
// Извлекаем данные из body (telegram) или напрямую из payload (web_form)
|
||||||
const applicantData = body.applicant || payload.applicant || {};
|
const applicantData = body.applicant || payload.applicant || {};
|
||||||
const caseData = body.case || payload.case || {};
|
const caseData = body.case || payload.case || {};
|
||||||
|
|||||||
Reference in New Issue
Block a user