2020-01-28 22:12:12 +08:00

48 lines
941 B
JavaScript

import { createNamespace } from '../utils';
import { ParentMixin } from '../mixins/relation';
const [createComponent, bem] = createNamespace('checkbox-group');
export default createComponent({
mixins: [ParentMixin('vanCheckbox')],
props: {
max: [Number, String],
disabled: Boolean,
iconSize: [Number, String],
checkedColor: String,
value: {
type: Array,
default: () => [],
},
},
watch: {
value(val) {
this.$emit('change', val);
},
},
methods: {
// @exposed-api
toggleAll(checked) {
if (checked === false) {
this.$emit('input', []);
return;
}
let { children } = this;
if (!checked) {
children = children.filter(item => !item.checked);
}
const names = children.map(item => item.name);
this.$emit('input', names);
},
},
render() {
return <div class={bem()}>{this.slots()}</div>;
},
});