From 21f6940672e1c692b0f612214233e0f882b940fc Mon Sep 17 00:00:00 2001
From: 郑敏 <andy@zhengmins-MacBook-Pro.local>
Date: Thu, 7 Jun 2018 09:58:13 +0800
Subject: [PATCH] fixed #3817 #3836

---
 src/components/select/select-head.vue |  2 +-
 src/components/select/select.vue      | 10 ++++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/components/select/select-head.vue b/src/components/select/select-head.vue
index 4165e5f..10004b8 100644
--- a/src/components/select/select-head.vue
+++ b/src/components/select/select-head.vue
@@ -58,7 +58,7 @@
                 default: false
             },
             initialLabel: {
-                type: String,
+                type: [String, Number, Array],
             },
             values: {
                 type: Array,
diff --git a/src/components/select/select.vue b/src/components/select/select.vue
index d426c54..8e177c0 100644
--- a/src/components/select/select.vue
+++ b/src/components/select/select.vue
@@ -351,7 +351,7 @@
                         });
                     });
                 }
-
+                let hasDefaultSelected = slotOptions.some(option => this.query === option.key);
                 for (let option of slotOptions) {
 
                     const cOptions = option.componentOptions;
@@ -375,11 +375,13 @@
                         if (cOptions.children.length > 0) selectOptions.push({...option});
                     } else {
                         // ignore option if not passing filter
-                        const optionPassesFilter = this.filterable ? this.validateOption(cOptions) : option;
-                        if (!optionPassesFilter) continue;
+                        if (!hasDefaultSelected) {
+                            const optionPassesFilter = this.filterable ? this.validateOption(cOptions) : option;
+                            if (!optionPassesFilter) continue;
+                        }
 
                         optionCounter = optionCounter + 1;
-                        selectOptions.push(this.processOption(option, selectedValues, optionCounter === currentIndex));
+                        selectOptions.push(this.processOption(option, selectedValues, false));
                     }
                 }
 
--
libgit2 0.21.4