Для готовой группы с заголовком, описанием и сообщениями берите CdsRadioGroup: она собрана из этой группы и обвязки CdsInput.
CdsSelectionControlGroupнужен, когда вы строите свой набор контролов.
Вариации
Общая модель и тип
Значение выбранного контрола хранит группа: v-model — на ней, у каждого вложенного контрола только своё value. Свойства type, true-icon и false-icon группа раздаёт всем контролам, а общий атрибут name для нативных input создаёт сама — переопределить его можно свойством name.
Множественный выбор
Массив в модели включает режим multiple: каждый контрол добавляет в неё своё value. Режим включается автоматически — свойство multiple нужно, только чтобы задать его вручную.
Направление
По умолчанию контролы выстраиваются в ряд и делят ширину группы поровну. direction="vertical" ставит их в столбец — так удобнее длинным подписям и наборам с описаниями.
Состояния
disabled блокирует всю группу, readonly запрещает менять выбор, не меняя внешний вид, error переводит все контролы в состояние ошибки. Отдельный вариант блокируется свойством disabled самого контрола.
Цвета и иконки
color задаёт цвет выбранного контрола, base-color — невыбранных, true-icon и false-icon — пару иконок состояний. Значения применяются сразу ко всем контролам группы.
Пробрасывание настроек
Свои настройки группа отдаёт компоненту, имя которого указано в defaults-target — по умолчанию это CdsSelectionControl. Поставьте туда имя готового контрола, и группа станет управлять им: так CdsRadioGroup раздаёт настройки радиокнопкам.
Сценарии использования
Фильтр по категориям
Модель-массив собирает отмеченные категории, а список пересобирается на лету через computed. inline оставляет контролам ширину подписи, поэтому фильтры идут плотным рядом.
Плитки выбора
Группа не диктует контролам разметку: в слоте input каждый рисует свою плитку, а группа по-прежнему хранит выбранное значение и связывает нативные input одним name.
API
Пропсы, события и слоты отдельного контрола — на странице CdsSelectionControl.
Пропсы
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
activeColor | string | undefined | — | Цвет компонента, когда он находится в активном состоянии |
baseColor | string | undefined | — | Цвет неактивного компонента |
bgColor | string | undefined | — | Цвет фона компонента |
color | string | undefined | — | Цвет компонента |
defaultsTarget | string | undefined | — | Имя дочернего компонента, которому пробрасываются значения пропсов группы по умолчанию |
direction | "horizontal" | "vertical" | undefined | 'horizontal' | Переключение между горизонтальным или вертикальным отображением. |
disabled | boolean | null | undefined | null | Заблокированное состояние |
error | boolean | undefined | — | Переводит компонент в визуальное состояние ошибки |
falseIcon | IconValue | undefined | — | Иконка невыбранного состояния |
id | string | undefined | — | Уникальный идентификатор компонента |
inline | boolean | undefined | — | Отображает контрол как inline-элемент — контейнер не растягивается на всю ширину |
modelValue | any | — | Значение компонента (v-model). В группе — значение выбранного контрола, при multiple — массив выбранных значений |
multiple | boolean | null | undefined | null | Разрешает выбор нескольких значений — модель становится массивом. Включается автоматически, если в modelValue передан массив |
name | string | undefined | — | Атрибут name нативного элемента input. В группе одно имя объединяет все вложенные контролы |
readonly | boolean | null | undefined | null | Только для чтения |
textColor | string | undefined | — | Цвет текста компонента |
theme | string | undefined | — | Тема компонента |
trueIcon | IconValue | undefined | — | Иконка выбранного состояния |
type | string | undefined | — | Тип нативного элемента input — например, radio или checkbox |
valueComparator | ValueComparator | undefined | true | Функция сравнения значения модели со значением value контрола. По умолчанию — глубокое сравнение |
События
| Имя | Тип | Описание |
|---|---|---|
update:modelValue | [value: any] | Сработало при изменении выбора в группе. Передаёт новое значение группы |
Слоты
| Имя | Тип | Описание |
|---|---|---|
default | any | Элементы управления группы — чекбоксы или радиокнопки |