Commit 9013c49d7c9b0a04200a98705bd128c3e7df5864
1 parent
90399f84
update Select style with filterable & prefix
Showing
3 changed files
with
26 additions
and
4 deletions
Show diff stats
examples/routers/select.vue
1 | <template> | 1 | <template> |
2 | <div style="margin: 100px;"> | 2 | <div style="margin: 100px;"> |
3 | - <Select v-model="model1" style="width:200px" prefix="ios-albums"> | 3 | + <Select v-model="model1" filterable style="width:200px" prefix="ios-albums"> |
4 | <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option> | 4 | <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option> |
5 | </Select> | 5 | </Select> |
6 | 6 | ||
7 | - <Select v-model="model10" :max-tag-count="2" multiple style="width:400px" prefix="ios-albums"> | 7 | + <Select v-model="model10" filterable :max-tag-count="2" multiple style="width:400px"> |
8 | + <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option> | ||
9 | + </Select> | ||
10 | + | ||
11 | + <Select v-model="model10" filterable :max-tag-count="2" multiple style="width:400px" prefix="ios-albums"> | ||
8 | <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option> | 12 | <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option> |
9 | </Select> | 13 | </Select> |
10 | 14 |
src/components/select/select-head.vue
1 | <template> | 1 | <template> |
2 | - <div @click="onHeaderClick"> | 2 | + <div @click="onHeaderClick" :class="headCls"> |
3 | <span :class="[prefixCls + '-prefix']" v-if="$slots.prefix || prefix"> | 3 | <span :class="[prefixCls + '-prefix']" v-if="$slots.prefix || prefix"> |
4 | <slot name="prefix"> | 4 | <slot name="prefix"> |
5 | <Icon :type="prefix" v-if="prefix" /> | 5 | <Icon :type="prefix" v-if="prefix" /> |
@@ -168,6 +168,12 @@ | @@ -168,6 +168,12 @@ | ||
168 | }, | 168 | }, |
169 | selectedMultiple(){ | 169 | selectedMultiple(){ |
170 | return this.multiple ? this.values : []; | 170 | return this.multiple ? this.values : []; |
171 | + }, | ||
172 | + // 使用 prefix 时,在 filterable | ||
173 | + headCls () { | ||
174 | + return { | ||
175 | + [`${prefixCls}-head-flex`]: this.filterable && (this.$slots.prefix || this.prefix) | ||
176 | + }; | ||
171 | } | 177 | } |
172 | }, | 178 | }, |
173 | methods: { | 179 | methods: { |
src/styles/components/select.less
@@ -185,7 +185,7 @@ | @@ -185,7 +185,7 @@ | ||
185 | } | 185 | } |
186 | 186 | ||
187 | &-multiple &-input{ | 187 | &-multiple &-input{ |
188 | - height: @input-height-base - 3px; | 188 | + height: @input-height-base - 2px; |
189 | line-height: @input-height-base; | 189 | line-height: @input-height-base; |
190 | padding: 0 0 0 4px; | 190 | padding: 0 0 0 4px; |
191 | } | 191 | } |
@@ -260,6 +260,9 @@ | @@ -260,6 +260,9 @@ | ||
260 | &-prefix{ | 260 | &-prefix{ |
261 | display: inline-block; | 261 | display: inline-block; |
262 | vertical-align: middle; | 262 | vertical-align: middle; |
263 | + i{ | ||
264 | + vertical-align: top; | ||
265 | + } | ||
263 | } | 266 | } |
264 | &-head-with-prefix{ | 267 | &-head-with-prefix{ |
265 | display: inline-block !important; | 268 | display: inline-block !important; |
@@ -271,6 +274,15 @@ | @@ -271,6 +274,15 @@ | ||
271 | &-single &-head-with-prefix, &-multiple &-head-with-prefix{ | 274 | &-single &-head-with-prefix, &-multiple &-head-with-prefix{ |
272 | padding-left: 0 !important; | 275 | padding-left: 0 !important; |
273 | } | 276 | } |
277 | + | ||
278 | + &-head-flex{ | ||
279 | + display: flex; | ||
280 | + align-items: center; | ||
281 | + } | ||
282 | + | ||
283 | + &-multiple &-head-flex &-prefix{ | ||
284 | + margin-right: 4px; | ||
285 | + } | ||
274 | } | 286 | } |
275 | 287 | ||
276 | .select-item(@select-prefix-cls, @select-item-prefix-cls); | 288 | .select-item(@select-prefix-cls, @select-item-prefix-cls); |