diff --git a/src/tree-select/_example/base.vue b/src/tree-select/_example/base.vue index a13f38122..a0d8d11cb 100644 --- a/src/tree-select/_example/base.vue +++ b/src/tree-select/_example/base.vue @@ -3,7 +3,9 @@ style="width: 300px" :data="options" v-model="value" + :popupVisible="popupVisible" @blur="onBlurTrigger" + @popup-visible-change="onVisibleChange" filterable clearable placeholder="请选择" @@ -14,6 +16,7 @@ export default { data() { return { value: '', + popupVisible: false, options: [ { label: '广东省', @@ -51,6 +54,11 @@ export default { onBlurTrigger(context) { console.log(context); }, + onVisibleChange(v, c) { + if (c.trigger || c.node?.label !== '广州市') { + this.popupVisible = v; + } + }, }, }; diff --git a/src/tree-select/tree-select.tsx b/src/tree-select/tree-select.tsx index 7c689167f..2a507ee73 100644 --- a/src/tree-select/tree-select.tsx +++ b/src/tree-select/tree-select.tsx @@ -193,7 +193,7 @@ export default defineComponent({ // 多选模式屏蔽 Active 事件 if (props.multiple) return; - setInnerVisible(false, {}); + setInnerVisible(false, context); // 单选模式重复选择不清空 if (treeSelectValue.value === context.node.data[realValue.value]) {