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


Многофункциональные настраиваемые поля позволяют пользователям выбирать несколько вариантов из заранее определенного списка. Они идеально подходят для категорий, тегов, навыков, функций или любого сценария, где необходимо сделать несколько выборов из контролируемого набора вариантов.

Простой пример

Создайте простое многофункциональное поле:

mutation CreateMultiSelectField {
  createCustomField(input: {
    name: "Project Categories"
    type: SELECT_MULTI
    projectId: "proj_123"
  }) {
    id
    name
    type
  }
}

Расширенный пример

Создайте многофункциональное поле, а затем добавьте варианты отдельно:

# Step 1: Create the multi-select field
mutation CreateMultiSelectField {
  createCustomField(input: {
    name: "Required Skills"
    type: SELECT_MULTI
    projectId: "proj_123"
    description: "Select all skills required for this task"
  }) {
    id
    name
    type
    description
  }
}

# Step 2: Add options to the field
mutation AddOptions {
  createCustomFieldOptions(input: [
    { customFieldId: "field_123", title: "JavaScript", color: "#f7df1e" }
    { customFieldId: "field_123", title: "React", color: "#61dafb" }
    { customFieldId: "field_123", title: "Node.js", color: "#339933" }
    { customFieldId: "field_123", title: "GraphQL", color: "#e10098" }
  ]) {
    id
    title
    color
    position
  }
}

Входные параметры

CreateCustomFieldInput

Параметр Тип Обязательный Описание
name String! ✅ Да Отображаемое имя многофункционального поля
type CustomFieldType! ✅ Да Должен быть SELECT_MULTI
description String Нет Текст помощи, отображаемый пользователям
projectId String! ✅ Да ID проекта для этого поля

CreateCustomFieldOptionInput

Параметр Тип Обязательный Описание
customFieldId String! ✅ Да ID настраиваемого поля
title String! ✅ Да Отображаемый текст для варианта
color String Нет Цвет для варианта (любая строка)
position Float Нет Порядок сортировки для варианта

Добавление вариантов к существующим полям

Добавьте новые варианты к существующему многофункциональному полю:

mutation AddMultiSelectOption {
  createCustomFieldOption(input: {
    customFieldId: "field_123"
    title: "Python"
    color: "#3776ab"
  }) {
    id
    title
    color
    position
  }
}

Установка значений многофункционального поля

Чтобы установить несколько выбранных вариантов в записи:

mutation SetMultiSelectValue {
  setTodoCustomField(input: {
    todoId: "todo_123"
    customFieldId: "field_456"
    customFieldOptionIds: ["option_1", "option_2", "option_3"]
  })
}

Параметры SetTodoCustomFieldInput

Параметр Тип Обязательный Описание
todoId String! ✅ Да ID записи для обновления
customFieldId String! ✅ Да ID многофункционального настраиваемого поля
customFieldOptionIds [String!] ✅ Да Массив ID вариантов для выбора

Создание записей с многофункциональными значениями

При создании новой записи с многофункциональными значениями:

mutation CreateRecordWithMultiSelect {
  createTodo(input: {
    title: "Develop new feature"
    todoListId: "list_123"
    customFields: [{
      customFieldId: "skills_field_id"
      value: "option1,option2,option3"
    }]
  }) {
    id
    title
    customFields {
      id
      customField {
        name
        type
      }
      selectedOptions {
        id
        title
        color
      }
    }
  }
}

Поля ответа

Ответ TodoCustomField

Поле Тип Описание
id String! Уникальный идентификатор для значения поля
customField CustomField! Определение настраиваемого поля
selectedOptions [CustomFieldOption!] Массив выбранных вариантов
todo Todo! Запись, к которой принадлежит это значение
createdAt DateTime! Когда значение было создано
updatedAt DateTime! Когда значение было в последний раз изменено

Ответ CustomFieldOption

Поле Тип Описание
id String! Уникальный идентификатор для варианта
title String! Отображаемый текст для варианта
color String Шестнадцатеричный код цвета для визуального представления
position Float Порядок сортировки для варианта
customField CustomField! Настраиваемое поле, к которому принадлежит этот вариант

Ответ CustomField

Поле Тип Описание
id String! Уникальный идентификатор для поля
name String! Отображаемое имя многофункционального поля
type CustomFieldType! Всегда SELECT_MULTI
description String Текст помощи для поля
customFieldOptions [CustomFieldOption!] Все доступные варианты

Формат значений

Входной формат

  • API Параметр: Массив ID вариантов (["option1", "option2", "option3"])
  • Строковый формат: ID вариантов, разделенные запятыми ("option1,option2,option3")

Выходной формат

  • Ответ GraphQL: Массив объектов CustomFieldOption
  • Журнал активности: Заголовки вариантов, разделенные запятыми
  • Данные автоматизации: Массив заголовков вариантов

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

Обновление свойств варианта

mutation UpdateOption {
  editCustomFieldOption(input: {
    id: "option_123"
    title: "Updated Title"
    color: "#ff0000"
  }) {
    id
    title
    color
  }
}

Удаление варианта

mutation DeleteOption {
  deleteCustomFieldOption(id: "option_123")
}

Изменение порядка вариантов

# Update position values to reorder options
mutation UpdateOptionPosition {
  editCustomFieldOption(input: {
    id: "option_123"
    position: 1.5  # Position between 1.0 and 2.0
  }) {
    id
    position
  }
}

Правила валидации

Валидация варианта

  • Все предоставленные ID вариантов должны существовать
  • Варианты должны принадлежать указанному настраиваемому полю
  • Только поля SELECT_MULTI могут иметь несколько выбранных вариантов
  • Пустой массив допустим (без выборов)

Валидация поля

  • Должен быть определен хотя бы один вариант для использования
  • Заголовки вариантов должны быть уникальными в пределах поля
  • Поле цвета принимает любое строковое значение (без валидации шестнадцатеричного кода)

Необходимые разрешения

Действие Необходимое разрешение
Create multi-select field OWNER or ADMIN role at project level
Update multi-select field OWNER or ADMIN role at project level
Add/edit options OWNER or ADMIN role at project level
Set selected values Standard record edit permissions
View selected values Standard record view permissions

Ответы об ошибках

Неверный ID варианта

{
  "errors": [{
    "message": "Custom field option not found",
    "extensions": {
      "code": "CUSTOM_FIELD_OPTION_NOT_FOUND"
    }
  }]
}

Вариант не принадлежит полю

{
  "errors": [{
    "message": "Option does not belong to this custom field",
    "extensions": {
      "code": "VALIDATION_ERROR"
    }
  }]
}

Поле не найдено

{
  "errors": [{
    "message": "CustomField not found",
    "extensions": {
      "code": "CUSTOM_FIELD_NOT_FOUND"
    }
  }]
}

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

{
  "errors": [{
    "message": "custom fields can only have one option",
    "extensions": {
      "code": "VALIDATION_ERROR"
    }
  }]
}

Рекомендации по лучшим практикам

Дизайн варианта

  • Используйте описательные, лаконичные заголовки вариантов
  • Применяйте последовательные схемы цветового кодирования
  • Держите списки вариантов управляемыми (обычно 3-20 вариантов)
  • Упорядочивайте варианты логически (по алфавиту, по частоте и т.д.)

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

  • Периодически проверяйте и очищайте неиспользуемые варианты
  • Используйте последовательные соглашения об именах в проектах
  • Учитывайте повторное использование вариантов при создании полей
  • Планируйте обновления и миграции вариантов

Пользовательский опыт

  • Предоставьте четкие описания полей
  • Используйте цвета для улучшения визуального различия
  • Группируйте связанные варианты вместе
  • Учитывайте выбор по умолчанию для распространенных случаев

Распространенные случаи использования

  1. Управление проектами

    • Категории и теги задач
    • Уровни и типы приоритета
    • Назначения членов команды
    • Индикаторы статуса
  2. Управление контентом

    • Категории и темы статей
    • Типы и форматы контента
    • Каналы публикации
    • Рабочие процессы утверждения
  3. Поддержка клиентов

    • Категории и типы проблем
    • Затронутые продукты или услуги
    • Методы разрешения
    • Сегменты клиентов
  4. Разработка продукта

    • Категории функций
    • Технические требования
    • Тестовые среды
    • Каналы выпуска

Функции интеграции

С автоматизацией

  • Запуск действий при выборе определенных вариантов
  • Направление работы на основе выбранных категорий
  • Отправка уведомлений для выборов с высоким приоритетом
  • Создание последующих задач на основе комбинаций вариантов

С поисками

  • Фильтрация записей по выбранным вариантам
  • Агрегация данных по выборам вариантов
  • Ссылка на данные вариантов из других записей
  • Создание отчетов на основе комбинаций вариантов

С формами

  • Элементы управления для многофункционального ввода
  • Валидация и фильтрация вариантов
  • Динамическая загрузка вариантов
  • Условное отображение полей

Отслеживание активности

Изменения многофункционального поля автоматически отслеживаются:

  • Показывает добавленные и удаленные варианты
  • Отображает заголовки вариантов в журнале активности
  • Временные метки для всех изменений выбора
  • Атрибуция пользователя для модификаций

Ограничения

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

Связанные ресурсы

AI Ассистент

Ответы генерируются с использованием ИИ и могут содержать ошибки.

Как я могу вам помочь?

Спросите меня о чем угодно, связанном с Blue или этой документацией.

Введите для отправки • Shift+Enter для новой строки • ⌘I для открытия