Skip to content

SSelect

Обзор

Combobox: выбор из списка с триггером SInput, поиском и multiple.

Usage

Одиночный выбор с label и placeholder.

API

Краткий справочник props, slots и events — см. API Reference.

Guide

SSelect — combobox для выбора из списка: триггер на базе SInput, панель — SDropdown + SList.

  • Значение — v-model (примитив поля itemValue или объект опции при returnObject).
  • multiple — массив значений; отображение выбора в триггере через слот #selection (по умолчанию текст через запятую, для тегов — STag).
  • searchable="input" — фильтра в поле триггера; searchable="content" — отдельное поле поиска в шапке панели.
  • closeOnSelect — закрывать панель после выбора в single (по умолчанию true).
  • closableOptions — крестик справа у выбранных строк в списке (multiple).
  • Кастомная строка — слот #option (scope как у SList #item).
vue
<SSelect
  v-model="status"
  label="Status"
  placeholder="Select option"
  :options="statusOptions"
  clearable
/>
vue
<SSelect v-model="tags" multiple closable-options :options="options">
  <template #selection="slotScope">
    <STag
      v-for="(label, index) in slotScope.labels"
      :key="slotScope.values[index]"
      closable
      :model-value="label"
      @close="slotScope.removeValue(slotScope.values[index])"
    />
  </template>
</SSelect>

Props

Multiple

Clearable

Searchable (input)

Searchable (content)

Multiple с тегами

Слот #selection и STag для chips в триггере.

Теги и поиск в поле

Крестик в списке

Проп closableOptions — снятие выбора в строке списка.

Панель остаётся открытой

Проп closeOnSelect: false для single.

Return object

С ошибкой

Кастомная строка

Слот #option и SListItem.

API Reference

Свойства

ИмяТипОписаниеПо умолчанию
options обязательныйTItem[]Набор опций выпадающего списка.
itemValuekeyof TItem & stringПоле значения для v-model и фильтрации; по умолчанию value.'value'
itemTitlekeyof TItem & stringПоле подписи в списке и на триггере.'label'
itemSubtitlekeyof TItem & stringПоле подзаголовка строки списка.'subtitle'
itemIdkeyof TItem & stringПоле ключа строки для SList; по умолчанию совпадает с itemValue.
itemDisabledkeyof TItem & stringПоле флага disabled.'disabled'
itemIconLeftkeyof TItem & stringПоле имени иконки слева.'iconLeft'
multiplebooleanРазрешает выбор нескольких значений.false
returnObjectboolean & TReturnObjectВ v-model отдавать объект опции целиком, а не значение itemValue.

Тип boolean & TReturnObject (а не просто TReturnObject) обязателен: это и делает значение источником вывода дженерика TReturnObject, и сохраняет рантайм-регистрацию пропа как Boolean (иначе Vue выведет type: null). | false | | clearable | boolean | Кнопка очистки выбранных значений. | false | | closableOptions | boolean | Крестик справа в выбранных строках списка для снятия выбора. | false | | searchable | ESSelectSearchable | false | Фильтрация: в поле (input) или в шапке панели (content). | false | | closeOnSelect | boolean | Закрывает панель после выбора в single-режиме. | true | | listHeight | number | string | Максимальная высота списка опций; при малом числе пунктов подстраивается под контент. | 320 | | searchPlaceholder | string | Плейсхолдер поля поиска в панели при searchable="content". | 'Search' | | filterOption | (…) => … | Пользовательский предикат фильтрации опций. | — | | fitViewport | boolean | Ограничивать панель пересечением overflow-предков reference. Отключите (false) внутри контейнеров с overflow: hidden, если панель не появляется. | true | | modelValue / v-model:searchQuery | string | Двустороннее значение для v-model:searchQuery. | '' |

События

ИмяОписаниеPayload
clearСрабатывает после очистки значения кнопкой clear.
focusТриггер получил фокус.FocusEvent
blurТриггер потерял фокус.FocusEvent
openПанель открылась.
closeПанель закрылась.

Слоты

ИмяОписание
optionКастомная строка; scope — SList (item, key, …)
emptyСостояние пустой выдачи после фильтрации
panel-footerДополнительный блок под списком опций
label
prefix
prepend
selectionОтображение выбранных значений в multiple (теги, chips).
При searchable="input" поле фильтрации рендерится в control после содержимого слота.
value-suffix
message