Commit 2dc6888278ad9d4037f21d4c9df8ca31393e67dc

Authored by 梁灏
1 parent c736b0f1

fix #4938

examples/routers/select.vue
1 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 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 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 13 </template>
26 14 <script>
27 15 export default {
28 16 data () {
29 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 205 height: 24px;
206 206 line-height: 22px;
207 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 225 &-large&-multiple .@{css-prefix}tag{
... ... @@ -215,7 +227,7 @@
215 227 line-height: 26px;
216 228 font-size: @font-size-base;
217 229 i{
218   - top: 1px;
  230 + top: 6px;
219 231 }
220 232 }
221 233  
... ... @@ -225,8 +237,12 @@
225 237 font-size: @font-size-small;
226 238 padding: 0 6px;
227 239 margin: 3px 4px 2px 0;
  240 + span{
  241 + margin-right: 14px;
  242 + }
228 243 i{
229 244 top: 1px;
  245 + right: 2px;
230 246 }
231 247 }
232 248  
... ...