FlowDefinition
FlowDefinition определяет базовую структуру и конфигурацию Flow и является одной из ключевых концепций FlowEngine. Оно описывает метаданные Flow, условия запуска, шаги выполнения и т.д.
Определение типа
Способ регистрации
Описание свойств
key
Тип: string
Обязательно: Да
Описание: Уникальный идентификатор flow.
Рекомендуется использовать единый стиль именования xxxSettings, например:
pageSettingstableSettingscardSettingsformSettingsdetailsSettingsbuttonSettingspopupSettingsdeleteSettingsdatetimeSettingsnumberSettings
Такой стиль именования упрощает идентификацию и сопровождение; рекомендуется использовать его единообразно во всем проекте.
Пример:
title
Тип: string
Обязательно: Нет
Описание: Человекочитаемый заголовок flow.
Рекомендуется придерживаться стиля, согласованного с key, и использовать именование Xxx settings, например:
Page settingsTable settingsCard settingsForm settingsDetails settingsButton settingsPopup settingsDelete settingsDatetime settingsNumber settings
Такое именование более понятно и удобно для восприятия, что упрощает отображение в UI и командную работу.
Пример:
manual
Тип: boolean
Обязательно: Нет
Default: false
Описание: Может ли flow выполняться только вручную.
true: flow можно запустить только вручную, автоматичес ки он выполняться не будет.false: flow может выполняться автоматически (по умолчанию выполняется автоматически, если свойствоonотсутствует).
Пример:
sort
Тип: number
Обязательно: Нет
Default: 0
Описание: Порядок выполнения flow. Чем меньше значение, тем раньше выполняется.
Отрицательные числа можно использовать для управления порядком выполнения нескольких flows.
Пример:
on
Тип: FlowEvent<TModel>
Обязательно: Нет
Описание: Конфигурация события, позволяющая запускать этот flow через dispatchEvent.
Используется только для объявления имени триггер-события (строка или { eventName }) и не включает функцию-обработчик.
Поддерживаемые типы событий:
'click'- событие клика'submit'- событие отправки'reset'- событие сброса'remove'- событие удаления'openView'- событие открытия представления'dropdownOpen'- событие открытия выпадающего списка'popupScroll'- событие прокрутки popup'search'- событие поиска'customRequest'- событие пользовательского запроса'collapseToggle'- событие переключения collapse- либо любая пользовательская строка
Пример:
steps
Тип: Record<string, StepDefinition<TModel>>
Обязательно: Да
Описание: Определение шагов flow.
Определяет все шаги, входящие в flow; каждый шаг имеет уникальный key.
Пример:
defaultParams
Тип: Record<string, any> | ((ctx: FlowModelContext) => StepParam | Promise<StepParam>)
Обязательно: Нет
Описание: Параметры flow по умолчанию.
При создании модели (createModel) заполняет начальные значения параметров шагов "текущего flow". Заполняются только отсутствующие значения, существующие не перезаписываются. Фиксированная форма возврата: { [stepKey]: params }.
Пример:

