1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <template> <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange" >Check all</el-checkbox > <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange" > <el-checkbox v-for="city in cities" :key="city" :label="city">{{ city }}</el-checkbox> </el-checkbox-group> </template>
<script lang="ts" setup> import { ref } from 'vue'
const checkAll = ref(false) const isIndeterminate = ref(true) const checkedCities = ref(['Shanghai', 'Beijing']) const cities = ['Shanghai', 'Beijing', 'Guangzhou', 'Shenzhen']
const handleCheckAllChange = (val: boolean) => { checkedCities.value = val ? cities : [] isIndeterminate.value = false } const handleCheckedCitiesChange = (value: string[]) => { const checkedCount = value.length checkAll.value = checkedCount === cities.length isIndeterminate.value = checkedCount > 0 && checkedCount < cities.length } </script>
|