C3DynamicForm: wizard
Режим формы
Форма со шагами
Навигация извне (defineExpose)
Активный шаг: 0. Переход вперёд через API тоже валидирует текущий шаг, назад — всегда разрешён.
Журнал событий
—
—
Входные параметры
Wizard — это тот же C3DynamicForm с schema.mode = 'wizard' и заполненными schema.steps. Полный список пропсов формы — на странице dynamic-demo, здесь только то, что касается шагов:
| Ключ схемы | Тип | Описание |
|---|---|---|
mode | 'single' | 'wizard' | Режим; шаги работают только в wizard |
steps | C3FormStep[] | Шаги мастера по порядку |
steps[].id | string | Идентификатор шага, используется в validateStep() |
steps[].label | string | Подпись в навигации по шагам |
steps[].group | C3FormGroup | Группа полей шага: сетка, описания, условия и справочники — как в обычной форме |
settings.submitLabel | string | Текст кнопки на последнем шаге |
События
| Событие | Payload | Когда |
|---|---|---|
stepChange | { from, to } | После успешного перехода; вперёд — только без ошибок текущего шага |
invalid | Record<string, string | boolean> | Отказ в переходе вперёд или ошибка при отправке |
submit | { event, form, valid: true } | Последний шаг прошёл проверку |
reset | — | Сброс: данные и шаг возвращаются к началу |
Описание
Компонент разбивает форму на шаги и показывает по одному. Навигация — собственная: кнопки «Назад»/«Далее» и переход по клику на шаге. Переход вперёд сначала проверяет текущий шаг, и если есть ошибки, остаётся на месте и испускает invalid. На последнем шаге кнопка отправки собирает данные со всех шагов и испускает submit.
Дополнительная информация
- Через
refдоступныcurrentStepIndex,goToStep(index),nextStep(),prevStep(), а такжеvalidateStep(id),validate(),collect(),reset(),submit(). goToStepиnextStepвозвращают промис с признаком успешного перехода — переход вперёд извне валидируется так же, как по кнопке.hideActionsубирает штатные кнопки; тогдаC3DynamicFormостаётся без навигации, и её строят сами черезactions-слот или внешний API.- Данные всех шагов копятся в одном объекте
v-model— поля с одинаковымиnameна разных шагах перезапишут друг друга. - Скрытые
visibleIfполя не участвуют в проверке шага и не попадают в собираемый payload.