Skip to content

Select

Select отображает одиночный или множественный выбор из SourceFieldOption[].

vue
<Select
  :value="status"
  :options="statusOptions"
  placeholder="Status"
/>

<Select
  multiple
  :value="airlines"
  :options="vocab('airlines', {
    valuePath: 'code',
    labelPath: 'description',
  })"
/>
ts
type SourceFieldOption = {
  value: string | number | boolean
  label?: string
}
АтрибутТипНазначение
value / :valuescalar/scalar[]/expressionSelected value или массив для multiple.
options / :optionsSourceFieldOption[]/expressionДоступные варианты.
multiplebooleanMultiple selection.
placeholderstringPlaceholder одиночного режима.
searchablebooleanЯвно показать или скрыть строку поиска.
virtualizedbooleanЯвно включить или отключить виртуальный список.
readonlybooleanMetadata; native select не блокируется.
disabledbooleanDisabled state.

Во встроенных adapters списки длиннее 10 элементов автоматически получают поиск и виртуализацию. Явный searchable переопределяет только видимость поиска; для больших списков виртуализация остаётся включённой по умолчанию.

Generated Filter передаёт эти настройки из field metadata. Контракт и пример: Filter и Metadata поля.

DOM values сравниваются через string normalization. Тег display-only и не передаёт change обратно в runtime.

Статический массив options можно передать обычным prop-выражением. Для внешнего справочника не нужно добавлять массив в defineProps: Composition предоставляет Vocab alias, а встроенная функция vocab(alias, mapping?) возвращает SourceFieldOption[] и реактивно обновляет Select после refresh кеша.

ts
defineComposition({
  data: {
    airlines: vocab('catalog-airlines'),
  },

  runtimes: {
    card: component('schedule-card'),
  },
})

Подробнее: Component SFC: справочники и Справочники (Vocab).