在一组备选项中进行多选
<template>
<TsCheckbox v-model="checked">复选框</TsCheckbox>
</template>
<script setup>
import { ref } from 'vue';
const checked = ref(true);
</script><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><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><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>