Commit 2dc6888278ad9d4037f21d4c9df8ca31393e67dc
1 parent
c736b0f1
fix #4938
Showing
2 changed files
with
56 additions
and
68 deletions
Show diff stats
examples/routers/select.vue
1 | <template> | 1 | <template> |
2 | - <Row> | ||
3 | - <Col span="12" style="padding-right:10px"> | ||
4 | - <Select | ||
5 | - v-model="model13" | ||
6 | - filterable | ||
7 | - remote | ||
8 | - :remote-method="remoteMethod1" | ||
9 | - :loading="loading1"> | ||
10 | - <Option v-for="(option, index) in options1" :value="option.value" :key="index">{{option.label}}</Option> | 2 | + <div style="margin: 200px;"> |
3 | + <Select size="small" v-model="model10" multiple style="width:260px"> | ||
4 | + <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option> | ||
11 | </Select> | 5 | </Select> |
12 | - </Col> | ||
13 | - <Col span="12"> | ||
14 | - <Select | ||
15 | - v-model="model14" | ||
16 | - multiple | ||
17 | - filterable | ||
18 | - remote | ||
19 | - :remote-method="remoteMethod2" | ||
20 | - :loading="loading2"> | ||
21 | - <Option v-for="(option, index) in options2" :value="option.value" :key="index">{{option.label}}</Option> | 6 | + <Select v-model="model10" multiple style="width:260px"> |
7 | + <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option> | ||
22 | </Select> | 8 | </Select> |
23 | - </Col> | ||
24 | - </Row> | 9 | + <Select size="large" v-model="model10" multiple style="width:260px"> |
10 | + <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option> | ||
11 | + </Select> | ||
12 | + </div> | ||
25 | </template> | 13 | </template> |
26 | <script> | 14 | <script> |
27 | export default { | 15 | export default { |
28 | data () { | 16 | data () { |
29 | return { | 17 | return { |
30 | - model13: '', | ||
31 | - loading1: false, | ||
32 | - options1: [], | ||
33 | - model14: [], | ||
34 | - loading2: false, | ||
35 | - options2: [], | ||
36 | - list: ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New hampshire', 'New jersey', 'New mexico', 'New york', 'North carolina', 'North dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode island', 'South carolina', 'South dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West virginia', 'Wisconsin', 'Wyoming'] | ||
37 | - } | ||
38 | - }, | ||
39 | - methods: { | ||
40 | - remoteMethod1 (query) { | ||
41 | - if (query !== '') { | ||
42 | - this.loading1 = true; | ||
43 | - setTimeout(() => { | ||
44 | - this.loading1 = false; | ||
45 | - const list = this.list.map(item => { | ||
46 | - return { | ||
47 | - value: item, | ||
48 | - label: item | ||
49 | - }; | ||
50 | - }); | ||
51 | - this.options1 = list.filter(item => item.label.toLowerCase().indexOf(query.toLowerCase()) > -1); | ||
52 | - }, 200); | ||
53 | - } else { | ||
54 | - this.options1 = []; | ||
55 | - } | ||
56 | - }, | ||
57 | - remoteMethod2 (query) { | ||
58 | - if (query !== '') { | ||
59 | - this.loading2 = true; | ||
60 | - setTimeout(() => { | ||
61 | - this.loading2 = false; | ||
62 | - const list = this.list.map(item => { | ||
63 | - return { | ||
64 | - value: item, | ||
65 | - label: item | ||
66 | - }; | ||
67 | - }); | ||
68 | - this.options2 = list.filter(item => item.label.toLowerCase().indexOf(query.toLowerCase()) > -1); | ||
69 | - }, 200); | ||
70 | - } else { | ||
71 | - this.options2 = []; | ||
72 | - } | 18 | + cityList: [ |
19 | + { | ||
20 | + value: 'New York', | ||
21 | + label: 'New York' | ||
22 | + }, | ||
23 | + { | ||
24 | + value: 'London', | ||
25 | + label: 'LondonLondonLondonLondonLondonLondonLondonLondonLondonLondonLondonLondonLondonLondonLondonLondonLondonLondon' | ||
26 | + }, | ||
27 | + { | ||
28 | + value: 'Sydney', | ||
29 | + label: 'Sydney' | ||
30 | + }, | ||
31 | + { | ||
32 | + value: 'Ottawa', | ||
33 | + label: 'Ottawa' | ||
34 | + }, | ||
35 | + { | ||
36 | + value: 'Paris', | ||
37 | + label: 'Paris' | ||
38 | + }, | ||
39 | + { | ||
40 | + value: 'Canberra', | ||
41 | + label: 'Canberra' | ||
42 | + } | ||
43 | + ], | ||
44 | + model10: ['New York', 'London'] | ||
73 | } | 45 | } |
74 | } | 46 | } |
75 | } | 47 | } |
src/styles/components/select.less
@@ -205,9 +205,21 @@ | @@ -205,9 +205,21 @@ | ||
205 | height: 24px; | 205 | height: 24px; |
206 | line-height: 22px; | 206 | line-height: 22px; |
207 | margin: 3px 4px 3px 0; | 207 | margin: 3px 4px 3px 0; |
208 | - //i{ | ||
209 | - // top: 2px; | ||
210 | - //} | 208 | + max-width: 99%; |
209 | + position: relative; | ||
210 | + span{ | ||
211 | + display: block; | ||
212 | + margin-right: 14px; | ||
213 | + overflow: hidden; | ||
214 | + text-overflow: ellipsis; | ||
215 | + white-space: nowrap; | ||
216 | + } | ||
217 | + i{ | ||
218 | + display: block; | ||
219 | + position: absolute; | ||
220 | + right: 4px; | ||
221 | + top: 4px; | ||
222 | + } | ||
211 | } | 223 | } |
212 | 224 | ||
213 | &-large&-multiple .@{css-prefix}tag{ | 225 | &-large&-multiple .@{css-prefix}tag{ |
@@ -215,7 +227,7 @@ | @@ -215,7 +227,7 @@ | ||
215 | line-height: 26px; | 227 | line-height: 26px; |
216 | font-size: @font-size-base; | 228 | font-size: @font-size-base; |
217 | i{ | 229 | i{ |
218 | - top: 1px; | 230 | + top: 6px; |
219 | } | 231 | } |
220 | } | 232 | } |
221 | 233 | ||
@@ -225,8 +237,12 @@ | @@ -225,8 +237,12 @@ | ||
225 | font-size: @font-size-small; | 237 | font-size: @font-size-small; |
226 | padding: 0 6px; | 238 | padding: 0 6px; |
227 | margin: 3px 4px 2px 0; | 239 | margin: 3px 4px 2px 0; |
240 | + span{ | ||
241 | + margin-right: 14px; | ||
242 | + } | ||
228 | i{ | 243 | i{ |
229 | top: 1px; | 244 | top: 1px; |
245 | + right: 2px; | ||
230 | } | 246 | } |
231 | } | 247 | } |
232 | 248 |