From ea287b32eb9e069e643962cb1d908c7b197b2aff Mon Sep 17 00:00:00 2001 From: AI Assistant Date: Sun, 2 Nov 2025 08:37:25 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=A1=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20project=5Fid=20=D0=B2=20formData=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D0=B5=20=D0=BF=D0=BE=D0=BB=D0=B8=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ✅ Добавлена обработка массива от n8n (как в Step2EventType) - ✅ Сохранение project_id, is_new_project в formData - ✅ Сохранение contact_id для консистентности - ✅ Работает как для найденного, так и для не найденного полиса Теперь formData содержит полную информацию: - claim_id (из n8n) - contact_id (из CreateWebContact) - project_id (из CreateWebProject) ← НОВОЕ - is_new_project (флаг создания) ← НОВОЕ --- frontend/src/components/form/Step1Policy.tsx | 21 +++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/form/Step1Policy.tsx b/frontend/src/components/form/Step1Policy.tsx index 8d32946..52acdef 100644 --- a/frontend/src/components/form/Step1Policy.tsx +++ b/frontend/src/components/form/Step1Policy.tsx @@ -213,7 +213,12 @@ export default function Step1Policy({ formData, updateFormData, onNext, addDebug }), }); - const result = await response.json(); + let result = await response.json(); + + // ✅ n8n может вернуть массив - берём первый элемент + if (Array.isArray(result) && result.length > 0) { + result = result[0]; + } if (response.ok) { // Новый формат ответа от n8n: {claim: {...}, policy: {...}} @@ -229,10 +234,13 @@ export default function Step1Policy({ formData, updateFormData, onNext, addDebug }); message.success(`Полис найден: ${result.policy.voucher}. Застрахованных: ${result.policy.count} чел.`); - // ✅ Сохраняем claim_id из ответа n8n (если есть) или используем существующий + // ✅ Сохраняем все данные из ответа n8n updateFormData({ ...values, - claim_id: result.claim?.claim_id || formData.claim_id + claim_id: result.result?.claim_id || formData.claim_id, + contact_id: result.result?.contact_id, + project_id: result.result?.project_id, // ✅ НОВОЕ! + is_new_project: result.result?.is_new_project // ✅ НОВОЕ! }); onNext(); } else { @@ -245,10 +253,13 @@ export default function Step1Policy({ formData, updateFormData, onNext, addDebug }); message.warning('Полис не найден в базе. Загрузите скан полиса'); - // ✅ Сохраняем claim_id из ответа n8n (если есть) или используем существующий + // ✅ Сохраняем все данные из ответа n8n (даже если полис не найден, проект уже создан) updateFormData({ ...values, - claim_id: result.claim?.claim_id || formData.claim_id + claim_id: result.result?.claim_id || formData.claim_id, + contact_id: result.result?.contact_id, + project_id: result.result?.project_id, // ✅ НОВОЕ! + is_new_project: result.result?.is_new_project // ✅ НОВОЕ! }); setPolicyNotFound(true);