Checkbox 多选框
在一组备选项中进行多选。
基础用法
禁用状态
自定义
多选框组
中间状态
可选项目数量的限制
按钮样式
带有边框
API
Checkbox Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| v-model | 是否为选中状态 | boolean | false |
| name | 标识符,通常为一个唯一的字符串或数字 | any | - |
| size | Checkbox 的尺寸,可选large、small | string | - |
| type | Checkbox 的类型,可选button | string | - |
| border | 是否显示边框 | boolean | false |
| shape | 形状,可选值为 square | string | round |
| disabled | 是否禁用复选框 | boolean | false |
| label-disabled | 是否禁用复选框文本点击 | boolean | false |
| label-position | 文本位置,可选值为 left | string | right |
| icon-size | 图标大小,默认单位为 px | number | string | 20px |
| checked-color | 选中状态颜色 | string | #1989fa |
| bind-group | 是否与复选框组绑定 | boolean | true |
CheckboxGroup Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| v-model | 所有选中项的标识符 | any[] | - |
| size | Checkbox 的尺寸,可选large、small | string | - |
| disabled | 是否禁用所有复选框 | boolean | false |
| max | 最大可选数,0 为无限制 | number | string | 0 |
| min | 最小可选数,0 为无限制 | number | string | 0 |
| icon-size | 所有复选框的图标大小,默认单位为 px | number | string | 20px |
| checked-color | 所有复选框的选中状态颜色 | string | #1989fa |
Checkbox Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| change | 当绑定值变化时触发的事件 | checked: boolean |
| click | 点击复选框时触发 | event: MouseEvent |
CheckboxGroup Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| change | 当绑定值变化时触发的事件 | names: any[] |
Checkbox Slots
| 名称 | 说明 | 参数 |
|---|---|---|
| default | 自定义文本 | { checked: boolean, disabled: boolean } |
| icon | 自定义图标 | { checked: boolean, disabled: boolean } |
CheckboxGroup 方法
通过 ref 可以获取到 CheckboxGroup 实例并调用实例方法。
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| toggleAll | 切换所有复选框,传 true 为选中,false 为取消选中,不传参为取反 | options?: boolean | object | - |
toggleAll 方法示例
js
import { ref } from 'vue';
import type { CheckboxGroupInstance } from 'ryxon';
const checkboxGroupRef = ref<CheckboxGroupInstance>();
// 全部反选
checkboxGroupRef?.value.toggleAll();
// 全部选中
checkboxGroupRef?.value.toggleAll(true);
// 全部取消
checkboxGroupRef?.value.toggleAll(false);
// 全部反选,并跳过禁用的复选框
checkboxGroupRef?.value.toggleAll({
skipDisabled: true,
});
// 全部选中,并跳过禁用的复选框
checkboxGroupRef?.value.toggleAll({
checked: true,
skipDisabled: true,
});Checkbox 方法
通过 ref 可以获取到 Checkbox 实例并调用实例方法。
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| toggle | 切换选中状态,传 true 为选中,false 为取消选中,不传参为取反 | checked?: boolean | - |
类型定义
组件导出以下类型定义:
ts
import type {
CheckboxProps,
CheckboxShape,
CheckboxInstance,
CheckboxLabelPosition,
CheckboxGroupProps,
CheckboxGroupInstance,
CheckboxGroupToggleAllOptions
} from 'ryxon'CheckboxInstance 和 CheckboxGroupInstance 是组件实例的类型,用法如下:
ts
import { ref } from 'vue'
import type { CheckboxInstance, CheckboxGroupInstance } from 'ryxon'
const checkboxRef = ref<CheckboxInstance>()
const checkboxGroupRef = ref<CheckboxGroupInstance>()
checkboxRef.value?.toggle()
checkboxGroupRef.value?.toggleAll()主题定制
样式变量
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件
| 名称 | 默认值 | 描述 |
|---|---|---|
| --r-checkbox-size | 14px | - |
| --r-checkbox-border-color | var(--r-gray-5) | - |
| --r-checkbox-duration | var(--r-duration-fast) | - |
| --r-checkbox-label-margin | var(--r-padding-xs) | - |
| --r-checkbox-label-color | var(--r-text-color) | - |
| --r-checkbox-checked-icon-color | var(--r-primary-color) | - |
| --r-checkbox-disabled-icon-color | var(--r-gray-5) | - |
| --r-checkbox-disabled-label-color | var(--r-text-color-3) | - |
| --r-checkbox-disabled-background | var(--r-border-color) | - |
| --r-checkbox-button-checked-bg-color | var(--r-primary-color) | - |
| --r-checkbox-button-checked-text-color | var(--r-white) | - |
| --r-checkbox-button-checked-border-color | var(--r-primary-color) | - |
