<div align="left"> <el-checkbox v-model="checked" @change="checked1" /> 全选/反选 </div> <el-tree :data="data" ref="tree" show-checkbox node-key="id" :default-expanded-keys="[1, 2]" @check="click" > </el-tree>
// 全选反选 const checked1 = () => { // el-tree全选事件 if (checked.value) { // 全选 tree.value.setCheckedNodes(data) } else { // 取消选中 tree.value.setCheckedKeys([]) } } // 点击复选框自动判断全选框状态(复选框点击事件) const click = () => { let dataReceive = tree.value.getCheckedNodes() let array = [] let array2 = [] for (let index = 0; index < data.length; index++) { array.push(data[index].id) } for (let index = 0; index < dataReceive.length; index++) { array2.push(dataReceive[index].id) } let sum = array.length let num = 0 for (let index = 0; index < array.length; index++) { if (array2.indexOf(array[index]) > -1) { num += 1 } } console.log(num) if (num == sum) { checked.value = true } else { checked.value = false } }
// 全选反选 const checked1 = () => { // el-tree全选事件 if (checked.value) { // 全选 tree.value.setCheckedNodes(data) } else { // 取消选中 tree.value.setCheckedKeys([]) } } // 点击复选框自动判断全选框状态(复选框点击事件) const click = () => { let dataReceive = tree.value.getCheckedNodes() let array = [] let array2 = [] for (let index = 0; index < data.length; index++) { array.push(data[index].id) } for (let index = 0; index < dataReceive.length; index++) { array2.push(dataReceive[index].id) } let sum = array.length let num = 0 for (let index = 0; index < array.length; index++) { if (array2.indexOf(array[index]) > -1) { num += 1 } } console.log(num) if (num == sum) { checked.value = true } else { checked.value = false } }