Варианты автоматически формируются из настроек поля и передаются через EnumField.variants.
При работе с формой допускается временно добавлять варианты в свойство EnumField.data.variants через скрипт.
Такие варианты отображаются в интерфейсе и могут использоваться в текущей сессии формы.
После обновления страницы они не сохраняются, однако выбранные значения доступны в контексте текущего экземпляра формы.
Где встречается TEnum:
как доступный вариант — в EnumField.variants и Context.fields.<field>.data.variants;
как выбранное значение — в Context.data.<field> (один: TEnum<T>; несколько: TEnum<T>[]).
Type parameters
T: string
Hierarchy
TEnum
Properties
code
code:T
Код варианта.
Задаётся один раз и используется в логике и сравнениях.
Генерируется автоматически из названия варианта или указывается вручную.
Правила преобразования кода:
переводится в нижний регистр;
кириллица транслитерируется в латиницу;
пробелы заменяются символом _;
дефис (-) сохраняется;
большинство спецсимволов заменяются символом _;
цифры допускаются.
Примеры преобразования:
«Бизнес-процесс» — «biznes-process»;
«Client Type» — «client_type»;
«Тип#1» — «tip_1»;
«Заказы v2.0» — «zakazy_v2_0».
Примеры использования:
// Получение варианта по его кодуconst dict = Context.fields.category.variants;
// Коды с недопустимыми для JS-идентификатора символами указываются только в квадратных скобкахconst vNum = dict["1n"]; // Начинается с цифрыconst vDash = dict["order-type"]; // Содержит дефис// Допустимый идентификатор указывается через точку или в квадратных скобкахconst v_Ok1 = dict.code1;
const v_Ok2 = dict["code1"];
// Установка выбора для поля типа Категория (Один)
Context.data.category = v_Ok1;
// Установка выбора для поля типа Категория (Несколько)
Context.data.category_multi = [v_Ok1, vDash].filter(Boolean);
// Добавление доступных вариантов в интерфейс через `data.variants`// Временные варианты, которые доступны только в текущей форме для тестирования или разовых действий
Context.fields.category.data.variants.push({ code: "temp_one", name: "Temp ONE" });
Context.fields.category.data.variants.push({ code: "temp_two", name: "Temp TWO" });
// Получение кодов выбранных значений для поля типа Категория (Множественный)const selectedCodes: string[] = (Context.data.category_multi ?? []).map(v => v.code);
// Получение кодов доступных вариантовconst availableCodes: string[] = Context.fields.category.data.variants.map(v => v.code);
// Сравнение по кодуif (v_Ok1.code === "code1") {
// ...
}
// Отображение названия вариантаconsole.log(v_Ok1.name);
name
name:string
Отображаемое название варианта, которое видит пользователь.
Значение можно изменять. Оно не влияет на выполнение скриптов.
Категория (перечисление)
Создавать
TEnumвручную обычно не требуется.Варианты автоматически формируются из настроек поля и передаются через EnumField.variants. При работе с формой допускается временно добавлять варианты в свойство EnumField.data.variants через скрипт. Такие варианты отображаются в интерфейсе и могут использоваться в текущей сессии формы. После обновления страницы они не сохраняются, однако выбранные значения доступны в контексте текущего экземпляра формы.
Где встречается
TEnum:Context.fields.<field>.data.variants;Context.data.<field>(один:TEnum<T>; несколько:TEnum<T>[]).Type parameters
T: string
Hierarchy
Properties
code
Код варианта.
Задаётся один раз и используется в логике и сравнениях. Генерируется автоматически из названия варианта или указывается вручную.
Правила преобразования кода:
Примеры преобразования:
Примеры использования:
// Получение варианта по его коду const dict = Context.fields.category.variants; // Коды с недопустимыми для JS-идентификатора символами указываются только в квадратных скобках const vNum = dict["1n"]; // Начинается с цифры const vDash = dict["order-type"]; // Содержит дефис // Допустимый идентификатор указывается через точку или в квадратных скобках const v_Ok1 = dict.code1; const v_Ok2 = dict["code1"]; // Установка выбора для поля типа Категория (Один) Context.data.category = v_Ok1; // Установка выбора для поля типа Категория (Несколько) Context.data.category_multi = [v_Ok1, vDash].filter(Boolean); // Добавление доступных вариантов в интерфейс через `data.variants` // Временные варианты, которые доступны только в текущей форме для тестирования или разовых действий Context.fields.category.data.variants.push({ code: "temp_one", name: "Temp ONE" }); Context.fields.category.data.variants.push({ code: "temp_two", name: "Temp TWO" }); // Получение кодов выбранных значений для поля типа Категория (Множественный) const selectedCodes: string[] = (Context.data.category_multi ?? []).map(v => v.code); // Получение кодов доступных вариантов const availableCodes: string[] = Context.fields.category.data.variants.map(v => v.code); // Сравнение по коду if (v_Ok1.code === "code1") { // ... } // Отображение названия варианта console.log(v_Ok1.name);name
Отображаемое название варианта, которое видит пользователь.
Значение можно изменять. Оно не влияет на выполнение скриптов.