C3DynamicForm: продвинутая схема

Форма

Заявка

Ниже: условия по типу занятости, залог списком и проверка дохода валидатором из пропа

Демонстрация notEmpty: поле-триггер слева, зависимое — справа

Нет элементов. Нажмите «Добавить» для добавления.

Событий пока не было — отправьте форму с ошибкой или без.

Входные параметры

Пропсы самого C3DynamicForm описаны на странице dynamic-demo. Эта страница показывает ключи схемы, которые там не использовались:

КлючГдеТипОписание
repeatableгруппаbooleanГруппа рендерится списком копий; значения — массив под id группы
repeatMinгруппаnumberНижняя граница: последней записи не дадут удалиться; пустые копии создаются только кнопкой
repeatMaxгруппаnumberПотолок копий: кнопка добавления исчезает на достижении
visibleIf / requiredIfполе и группаC3ConditionУсловие { field, operator, value }; у группы условие скрывает весь блок
validation.customполеstringИмя функции из пропа validators
source.type = 'function'поле{ function, params? }Вызов загрузчика из пропа dataSourceLoaders по имени
spanгруппа1…6Ширина вложенной группы в колонках родительской сетки

Описание

Страница собирает в одном месте то, что базовое демо не показало: повторяющуюся группу с лимитами, условия разными операторами (eq и notEmpty), кастомную проверку из пропа validators и справочник, который отдаёт функция-загрузчик из пропа dataSourceLoaders.

Загрузчик живёт ровно столько, сколько форма: при размонтировании он снимается из глобального реестра, поэтому одно имя можно использовать в разных формах.

Дополнительная информация

  • Данные повторяемой группы — массив под id группы: в этой схеме ключ pledges появляется в submit-payload только когда залог включён.
  • Кнопки добавления/удаления копий рисует C3DynamicRepeatableField: удалить — в шапке записи, добавить — под списком. В readonly их нет вовсе; при disabled кнопки остаются, заблокированы только поля внутри записи.
  • Скрытые условием поля не проверяются и не попадают в собираемый payload — поэтому collateralType не требует значения, пока hasCollateral выключен.
  • requiredIf помечает поле обязательным, пока условие выполнено: снимается условие — снимается и звёздочка, и требование значения при проверке.
  • Ошибка загрузки справочника форму не ломает: варианты просто остаются пустыми, исключение внутрь поля глотается. Состояние загрузки и загруженные варианты поле отдаёт через defineExpose (optionsLoading, loadedOptions).
×