diff --git a/packages/select/src/select.vue b/packages/select/src/select.vue index c1942c4b..95195f8c 100644 --- a/packages/select/src/select.vue +++ b/packages/select/src/select.vue @@ -243,6 +243,10 @@ this.inputLength = 20; } } else { + if (this.selectedInit) { + this.selectedInit = false; + return; + } this.valueChangeBySelected = true; this.$emit('input', val.value); this.$emit('change', val.value); @@ -258,11 +262,9 @@ } if (this.remote && typeof this.remoteMethod === 'function') { this.hoverIndex = -1; - if (!this.multiple) { - this.selected = {}; - } this.remoteMethod(val); this.voidRemoteQuery = val === ''; + this.broadcast('option', 'resetIndex'); } else if (typeof this.filterMethod === 'function') { this.filterMethod(val); } else { @@ -358,6 +360,7 @@ this.resetHoverIndex(); } } else { + this.selectedInit = !!init; this.selected = option; this.selectedLabel = option.currentLabel; this.hoverIndex = option.index; @@ -424,9 +427,6 @@ } if (!this.disabled) { this.visible = !this.visible; - if (this.remote && this.visible) { - this.selectedLabel = ''; - } } }, diff --git a/test/unit/specs/pagination.spec.js b/test/unit/specs/pagination.spec.js index 88d9fe2e..8cb6fadb 100644 --- a/test/unit/specs/pagination.spec.js +++ b/test/unit/specs/pagination.spec.js @@ -178,10 +178,12 @@ describe('Pagination', () => { }); expect(vm.trigger).to.false; - vm.$el.querySelectorAll('li.el-select-dropdown__item')[1].click(); setTimeout(_ => { - expect(vm.trigger).to.true; - done(); + vm.$el.querySelectorAll('li.el-select-dropdown__item')[1].click(); + setTimeout(_ => { + expect(vm.trigger).to.true; + done(); + }, 50); }, 50); });