Selaa lähdekoodia

Autocomplete: fix problem when input with Chinese input method (#4393)

Boik 8 vuotta sitten
vanhempi
commit
90eb1e1927
1 muutettua tiedostoa jossa 13 lisäystä ja 1 poistoa
  1. 13 1
      packages/autocomplete/src/autocomplete.vue

+ 13 - 1
packages/autocomplete/src/autocomplete.vue

@@ -9,6 +9,9 @@
       :size="size"
       :icon="icon"
       :on-icon-click="onIconClick"
+      @compositionstart.native="handleComposition"
+      @compositionupdate.native="handleComposition"
+      @compositionend.native="handleComposition"
       @change="handleChange"
       @focus="handleFocus"
       @blur="handleBlur"
@@ -71,6 +74,7 @@
     data() {
       return {
         isFocus: false,
+        isOnComposition: false,
         suggestions: [],
         loading: false,
         highlightedIndex: -1
@@ -100,9 +104,17 @@
           }
         });
       },
+      handleComposition(event) {
+        if (event.type === 'compositionend') {
+          this.isOnComposition = false;
+          this.handleChange(event.data);
+        } else {
+          this.isOnComposition = true;
+        }
+      },
       handleChange(value) {
         this.$emit('input', value);
-        if (!this.triggerOnFocus && !value) {
+        if (this.isOnComposition || (!this.triggerOnFocus && !value)) {
           this.suggestions = [];
           return;
         }