Правила связывания

Введение

В NocoBase правила связывания — это механизм для управления интерактивным поведением элементов интерфейса на фронтенде. Он позволяет пользователям настраивать логику отображения и поведения блоков, полей и действий в интерфейсе в зависимости от разных условий, обеспечивая гибкий low-code опыт взаимодействия. Эта возможность продолжает развиваться и оптимизироваться.

Через настройку правил связывания можно реализовать, например:

  • скрытие/показ определенных блоков в зависимости от текущей роли пользователя. Разные роли видят блоки с разными областями данных: например, администратор видит блоки с полной информацией, а обычные пользователи — только базовые информационные блоки;
  • при выборе опции в форме автоматически заполнять или сбрасывать значения других полей;
  • при выборе опции в форме отключать определенные элементы ввода;
  • при выборе опции в форме делать определенные поля обязательными;
  • управлять видимостью и кликабельностью кнопок действий при определенных условиях.

Настройка условий

20251029114532

Левая переменная

Левая переменная в условии используется для определения «объекта проверки» в правиле связывания. Условие оценивается по значению этой переменной, чтобы определить, нужно ли запускать действие связывания.

Доступные переменные включают:

  • поля в контексте, например Текущая форма/xxx, Текущая запись/xxx, Текущая запись всплывающего окна/xxx и т.д.;
  • системные глобальные переменные, например Текущий пользователь, Текущая роль и т.д., подходящие для динамического управления на основе идентичности пользователя, прав и другой информации.

    ✅ Доступные варианты левой переменной определяются контекстом блока. Используйте левую переменную осмысленно в зависимости от бизнес-потребностей:

    • Текущий пользователь представляет информацию о текущем авторизованном пользователе.
    • Текущая форма представляет значения, введенные в форму в реальном времени.
    • Текущая запись представляет сохраненное значение записи, например запись строки в таблице.

Оператор

Оператор используется для задания логики проверки условия, то есть как сравнивать левую переменную с правым значением. Разные типы левой переменной поддерживают разные операторы. Распространенные типы операторов:

  • Текстовый тип: $includes, $eq, $ne, $empty, $notEmpty и т.д.
  • Числовой тип: $eq, $gt, $lt, $gte, $lte и т.д.
  • Логический тип: $isTruly, $isFalsy
  • Тип массива: $match, $anyOf, $empty, $notEmpty и т.д.

✅ Система автоматически рекомендует список доступных операторов на основе типа левой переменной, чтобы логика конфигурации была корректной.

Правое значение

Используется для сравнения с левой переменной и является опорным значением для определения, выполняется ли условие.

Поддерживаемое содержимое включает:

  • константные значения: фиксированные числа, текст, даты и т.д.;
  • контекстные переменные: например другие поля текущей формы, текущая запись и т.д.;
  • системные переменные: например текущий пользователь, текущее время, текущая роль и т.д.

✅ Система автоматически подбирает способ ввода правого значения в зависимости от типа левой переменной, например:

  • когда слева «Поле выбора», отображается соответствующий селектор опций;
  • когда слева «Поле даты», отображается выбор даты;
  • когда слева «Текстовое поле», отображается текстовое поле ввода.

💡 Гибкое использование правых значений (особенно динамических переменных) позволяет строить логику связывания на основе текущего пользователя, текущего состояния данных и контекста, что дает более мощный интерактивный опыт.

Логика выполнения правил

Срабатывание условий

Когда условие в правиле выполняется (опционально), действие изменения свойства под ним выполняется автоматически. Если условие не задано, правило по умолчанию считается всегда выполняющимся, и действие изменения свойства также выполняется автоматически.

Несколько правил

Для формы можно настроить несколько правил связывания. Когда одновременно выполняются условия нескольких правил, система применяет результаты по порядку сверху вниз, то есть последний результат становится итоговым. Пример: правило 1 задает полю состояние «Отключено», а правило 2 задает «Редактируемый». Если условия обоих правил выполнены, поле станет «Редактируемый».

Порядок выполнения нескольких правил критически важен. При проектировании правил обязательно определяйте их приоритеты и взаимосвязи, чтобы избежать конфликтов.

Управление правилами

Для каждого правила доступны следующие операции:

  • пользовательское имя: задайте понятное имя для управления и идентификации правила;
  • сортировка: скорректируйте порядок по приоритету выполнения, чтобы система обрабатывала их в правильной последовательности;
  • удаление: удаляйте правила, которые больше не нужны;
  • включение/отключение: временно отключайте правило без удаления, что подходит для сценариев временной деактивации;
  • дублирование правила: создавайте новое правило на основе существующего, чтобы избежать повторной ручной настройки.

О переменных

И в присвоении значений полей, и в настройке условий поддерживаются как константы, так и переменные. Список переменных зависит от расположения блока. Разумный выбор и использование переменных позволяет более гибко покрывать бизнес-потребности. Для дополнительной информации о переменных см. Переменные.

Правила связывания блока

Правила связывания блока позволяют динамически управлять отображением блока на основе системных переменных (например текущего пользователя, роли) или контекстных переменных (например текущей записи во всплывающем окне). Например, администратор может видеть полную информацию по заказам, а роль службы поддержки — только определенные данные заказа. Через правила связывания блока можно настраивать соответствующие блоки по ролям и задавать в этих блоках разные поля, кнопки действий и области данных. Когда роль вошедшего пользователя совпадает с целевой ролью, система показывает соответствующий блок. Важно помнить, что блоки по умолчанию отображаются, поэтому обычно нужно описывать логику их скрытия.

👉 Подробнее: Блок/Правила связывания блока

Правила связывания поля

Правила связывания поля используются для динамической настройки состояния полей в форме или блоке деталей на основе действий пользователя. В основном включают:

  • управление состоянием показать/скрыть поля;
  • настройку, является ли поле обязательным;
  • присвоение значения;
  • выполнение JavaScript для обработки пользовательской бизнес-логики.

👉 Подробнее: Блок/Правила связывания поля

Правила связывания действия

Правила связывания действия сейчас поддерживают управление поведением действий, например скрытие/отключение, на основе контекстных переменных вроде значения текущей записи и текущей формы, а также глобальных переменных.

👉 Подробнее: Действие/Правила связывания