Commit 33c826ec166c2efbb40aef493f4810baf2214eb2

Authored by Rookie_Zoe
1 parent de361437

fix #5150

examples/routers/auto-complete.vue
1 1 <template>
2   - <div style="margin: 100px;width: 200px;">
3   - <AutoComplete placement="top" transfer v-model="value" icon="ios-search" :data="data" @on-search="handleSearch" @on-change="hc" :filter-method="fm">
4   - <!--<Option v-for="item in data" :value="item" :label="item" :key="item">-->
5   - <!--<span style="color: red">{{ item }}</span>-->
6   - <!--</Option>-->
7   - </AutoComplete>
8   - </div>
  2 + <div style="margin: 100px;width: 200px;">
  3 + <auto-complete v-model="value" :data="data" :disabled="disabled"></auto-complete>
  4 + </div>
9 5 </template>
10 6 <script>
11   -
12   - export default {
13   - props: {
14   -
15   - },
16   - data () {
17   - return {
18   - value: '',
19   - data: [],
20   -// data: ['Burns Bay Road', 'Downing Street', 'Wall Street']
21   - };
22   - },
23   - computed: {},
24   - methods: {
25   - handleSearch (value) {
26   - this.data = !value ? [] : [
27   - value + '@qq.com',
28   - value + '@sina.com',
29   - value + '@163.com'
30   - ]
31   - },
32   - hc (v) {
33   -// console.log(v)
34   - },
35   - fm (value, item) {
36   - return item.toUpperCase().indexOf(value.toUpperCase()) !== -1;
37   - }
38   - }
  7 +export default {
  8 + data() {
  9 + return {
  10 + value: "",
  11 + disabled: false,
  12 + data: []
39 13 };
40   -</script>
41 14 \ No newline at end of file
  15 + },
  16 + methods: {},
  17 + created() {
  18 + setTimeout(() => {
  19 + this.value = "1.0.0.5";
  20 + this.data = [
  21 + "12412515",
  22 + "123444",
  23 + "12355",
  24 + "12345",
  25 + "12312",
  26 + "1234",
  27 + "123",
  28 + "111",
  29 + "5.2.3.4",
  30 + "1.2.3.4",
  31 + "1.2.3.4.5",
  32 + "1.2.3.4.5.6",
  33 + "1.2.3.4.5.6.7",
  34 + "1.0.0.8",
  35 + "1.0.0.5",
  36 + "whb-03"
  37 + ];
  38 + // this.disabled = true;
  39 + }, 1000);
  40 + }
  41 +};
  42 +</script>
... ...
src/components/select/select.vue
... ... @@ -635,7 +635,18 @@
635 635 }, ANIMATION_TIMEOUT);
636 636 },
637 637 onQueryChange(query) {
638   - if (query.length > 0 && query !== this.query) this.visible = true;
  638 + if (query.length > 0 && query !== this.query) {
  639 + // in 'AutoComplete', when set an initial value asynchronously,
  640 + // the 'dropdown list' should be stay hidden.
  641 + // [issue #5150]
  642 + let isInputFocused =
  643 + document.hasFocus &&
  644 + document.hasFocus() &&
  645 + document.activeElement === this.$el.querySelector('input');
  646 +
  647 + this.visible = isInputFocused;
  648 + }
  649 +
639 650 this.query = query;
640 651 this.unchangedQuery = this.visible;
641 652 this.filterQueryChange = true;
... ...