<template>
<div class="page_four">
<el-checkbox
:indeterminate="isIndeterminate"
v-model="checkAll"
@change="handleCheckAllChange"
>全选</el-checkbox
>
<el-checkbox-group v-model="checkedArr" @change="handleCheckedCitiesChange">
<el-checkbox
v-for="(item, index) in checkItem"
:key="index"
:label="item"
>{{ item }}</el-checkbox
>
</el-checkbox-group>
</div>
</template>
<script lang="ts">
import { defineComponent, reactive, toRefs } from "vue";
export default defineComponent({
name: "pageFour",
setup() {
const state = reactive({
isIndeterminate: true,
checkAll: false,
checkedArr: ["油条", "豆浆"],
checkItem: ["玉米", "鸡蛋", "麻圆", "牛奶", "油条", "豆浆"],
});
function handleCheckAllChange(val: boolean) {
state.checkedArr = val ? state.checkItem : [];
state.isIndeterminate = false;
}
function handleCheckedCitiesChange(val: string[]) {
const checkedCount = val.length;
state.checkAll = checkedCount === state.checkItem.length;
state.isIndeterminate =
checkedCount > 0 && checkedCount < state.checkItem.length;
}
return {
...toRefs(state),
handleCheckAllChange,
handleCheckedCitiesChange,
};
},
});
</script>
checkbox全选
于 2022-09-16 16:31:00 首次发布