فهرست منبع

Merge pull request #302 from Leopoldthecoder/master

fix Select automatically expand issue
SkyAo 8 سال پیش
والد
کامیت
c44fa410b6
3فایلهای تغییر یافته به همراه9 افزوده شده و 8 حذف شده
  1. 1 0
      CHANGELOG.md
  2. 1 1
      packages/select/src/option.vue
  3. 7 7
      packages/select/src/select.vue

+ 1 - 0
CHANGELOG.md

@@ -14,6 +14,7 @@
 - 新增 Input textarea 类型的 rows, autosize 属性
 - 为 Tree 添加 getCheckedNodes 方法和 node-click、check-change 回调
 - 新增 DatePicker 禁用日期功能 #253
+- 修复 多选可搜索的 Select 下拉选项自动展开的问题
 
 #### 非兼容性更新
 

+ 1 - 1
packages/select/src/option.vue

@@ -114,7 +114,7 @@
       this.index = this.parent.options.indexOf(this);
 
       if (this.currentSelected === true) {
-        this.dispatch('select', 'addOptionToValue', this);
+        this.dispatch('select', 'addOptionToValue', [this, true]);
       }
 
       this.$on('queryChange', this.queryChange);

+ 7 - 7
packages/select/src/select.vue

@@ -214,6 +214,11 @@
 
       selected(val) {
         if (this.multiple) {
+          if (this.selected.length > 0) {
+            this.currentPlaceholder = '';
+          } else {
+            this.currentPlaceholder = this.cachedPlaceHolder;
+          }
           if (this.selectedInit) {
             this.selectedInit = false;
             return;
@@ -223,11 +228,6 @@
 
           this.$emit('input', result);
           this.$emit('change', result);
-          if (this.selected.length > 0) {
-            this.currentPlaceholder = '';
-          } else {
-            this.currentPlaceholder = this.cachedPlaceHolder;
-          }
           this.$nextTick(() => {
             this.resetInputHeight();
           });
@@ -340,10 +340,10 @@
         }
       },
 
-      addOptionToValue(option) {
+      addOptionToValue(option, init) {
         if (this.multiple) {
           if (this.selected.indexOf(option) === -1 && (this.remote ? this.value.indexOf(option.value) === -1 : true)) {
-            this.selectedInit = false;
+            this.selectedInit = !!init;
             this.selected.push(option);
             this.resetHoverIndex();
           }