Prechádzať zdrojové kódy

Merge pull request #2466 from Leopoldthecoder/select-style

Select: update style if initially invisible
baiyaaaaa 8 rokov pred
rodič
commit
655572558a
1 zmenil súbory, kde vykonal 14 pridanie a 3 odobranie
  1. 14 3
      packages/select/src/select.vue

+ 14 - 3
packages/select/src/select.vue

@@ -363,7 +363,13 @@
       },
 
       getOption(value) {
-        const option = this.cachedOptions.filter(option => option.value === value)[0];
+        let option;
+        for (let i = 0, len = this.cachedOptions.length; i < len; i++) {
+          const cachedOption = this.cachedOptions[i];
+          if (cachedOption.value === value) {
+            option = cachedOption;
+          }
+        }
         if (option) return option;
         const label = typeof value === 'string' || typeof value === 'number'
           ? value : '';
@@ -606,6 +612,11 @@
 
       resetInputWidth() {
         this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width;
+      },
+
+      handleResize() {
+        this.resetInputWidth();
+        if (this.multiple) this.resetInputHeight();
       }
     },
 
@@ -632,7 +643,7 @@
       if (this.multiple && Array.isArray(this.value) && this.value.length > 0) {
         this.currentPlaceholder = '';
       }
-      addResizeListener(this.$el, this.resetInputWidth);
+      addResizeListener(this.$el, this.handleResize);
       if (this.remote && this.multiple) {
         this.resetInputHeight();
       }
@@ -644,7 +655,7 @@
     },
 
     destroyed() {
-      if (this.resetInputWidth) removeResizeListener(this.$el, this.resetInputWidth);
+      if (this.handleResize) removeResizeListener(this.$el, this.handleResize);
     }
   };
 </script>