Commit c70ff0f294813abb05d1caaf8aa4b3dd395ed455
1 parent
78d8ea4d
fixed #915
Showing
2 changed files
with
11 additions
and
7 deletions
Show diff stats
examples/routers/select.vue
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | <Row> |
3 | 3 | <i-col span="4">{{model}}</i-col> |
4 | 4 | <i-col span="8"> |
5 | - <i-select v-model="model" @input="handleInput" multiple filterable remote :remote-method="remoteMethod" :loading="loading" clearable> | |
5 | + <i-select v-model="model" @input="handleInput" filterable remote :remote-method="remoteMethod" :loading="loading" clearable> | |
6 | 6 | <i-option v-for="option in options" :value="option.value" :key="new Date()">{{option.label}}</i-option> |
7 | 7 | </i-select> |
8 | 8 | </i-col> |
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | export default { |
14 | 14 | data () { |
15 | 15 | return { |
16 | - model: [], | |
16 | + model: '', | |
17 | 17 | options: [ |
18 | 18 | |
19 | 19 | ], |
... | ... | @@ -93,7 +93,10 @@ |
93 | 93 | }, |
94 | 94 | mounted () { |
95 | 95 | this.list = this.states.map(item => { |
96 | - return { value: item, label: item }; | |
96 | + return { | |
97 | + value: item, | |
98 | + label: 'L ' + item | |
99 | + }; | |
97 | 100 | }); |
98 | 101 | } |
99 | 102 | } | ... | ... |
src/components/select/select.vue
... | ... | @@ -118,6 +118,7 @@ |
118 | 118 | selectedMultiple: [], |
119 | 119 | focusIndex: 0, |
120 | 120 | query: '', |
121 | + lastQuery: '', | |
121 | 122 | selectToChangeQuery: false, // when select an option, set this first and set query, because query is watching, it will emit event |
122 | 123 | inputLength: 20, |
123 | 124 | notFound: false, |
... | ... | @@ -528,10 +529,10 @@ |
528 | 529 | this.query = child.label === undefined ? child.searchLabel : child.label; |
529 | 530 | } |
530 | 531 | }); |
531 | - // 如果删除了搜索词,下拉列表也情况了,所以强制调用一次remoteMethod | |
532 | - if (this.remote) { | |
532 | + // 如果删除了搜索词,下拉列表也清空了,所以强制调用一次remoteMethod | |
533 | + if (this.remote && this.query !== this.lastQuery) { | |
533 | 534 | this.$nextTick(() => { |
534 | - this.query = model; | |
535 | + this.query = this.lastQuery; | |
535 | 536 | }); |
536 | 537 | } |
537 | 538 | } else { |
... | ... | @@ -645,7 +646,7 @@ |
645 | 646 | this.findChild((child) => { |
646 | 647 | if (child.value === value) { |
647 | 648 | if (this.query !== '') this.selectToChangeQuery = true; |
648 | - this.query = child.label === undefined ? child.searchLabel : child.label; | |
649 | + this.lastQuery = this.query = child.label === undefined ? child.searchLabel : child.label; | |
649 | 650 | } |
650 | 651 | }); |
651 | 652 | } | ... | ... |