1234567891011121314151617181920212223242526272829303132333435 |
- <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>
|