Автоматическая нумерация дубликатов field_label при отправке визарда
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user