From 8626c9aff4be2e46797bda50e394e71788463098 Mon Sep 17 00:00:00 2001 From: Fedor Date: Tue, 25 Nov 2025 21:12:30 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BD=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B4=D1=83=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=82=D0=BE=D0=B2=20field=5Flabel=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B5?= =?UTF-8?q?=20=D0=B2=D0=B8=D0=B7=D0=B0=D1=80=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/form/StepWizardPlan.tsx | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/ticket_form/frontend/src/components/form/StepWizardPlan.tsx b/ticket_form/frontend/src/components/form/StepWizardPlan.tsx index 8623b258..74a1d1f7 100644 --- a/ticket_form/frontend/src/components/form/StepWizardPlan.tsx +++ b/ticket_form/frontend/src/components/form/StepWizardPlan.tsx @@ -706,6 +706,17 @@ export default function StepWizardPlan({ return `upload_${group.index}`; }; + // ✅ Подсчитываем дубликаты labels для автоматической нумерации + const labelCounts: Record = {}; + const labelIndexes: Record = {}; + + // Первый проход - считаем сколько раз встречается каждый label + groups.forEach((group) => { + const block = group.block; + const baseLabel = (block.description?.trim()) || block.docLabel || block.fieldName || guessFieldName(group); + labelCounts[baseLabel] = (labelCounts[baseLabel] || 0) + 1; + }); + groups.forEach((group) => { const i = group.index; const block = group.block; @@ -724,7 +735,16 @@ export default function StepWizardPlan({ ); // ✅ Добавляем реальное название поля (label) для использования в n8n - const finalFieldLabel = block.docLabel || block.description || fieldLabel; + // Приоритет: description (если заполнено) > docLabel > fieldLabel + const baseLabel = (block.description?.trim()) || block.docLabel || fieldLabel; + + // ✅ Автоматическая нумерация для дубликатов + let finalFieldLabel = baseLabel; + if (labelCounts[baseLabel] > 1) { + labelIndexes[baseLabel] = (labelIndexes[baseLabel] || 0) + 1; + finalFieldLabel = `${baseLabel} #${labelIndexes[baseLabel]}`; + } + formPayload.append( `uploads_field_labels[${i}]`, finalFieldLabel