Skip to content

Checkbox 多选框

在一组备选项中进行多选。

基础用法

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

选中项绑定到v-model显示的变量上。它的值是 Boolean 类型的。
vue
<template>
  <ImCheckbox v-model="checked" label="Hello Checkbox" />
</template>

禁用状态

多选框不可用状态 设置 disabled 属性为 true 即可。

vue
<template>
  <ImCheckbox label="Hello Checkbox" disabled />
</template>

只读状态

多选框只读状态 设置 readonly 属性为 true 即可。

vue
<template>
  <ImCheckbox label="Hello Checkbox" readonly />
</template>

多选框组

多选情况下,每一个 ImCheckbox 必须传入 value 属性,以及 v-model必须是数组
是否全选:[]
vue
<template>
  <ImCheckbox
    v-model="isCheckAll"
    :indeterminate="indeterminate"
    label="全选"
    @change="onCheckAll" />
  <div>{{ checkedList }}</div>
  <ImCheckbox
    :value="item"
    v-model="checkedList"
    @change="onItemChange"
    v-for="item in list"
    >选项 {{ item }}</ImCheckbox
  >
</template>
<script setup lang="ts">
import { ref, computed } from 'vue';

const checkedList = ref([]);
const isCheckAll = ref(false);
const indeterminate = computed(
  () =>
    checkedList.value.length > 0 &&
    list.length > checkedList.value.length &&
    !isCheckAll.value
);
const list = ['1', '2', '3'];

watch(
  () => checkedList.value,
  (val) => {
    isCheckAll.value = val.length === list.length;
  }
);
const onCheckAll = () => {
  if (isCheckAll.value) {
    checkedList.value = list;
  } else {
    checkedList.value = [];
  }
};
</script>

API

属性说明类型默认值
v-model绑定值Booleanfalse
label显示的文本String
disabled是否禁用Booleanfalse
readonly是否只读Booleanfalse
indeterminate是否为半选状态Booleanfalse
change状态改变时的回调函数Function
name原生 name 属性String
value绑定的值String|Number

基于 MIT 协议发布