Commit 3ad47566a451f3a4231eeac9752edcd24c38d1e3
1 parent
8df36a0a
update Select
update Select
Showing
3 changed files
with
60 additions
and
2 deletions
Show diff stats
src/components/select/select.vue
@@ -310,8 +310,13 @@ | @@ -310,8 +310,13 @@ | ||
310 | value: value, | 310 | value: value, |
311 | label: label | 311 | label: label |
312 | }); | 312 | }); |
313 | + this.$dispatch('on-form-change', { | ||
314 | + value: value, | ||
315 | + label: label | ||
316 | + }); | ||
313 | } else { | 317 | } else { |
314 | this.$emit('on-change', value); | 318 | this.$emit('on-change', value); |
319 | + this.$dispatch('on-form-change', value); | ||
315 | } | 320 | } |
316 | } | 321 | } |
317 | } | 322 | } |
@@ -340,8 +345,10 @@ | @@ -340,8 +345,10 @@ | ||
340 | if (!init) { | 345 | if (!init) { |
341 | if (this.labelInValue) { | 346 | if (this.labelInValue) { |
342 | this.$emit('on-change', hybridValue); | 347 | this.$emit('on-change', hybridValue); |
348 | + this.$dispatch('on-form-change', hybridValue); | ||
343 | } else { | 349 | } else { |
344 | this.$emit('on-change', value); | 350 | this.$emit('on-change', value); |
351 | + this.$dispatch('on-form-change', value); | ||
345 | } | 352 | } |
346 | } | 353 | } |
347 | } | 354 | } |
src/styles/components/form.less
test/routers/form.vue
@@ -50,6 +50,16 @@ | @@ -50,6 +50,16 @@ | ||
50 | </Checkbox> | 50 | </Checkbox> |
51 | </Checkbox-group> | 51 | </Checkbox-group> |
52 | </form-item> | 52 | </form-item> |
53 | + <form-item label="select" prop="select"> | ||
54 | + <i-select :model.sync="form.select" style="width:200px" clearable> | ||
55 | + <i-option v-for="item in cityList" :value="item.value">{{ item.label }}</i-option> | ||
56 | + </i-select> | ||
57 | + </form-item> | ||
58 | + <form-item label="select多选" prop="selectm"> | ||
59 | + <i-select :model.sync="form.selectm" multiple style="width:260px"> | ||
60 | + <i-option v-for="item in cityList" :value="item.value">{{ item.label }}</i-option> | ||
61 | + </i-select> | ||
62 | + </form-item> | ||
53 | <form-item> | 63 | <form-item> |
54 | <i-button type="primary" @click="onSubmit('form')">提交</i-button> | 64 | <i-button type="primary" @click="onSubmit('form')">提交</i-button> |
55 | </form-item> | 65 | </form-item> |
@@ -61,12 +71,40 @@ | @@ -61,12 +71,40 @@ | ||
61 | props: {}, | 71 | props: {}, |
62 | data () { | 72 | data () { |
63 | return { | 73 | return { |
74 | + cityList: [ | ||
75 | + { | ||
76 | + value: 'beijing', | ||
77 | + label: '北京市' | ||
78 | + }, | ||
79 | + { | ||
80 | + value: 'shanghai', | ||
81 | + label: '上海市' | ||
82 | + }, | ||
83 | + { | ||
84 | + value: 'shenzhen', | ||
85 | + label: '深圳市' | ||
86 | + }, | ||
87 | + { | ||
88 | + value: 'hangzhou', | ||
89 | + label: '杭州市' | ||
90 | + }, | ||
91 | + { | ||
92 | + value: 'nanjing', | ||
93 | + label: '南京市' | ||
94 | + }, | ||
95 | + { | ||
96 | + value: 'chongqing', | ||
97 | + label: '重庆市' | ||
98 | + } | ||
99 | + ], | ||
64 | form: { | 100 | form: { |
65 | mail: '', | 101 | mail: '', |
66 | passwd: '', | 102 | passwd: '', |
67 | single: false, | 103 | single: false, |
68 | group: '', | 104 | group: '', |
69 | - checkboxgroup: [] | 105 | + checkboxgroup: [], |
106 | + select: '', | ||
107 | + selectm: [] | ||
70 | }, | 108 | }, |
71 | rules: { | 109 | rules: { |
72 | mail: [ | 110 | mail: [ |
@@ -97,6 +135,19 @@ | @@ -97,6 +135,19 @@ | ||
97 | { | 135 | { |
98 | required: true, message: '至多选择3个', max: 3, type: 'array' | 136 | required: true, message: '至多选择3个', max: 3, type: 'array' |
99 | } | 137 | } |
138 | + ], | ||
139 | + select: [ | ||
140 | + { | ||
141 | + required: true | ||
142 | + } | ||
143 | + ], | ||
144 | + selectm: [ | ||
145 | + { | ||
146 | + required: true, type: 'array' | ||
147 | + }, | ||
148 | + { | ||
149 | + min: 2, type: 'array' | ||
150 | + } | ||
100 | ] | 151 | ] |
101 | } | 152 | } |
102 | } | 153 | } |