首先vue是数据驱动,elementUI基于vue的版本当然也是如此,不管你用的checkbox还是checkbox-group,基础版:单个的checkbox,绑定一个布尔值(true为选中,false取消选中),checkbox-group绑定一个字符串数组,里面存对应group里每个checkbox的label,数组里包含哪个label,哪个box就被选中了。进阶版:通过change事件监听选中值变化,可以做更进一步的操作,比如checkbox-group里总共有5个box,选中其中三个,通过change事件监听绑定绑定数组里的value,如果包含第二个选项,则弹出提示“友情提示,第二个选项不推荐选取”上面是开个玩笑,下面这个例子是通过监听是否被全部选中从而改变indeterminate状态的例子,官方文档里也有,你可以看看
全选
{{city}}
const cityOptions = ['上海', '北京', '广州', '深圳'];
export default {
data() {
return {
checkAll: false,
checkedCities: ['上海', '北京'],
cities: cityOptions,
isIndeterminate: true
};
},
methods: {
handleCheckAllChange(val) {
this.checkedCities = val ? cityOptions : [];
this.isIndeterminate = false;
},
handleCheckedCitiesChange(value) {
let checkedCount = value.length;
this.checkAll = checkedCount === this.cities.length;
this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
}
}
};
|