Commit 2dc6888278ad9d4037f21d4c9df8ca31393e67dc

Authored by 梁灏
1 parent c736b0f1

fix #4938

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