diff --git a/src/components/checkbox/ColorCheckbox.vue b/src/components/checkbox/ColorCheckbox.vue index 90efa10..b90e55e 100644 --- a/src/components/checkbox/ColorCheckbox.vue +++ b/src/components/checkbox/ColorCheckbox.vue @@ -42,8 +42,8 @@ const Group = { } }, watch: { - values() { - this.$emit('change', this.values, this.colors) + values(value) { + this.$emit('change', value, this.colors) }, defaultValues(value) { if (this.multiple) { @@ -61,9 +61,12 @@ const Group = { methods: { handleChange (option) { if (!option.checked) { - this.values = this.values.filter(item => item !== option.value) + if (this.values.indexOf(option.value) > -1) { + this.values = this.values.filter(item => item != option.value) + } } else { if (!this.multiple) { + this.values = [option.value] this.options.forEach(item => { if (item.value != option.value) { item.sChecked = false @@ -133,7 +136,9 @@ export default { }, methods: { toggle () { - this.sChecked = !this.sChecked + if (this.groupContext.multiple || !this.sChecked) { + this.sChecked = !this.sChecked + } }, initChecked() { let groupContext = this.groupContext