<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title><linkrel="stylesheet"href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"><scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><scriptsrc="https://unpkg.com/element-ui/lib/index.js"></script></head><body><divid='app'><!-- on v-model's checkbox default bind type is boolean,value if true will be checked --><el-row><el-checkboxv-model='checked'>checkbox1</el-checkbox></el-row><!-- disabled checkbox --><el-row><el-checkboxv-model='checked'disabled>checkbox1</el-checkbox><el-checkboxv-model='checked'disabled>checkbox2</el-checkbox></el-row><!-- el-checkbox-group v-model type is array,label contains array will be checked --><el-row><el-checkbox-groupv-model='checkedList'><el-checkboxv-for='item in checkboxList':key="item.id":label='item.id'>{{item.name}}</el-checkbox></el-checkbox-group></el-row><!-- min max controll can be checked count --><el-row><el-checkbox-groupv-model='checkedList':min='1':max='3'><el-checkboxv-for='item in checkboxList':key='item.id':label='item.id'>{{item.name}}</el-checkbox></el-checkbox-group></el-row><!-- el-checkbox-button + size --><el-row><el-checkbox-groupv-model='checkedList'><el-checkbox-buttonv-for='item in checkboxList':key='item.id':label='item.id'>{{item.name}}</el-checkbox-button></el-checkbox-group></el-row><el-row><el-checkbox-groupv-model='checkedList'size='medium'><el-checkbox-buttonv-for='item in checkboxList':key='item.id':label='item.id'>{{item.name}}</el-checkbox-button></el-checkbox-group></el-row><el-row><el-checkbox-groupv-model='checkedList'size='small'><el-checkbox-buttonv-for='item in checkboxList':key='item.id':label='item.id'>{{item.name}}</el-checkbox-button></el-checkbox-group></el-row><el-row><el-checkbox-groupv-model='checkedList'size='mini'disabled><el-checkbox-buttonv-for='item in checkboxList':key='item.id':label='item.id'>{{item.name}}</el-checkbox-button></el-checkbox-group></el-row><!-- border --><el-row><el-checkbox-groupv-model='checkedList'><el-checkboxv-for='item in checkboxList':key='item.id':label='item.id'border>{{item.name}}</el-checkbox></el-checkbox-group></el-row><el-row><el-checkbox-groupv-model='checkedList'size='mediumn'><el-checkboxv-for='item in checkboxList':key='item.id':label='item.id'border>{{item.name}}</el-checkbox></el-checkbox-group></el-row><el-row><el-checkbox-groupv-model='checkedList'size='small'><el-checkboxv-for='item in checkboxList':key='item.id':label='item.id'border>{{item.name}}</el-checkbox></el-checkbox-group></el-row><el-row><el-checkbox-groupv-model='checkedList'size='mini'><el-checkboxv-for='item in checkboxList':key='item.id':label='item.id'border>{{item.name}}</el-checkbox></el-checkbox-group></el-row><!-- 难点:indeterminate --><el-row><el-checkbox:indeterminate='indeterminate'v-model='checkAll'@change='changeCheckkAll'>checkAll</el-checkbox><el-checkbox-groupv-model='checkedList'@change='changeCheckedAll'><el-checkboxv-for='item in checkboxList':key='item.id':label='item.id'>{{item.name}}</el-checkbox></el-checkbox-group></el-row></div></body></html><script>let vm =newVue({el:'#app',data:{checked:true,checkboxList:[{id:1,name:'number1'},{id:2,name:'number2'},{id:3,name:'number3'},{id:4,name:'number4'}],checkedList:[1,3],checkedAll:false,indeterminate:false,},created(){this.changeCheckedAll()},monuted(){this.changeCheckedAll()},methods:{changeCheckkAll(){let checkedLength =this.checkedList.length
let totalLength =this.checkboxList.length
let flag = checkedLength === totalLength
this.checkedList =[]this.indeterminate =falseif(!flag){this.checkboxList.forEach(element=>{this.checkedList.push(element.id)});}},changeCheckedAll(){let checkedLength =this.checkedList.length
let totalLength =this.checkboxList.length
let flag = checkedLength === totalLength
if(flag){this.checkAll =truethis.indeterminate =false}else{this.checkAll =falsethis.indeterminate = totalLength>checkedLength && checkedLength >0}}}})</script><style>.el-row{margin-bottom:20px;}</style>