Автоматическая нумерация дубликатов field_label при отправке визарда

This commit is contained in:
Fedor
2025-11-25 21:12:30 +03:00
parent 444e5d2b91
commit 8626c9aff4

View File

@@ -706,6 +706,17 @@ export default function StepWizardPlan({
return `upload_${group.index}`;
};
// ✅ Подсчитываем дубликаты labels для автоматической нумерации
const labelCounts: Record<string, number> = {};
const labelIndexes: Record<string, number> = {};
// Первый проход - считаем сколько раз встречается каждый 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