TUI

TsCheckbox 多选框

在一组备选项中进行多选

基础用法
单独使用可以表示两种状态之间的切换
复选框
示例代码
vue
<template>
<TsCheckbox v-model="checked">复选框</TsCheckbox>
</template>

<script setup>
import { ref } from 'vue';

const checked = ref(true);
</script>
禁用状态
多选框的不可用状态
禁用
选中且禁用
示例代码
vue
<template>
<TsCheckbox v-model="checked1" disabled>禁用</TsCheckbox>
<TsCheckbox v-model="checked2" disabled>选中且禁用</TsCheckbox>
</template>

<script setup>
import { ref } from 'vue';

const checked1 = ref(false);
const checked2 = ref(true);
</script>
多选框组
适用于在多个选项中选择多个的场景
选项1
选项2
选项3
示例代码
vue
<template>
<TsCheckboxGroup v-model="checkList">
  <TsCheckbox label="1">选项1</TsCheckbox>
  <TsCheckbox label="2">选项2</TsCheckbox>
  <TsCheckbox label="3">选项3</TsCheckbox>
</TsCheckboxGroup>
</template>

<script setup>
import { ref } from 'vue';

const checkList = ref(['1', '2']);
</script>
中间状态
indeterminate 属性用于表示 checkbox 的不确定状态,一般用于全选效果
全选
上海
北京
广州
深圳
示例代码
vue
<template>
  <div>
    <TsCheckbox 
      v-model="checkAll" 
      :indeterminate="isIndeterminate"
      @change="handleCheckAllChange"
    >
      全选
    </TsCheckbox>
    <div style="margin: 15px 0;"></div>
    <TsCheckboxGroup v-model="checkedCities" @change="handleCheckedCitiesChange">
      <TsCheckbox v-for="city in cities" :key="city" :label="city">
        {{ city }}
      </TsCheckbox>
    </TsCheckboxGroup>
  </div>
</template>

<script setup>
import { ref, computed } from 'vue';

const checkAll = ref(false);
const isIndeterminate = ref(true);
const checkedCities = ref(['上海', '北京']);
const cities = ['上海', '北京', '广州', '深圳'];

const handleCheckAllChange = (val) => {
  checkedCities.value = val ? [...cities] : [];
  isIndeterminate.value = false;
};

const handleCheckedCitiesChange = (value) => {
  const checkedCount = value.length;
  checkAll.value = checkedCount === cities.length;
  isIndeterminate.value = checkedCount > 0 && checkedCount < cities.length;
};
</script>