fix: Fix claim_id and unified_id display in confirmation form
Problem:
- Claim ID and Unified ID showing as 'не указан' in confirmation form
- transformDraftToClaimPlanFormat was returning array instead of object
- StepClaimConfirmation was not correctly extracting IDs from claimPlanData
Solution:
1. Changed transformDraftToClaimPlanFormat return type:
- Changed from array [{ propertyName, ... }] to object { propertyName, ... }
- This matches what StepClaimConfirmation expects
2. Enhanced ID extraction in StepClaimConfirmation:
- Added explicit claimId and unifiedId variables
- Better fallback chain: claimPlanData.claim_id -> propertyName.meta.claim_id
- Same for unified_id
3. Added comprehensive logging:
- Log claimPlanData structure on component mount
- Log extracted IDs before form generation
- Log transformDraftToClaimPlanFormat input/output
- Log claim.unified_id from API response
4. Improved data flow:
- claim.unified_id from API -> transformDraftToClaimPlanFormat -> StepClaimConfirmation
- Fallback to currentFormData.unified_id if claim.unified_id missing
Files:
- frontend/src/pages/ClaimForm.tsx: Changed return type, added logging
- frontend/src/components/form/StepClaimConfirmation.tsx: Enhanced ID extraction, added logging
This commit is contained in:
@@ -22,8 +22,19 @@ export default function StepClaimConfirmation({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('📋 StepClaimConfirmation: получены данные claimPlanData:', claimPlanData);
|
||||||
|
console.log('📋 claimPlanData.claim_id:', claimPlanData?.claim_id);
|
||||||
|
console.log('📋 claimPlanData.unified_id:', claimPlanData?.unified_id);
|
||||||
|
console.log('📋 claimPlanData.propertyName?.meta?.claim_id:', claimPlanData?.propertyName?.meta?.claim_id);
|
||||||
|
console.log('📋 claimPlanData.propertyName?.meta?.unified_id:', claimPlanData?.propertyName?.meta?.unified_id);
|
||||||
|
|
||||||
// Формируем данные для формы подтверждения
|
// Формируем данные для формы подтверждения
|
||||||
// Формат должен соответствовать тому, что ожидает HTML форма
|
// Формат должен соответствовать тому, что ожидает HTML форма
|
||||||
|
const claimId = claimPlanData?.claim_id || claimPlanData?.propertyName?.meta?.claim_id || '';
|
||||||
|
const unifiedId = claimPlanData?.unified_id || claimPlanData?.propertyName?.meta?.unified_id || '';
|
||||||
|
|
||||||
|
console.log('📋 Извлечённые ID:', { claimId, unifiedId });
|
||||||
|
|
||||||
const formData = {
|
const formData = {
|
||||||
case: {
|
case: {
|
||||||
user: claimPlanData?.propertyName?.applicant || {},
|
user: claimPlanData?.propertyName?.applicant || {},
|
||||||
@@ -35,8 +46,8 @@ export default function StepClaimConfirmation({
|
|||||||
session_token: claimPlanData?.session_token || '',
|
session_token: claimPlanData?.session_token || '',
|
||||||
prefix: claimPlanData?.prefix || '',
|
prefix: claimPlanData?.prefix || '',
|
||||||
telegram_id: claimPlanData?.telegram_id || '',
|
telegram_id: claimPlanData?.telegram_id || '',
|
||||||
claim_id: claimPlanData?.claim_id || claimPlanData?.propertyName?.meta?.claim_id || '',
|
claim_id: claimId,
|
||||||
unified_id: claimPlanData?.unified_id || claimPlanData?.propertyName?.meta?.unified_id || '',
|
unified_id: unifiedId,
|
||||||
user_id: claimPlanData?.user_id || claimPlanData?.propertyName?.meta?.user_id || '',
|
user_id: claimPlanData?.user_id || claimPlanData?.propertyName?.meta?.user_id || '',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -47,11 +58,13 @@ export default function StepClaimConfirmation({
|
|||||||
session_token: claimPlanData?.session_token || '',
|
session_token: claimPlanData?.session_token || '',
|
||||||
prefix: claimPlanData?.prefix || '',
|
prefix: claimPlanData?.prefix || '',
|
||||||
telegram_id: claimPlanData?.telegram_id || '',
|
telegram_id: claimPlanData?.telegram_id || '',
|
||||||
claim_id: claimPlanData?.claim_id || claimPlanData?.propertyName?.meta?.claim_id || '',
|
claim_id: claimId,
|
||||||
unified_id: claimPlanData?.unified_id || claimPlanData?.propertyName?.meta?.unified_id || '',
|
unified_id: unifiedId,
|
||||||
user_id: claimPlanData?.user_id || claimPlanData?.propertyName?.meta?.user_id || '',
|
user_id: claimPlanData?.user_id || claimPlanData?.propertyName?.meta?.user_id || '',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
console.log('📋 Сформированные formData.meta:', formData.case.meta);
|
||||||
|
|
||||||
// Здесь нужно будет получить HTML форму от n8n или использовать готовый шаблон
|
// Здесь нужно будет получить HTML форму от n8n или использовать готовый шаблон
|
||||||
// Пока используем заглушку - в реальности нужно будет вызывать n8n workflow для генерации HTML
|
// Пока используем заглушку - в реальности нужно будет вызывать n8n workflow для генерации HTML
|
||||||
|
|||||||
@@ -283,6 +283,13 @@ export default function ClaimForm() {
|
|||||||
}) => {
|
}) => {
|
||||||
const { claim, payload, body, finalClaimId, actualSessionId, currentFormData } = data;
|
const { claim, payload, body, finalClaimId, actualSessionId, currentFormData } = data;
|
||||||
|
|
||||||
|
console.log('🔄 transformDraftToClaimPlanFormat: входные данные:', {
|
||||||
|
claimId: finalClaimId,
|
||||||
|
claimUnifiedId: claim.unified_id,
|
||||||
|
formDataUnifiedId: currentFormData.unified_id,
|
||||||
|
claimKeys: Object.keys(claim),
|
||||||
|
});
|
||||||
|
|
||||||
// Извлекаем данные из 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 || {};
|
||||||
@@ -370,8 +377,8 @@ export default function ClaimForm() {
|
|||||||
attachments_names: attachmentsNames,
|
attachments_names: attachmentsNames,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Возвращаем данные в формате массива (как ожидает форма подтверждения)
|
// Возвращаем данные в формате объекта (для компонента StepClaimConfirmation)
|
||||||
return [{
|
const result = {
|
||||||
propertyName: propertyName,
|
propertyName: propertyName,
|
||||||
session_token: actualSessionId,
|
session_token: actualSessionId,
|
||||||
prefix: '',
|
prefix: '',
|
||||||
@@ -379,7 +386,16 @@ export default function ClaimForm() {
|
|||||||
claim_id: finalClaimId,
|
claim_id: finalClaimId,
|
||||||
unified_id: claim.unified_id || currentFormData.unified_id || null,
|
unified_id: claim.unified_id || currentFormData.unified_id || null,
|
||||||
user_id: metaData.user_id || null,
|
user_id: metaData.user_id || null,
|
||||||
}];
|
};
|
||||||
|
|
||||||
|
console.log('🔄 transformDraftToClaimPlanFormat: результат:', {
|
||||||
|
claim_id: result.claim_id,
|
||||||
|
unified_id: result.unified_id,
|
||||||
|
hasPropertyName: !!result.propertyName,
|
||||||
|
hasMeta: !!result.propertyName?.meta,
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
// Загрузка черновика
|
// Загрузка черновика
|
||||||
@@ -410,6 +426,7 @@ export default function ClaimForm() {
|
|||||||
console.log('🔍 Claim объект:', claim);
|
console.log('🔍 Claim объект:', claim);
|
||||||
console.log('🔍 claim.claim_id:', claim.claim_id);
|
console.log('🔍 claim.claim_id:', claim.claim_id);
|
||||||
console.log('🔍 claim.id:', claim.id);
|
console.log('🔍 claim.id:', claim.id);
|
||||||
|
console.log('🔍 claim.unified_id:', claim.unified_id);
|
||||||
console.log('🔍 Payload черновика:', payload);
|
console.log('🔍 Payload черновика:', payload);
|
||||||
console.log('🔍 payload.body:', body);
|
console.log('🔍 payload.body:', body);
|
||||||
console.log('🔍 Формат:', isTelegramFormat ? 'telegram (body)' : 'web_form (прямой)');
|
console.log('🔍 Формат:', isTelegramFormat ? 'telegram (body)' : 'web_form (прямой)');
|
||||||
|
|||||||
Reference in New Issue
Block a user