diff --git a/examples/routers/select.vue b/examples/routers/select.vue index 5592ce0..81369a1 100644 --- a/examples/routers/select.vue +++ b/examples/routers/select.vue @@ -219,15 +219,25 @@ @@ -235,37 +245,52 @@ export default { data () { return { - cityList: [ - { - value: 'New York', - label: 'New York' - }, - { - value: 'London', - label: 'London' - }, - { - value: 'Sydney', - label: 'Sydney' - }, - { - value: 'Ottawa', - label: 'Ottawa' - }, - { - value: 'Paris', - label: 'Paris' - }, - { - value: 'Canberra', - label: 'Canberra' - } - ], - model11: 'New York', - model12: [], - model13: 'New York' + model13: '', + loading1: false, + options1: [], + model14: [], + loading2: false, + options2: [], + list: ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New hampshire', 'New jersey', 'New mexico', 'New york', 'North carolina', 'North dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode island', 'South carolina', 'South dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West virginia', 'Wisconsin', 'Wyoming'] + } + }, + methods: { + remoteMethod1 (query) { + if (query !== '') { + this.loading1 = true; + setTimeout(() => { + this.loading1 = false; + const list = this.list.map(item => { + return { + value: item, + label: item + }; + }); + this.options1 = list.filter(item => item.label.toLowerCase().indexOf(query.toLowerCase()) > -1); + }, 200); + } else { + this.options1 = []; + } + }, + remoteMethod2 (query) { + if (query !== '') { + this.loading2 = true; + setTimeout(() => { + this.loading2 = false; + const list = this.list.map(item => { + return { + value: item, + label: item + }; + }); + this.options2 = list.filter(item => item.label.toLowerCase().indexOf(query.toLowerCase()) > -1); + }, 200); + } else { + this.options2 = []; + } } } } + diff --git a/src/components/select/select.vue b/src/components/select/select.vue index 0404b47..a6f54c6 100644 --- a/src/components/select/select.vue +++ b/src/components/select/select.vue @@ -556,6 +556,7 @@ }, resetScrollTop () { const index = this.focusIndex - 1; + if (!this.optionInstances.length) return; let bottomOverflowDistance = this.optionInstances[index].$el.getBoundingClientRect().bottom - this.$refs.dropdown.$el.getBoundingClientRect().bottom; let topOverflowDistance = this.optionInstances[index].$el.getBoundingClientRect().top - this.$refs.dropdown.$el.getBoundingClientRect().top; -- libgit2 0.21.4