From 9cd06f3b20171480be64811de111eef76601645a Mon Sep 17 00:00:00 2001 From: neverland Date: Mon, 16 Dec 2019 20:00:36 +0800 Subject: [PATCH] feat(Checkbox): improve toggleAll perf (#5285) --- src/checkbox-group/index.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/checkbox-group/index.js b/src/checkbox-group/index.js index b61a7d1e2..0f52b2717 100644 --- a/src/checkbox-group/index.js +++ b/src/checkbox-group/index.js @@ -24,10 +24,20 @@ export default createComponent({ }, methods: { + // @exposed-api toggleAll(checked) { - this.children.forEach(item => { - item.toggle(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); } },