FlowDefinition
FlowDefinition định nghĩa cấu trúc cơ bản và cấu hình Flow, là một trong những khái niệm cốt lõi của Flow engine. Nó mô tả thông tin meta của Flow, điều kiện kích hoạt, các Step thực thi, v.v.
Định nghĩa kiểu
Trong đó kiểu của on như sau:
Cách đăng ký
Mô tả thuộc tính
key
Kiểu: string
Bắt buộc: Có
Mô tả: Định danh duy nhất của Flow
Khuyến nghị đặt tên theo phong cách thống nhất xxxSettings, ví dụ:
pageSettingstableSettingscardSettingsformSettingsdetailsSettingsbuttonSettingspopupSettingsdeleteSettingsdatetimeSettingsnumberSettings
Cách đặt tên này dễ nhận biết và bảo trì, khuyến nghị thống nhất toàn cục.
Ví dụ:
title
Kiểu: string
Bắt buộc: Không
Mô tả: Tiêu đề Flow dễ đọc
Khuyến nghị giữ phong cách nhất quán với key, đặt tên theo Xxx settings, ví dụ:
Page settingsTable settingsCard settingsForm settingsDetails settingsButton settingsPopup settingsDelete settingsDatetime settingsNumber settings
Cách đặt tên này rõ ràng, dễ hiểu, thuận tiện cho việc hiển thị giao diện và làm việc nhóm.
Ví dụ:
manual
Kiểu: boolean
Bắt buộc: Không
Mặc định: false
Mô tả: Có chỉ thực thi Flow thủ công hay không
true: Flow chỉ có thể được kích hoạt thủ công, không tự động thực thifalse: Flow có thể tự động thực thi (mặc định tự động thực thi khi không có thuộc tínhon)
Ví dụ:
sort
Kiểu: number
Bắt buộc: Không
Mặc định: 0
Mô tả: Thứ tự thực thi Flow, giá trị càng nhỏ càng được thực thi trước
Có thể là số âm, dùng để điều khiển thứ tự thực thi của nhiều Flow.
Ví dụ:
on
Kiểu: FlowEvent<TModel>
Bắt buộc: Không
Mô tả: Cấu hình Event cho phép Flow này được kích hoạt bởi dispatchEvent
Dùng để khai báo tên Event kích hoạt (chuỗi hoặc { eventName }), cùng thời điểm thực thi tùy chọn (phase). Không bao gồm hàm xử lý (logic xử lý nằm trong steps).
Các kiểu Event hỗ trợ:
'beforeRender'- Event trước khi render, tự động kích hoạt khi component render lần đầu'click'- Event click'submit'- Event submit'reset'- Event reset'remove'- Event xóa'openView'- Event mở view'dropdownOpen'- Event mở dropdown'popupScroll'- Event cuộn popup'search'- Event tìm kiếm'customRequest'- Event request tùy chỉnh'collapseToggle'- Event toggle thu gọn- Hoặc bất kỳ chuỗi tùy chỉnh nào
Ví dụ:
Thời điểm thực thi (phase)
Khi cùng một Event (ví dụ click) có nhiều event flow, có thể dùng phase / flowKey / stepKey để chỉ định Flow này được chèn vào vị trí nào trong các Flow tĩnh tích hợp:
Ví dụ:
steps
Kiểu: Record<string, StepDefinition<TModel>>
Bắt buộc: Có
Mô tả: Định nghĩa các Step của Flow
Định nghĩa tất cả các Step có trong Flow, mỗi Step có một key duy nhất.
Ví dụ:
defaultParams
Kiểu: Record<string, any> | ((ctx: FlowModelContext) => StepParam | Promise<StepParam>)
Bắt buộc: Không
Mô tả: Tham số mặc định cấp Flow
Khi khởi tạo Model (createModel), điền giá trị khởi tạo cho tham số Step của "Flow hiện tại". Chỉ điền các giá trị thiếu, không ghi đè giá trị đã có. Hình dạng trả về cố định: { [stepKey]: params }
Ví dụ:

