Skip to content

Многошаговые формы ​

ts
import { useMultiStepForm } from '@macrulez/vue-form-schema'

const wizard = useMultiStepForm(
  [
    { title: 'Account', schema: accountFields },
    { title: 'Profile', schema: profileFields },
    { title: 'Confirm', schema: confirmFields },
  ],
  async (allValues) => {
    await api.register(allValues)
  },
)

Возвращаемое значение useMultiStepForm ​

currentStep ​

Ref<number>

Индекс с отсчётом от 0.

totalSteps ​

number

Количество шагов.

isFirstStep / isLastStep ​

ComputedRef<boolean>

form ​

UseFormReturn

Для текущего шага.

values ​

Все значения по всем шагам, объединённые вместе.

next() ​

Провалидировать текущий шаг и перейти дальше (вернёт false, если невалидно).

back() ​

Вернуться на предыдущий шаг.

goTo(n) ​

Перейти на шаг n.

submit() ​

Провалидировать все шаги и вызвать onSubmit.

MultiStepFormRenderer ​

vue
import { MultiStepFormRenderer } from '@macrulez/vue-form-schema/ui'

<MultiStepFormRenderer :wizard="wizard" />

Рендерит поля текущего шага и кнопки навигации Назад / Далее / Отправить.