diff --git a/src/components/cascader/caspanel.vue b/src/components/cascader/caspanel.vue index 3e5e8f9d..7b5829dd 100644 --- a/src/components/cascader/caspanel.vue +++ b/src/components/cascader/caspanel.vue @@ -77,14 +77,16 @@ // return value back recursion // 向上递归,设置临时选中值(并非真实选中) const backItem = this.getBaseItem(item); - // #5021 - if (this.changeOnSelect) { - this.tmpItem = backItem; - this.emitUpdate([backItem]); - } else if (backItem.label !== this.tmpItem.label || backItem.value !== this.tmpItem.value) { + // #5021 for this.changeOnSelect,加 if 是因为 #4472 + if ( + this.changeOnSelect || + (backItem.label !== this.tmpItem.label || backItem.value !== this.tmpItem.value) || + (backItem.label === this.tmpItem.label && backItem.value === this.tmpItem.value) + ) { this.tmpItem = backItem; this.emitUpdate([backItem]); } + if (item.children && item.children.length){ this.sublist = item.children; this.dispatch('Cascader', 'on-result-change', {