diff --git a/packages/select/src/option.vue b/packages/select/src/option.vue index a343b5b94..5307a78e7 100644 --- a/packages/select/src/option.vue +++ b/packages/select/src/option.vue @@ -138,6 +138,8 @@ this.visible = new RegExp(escapeRegexpString(query), 'i').test(this.currentLabel) || this.created; if (!this.visible) { this.select.filteredOptionsCount--; + } else if (query === '') { + this.select.filteredOptionsCount = this.select.optionsCount; } } }, diff --git a/test/unit/specs/select.spec.js b/test/unit/specs/select.spec.js index 69677d009..61239f9c5 100644 --- a/test/unit/specs/select.spec.js +++ b/test/unit/specs/select.spec.js @@ -450,9 +450,11 @@ describe('Select', () => { vm = getSelectVm({ filterable: true }); const select = vm.$children[0]; setTimeout(() => { - select.selectedLabel = '面'; - select.onInputChange(); select.visible = true; + select.$nextTick(() => { + select.selectedLabel = '面'; + select.onInputChange(); + }); setTimeout(() => { expect(select.filteredOptionsCount).to.equal(1); done();