Skip to content

Checkbox 多选框

多选框组件,用于一组备选项中进行多选。

基础用法

单独使用可以表示两种状态之间的切换。

选中值: true, false
vue
<template>
  <x-checkbox v-model="checked">选项</x-checkbox>
</template>

<script setup>
import { ref } from 'vue'
const checked = ref(true)
</script>

禁用状态

多选框不可用状态。

vue
<template>
  <x-checkbox v-model="checked" disabled>禁用状态</x-checkbox>
</template>

多选框组

适用于多个勾选框绑定到同一个数组的情景,通过 CheckboxGroup 组件包裹。

选中值: [ "1" ]
vue
<template>
  <x-checkbox-group v-model="checked">
    <x-checkbox value="1">选项A</x-checkbox>
    <x-checkbox value="2">选项B</x-checkbox>
    <x-checkbox value="3">选项C</x-checkbox>
  </x-checkbox-group>
</template>

<script setup>
import { ref } from 'vue'
const checked = ref(['1'])
</script>

中间状态

indeterminate 属性用以表示 checkbox 的不确定状态,一般用于全选。

vue
<template>
  <x-checkbox
    :model-value="checked.length > 0"
    :indeterminate="checked.length > 0 && checked.length < 3"
    @change="handleCheckAll"
  >
    全选
  </x-checkbox>
  <x-checkbox-group v-model="checked">
    <x-checkbox value="1">选项A</x-checkbox>
    <x-checkbox value="2">选项B</x-checkbox>
    <x-checkbox value="3">选项C</x-checkbox>
  </x-checkbox-group>
</template>

<script setup>
import { ref } from 'vue'
const checked = ref([])

const handleCheckAll = () => {
  checked.value = checked.value.length === 3 ? [] : ['1', '2', '3']
}
</script>

可选项目数量限制

使用 minmax 属性能够限制可以被勾选的项目的数量。

选中值: [](至少选1个,最多选2个)
vue
<template>
  <x-checkbox-group v-model="checked" :min="1" :max="2">
    <x-checkbox value="1">选项A</x-checkbox>
    <x-checkbox value="2">选项B</x-checkbox>
    <x-checkbox value="3">选项C</x-checkbox>
    <x-checkbox value="4">选项D</x-checkbox>
  </x-checkbox-group>
</template>

多选框组禁用

vue
<template>
  <x-checkbox-group v-model="checked" disabled>
    <x-checkbox value="A">选项A</x-checkbox>
    <x-checkbox value="B">选项B</x-checkbox>
    <x-checkbox value="C">选项C</x-checkbox>
  </x-checkbox-group>
</template>

API

Checkbox Props

属性说明类型默认值
modelValue绑定值boolean | string | number | boolean[] | string[] | number[]false
value多选框的值string | number | boolean
label多选框的标签文本(也可使用默认插槽)string | number
disabled是否禁用booleanfalse
name原生 name 属性string
indeterminate是否为不确定状态booleanfalse

Checkbox Events

事件名说明回调参数
update:modelValue绑定值变化时触发(value: boolean | string | number | boolean[] | string[] | number[])
change绑定值变化时触发(value: boolean | string | number | boolean[] | string[] | number[])

CheckboxGroup Props

属性说明类型默认值
modelValue绑定值(string | number)[][]
disabled是否禁用所有子选项booleanfalse
min可被勾选的最小数量number0
max可被勾选的最大数量number0

CheckboxGroup Events

事件名说明回调参数
update:modelValue绑定值变化时触发(value: (string | number)[])
change绑定值变化时触发(value: (string | number)[])

基于 MIT 许可发布