Commit 3b005863389ce544cf09b2ed428d1e30284f6d10
1 parent
ba3e34e0
update Cascader
update Cascader
Showing
3 changed files
with
65 additions
and
1 deletions
Show diff stats
src/components/cascader/cascader.vue
... | ... | @@ -141,6 +141,7 @@ |
141 | 141 | emitValue (val, oldVal) { |
142 | 142 | if (JSON.stringify(val) !== oldVal) { |
143 | 143 | this.$emit('on-change', this.value, JSON.parse(JSON.stringify(this.selected))); |
144 | + this.$dispatch('on-form-change', this.value, JSON.parse(JSON.stringify(this.selected))); | |
144 | 145 | } |
145 | 146 | } |
146 | 147 | }, |
... | ... | @@ -168,6 +169,12 @@ |
168 | 169 | if (lastValue && !fromInit) { |
169 | 170 | this.handleClose(); |
170 | 171 | } |
172 | + }, | |
173 | + 'on-form-blur' () { | |
174 | + return false; | |
175 | + }, | |
176 | + 'on-form-change' () { | |
177 | + return false; | |
171 | 178 | } |
172 | 179 | }, |
173 | 180 | watch: { | ... | ... |
src/styles/components/cascader.less
test/routers/form.vue
... | ... | @@ -155,6 +155,9 @@ |
155 | 155 | <form-item label="两个日期" prop="date2"> |
156 | 156 | <Date-picker :value.sync="form.date2" type="daterange" placement="bottom-start" placeholder="选择日期" @on-change="c"></Date-picker> |
157 | 157 | </form-item> |
158 | + <form-item label="级联" prop="cascader"> | |
159 | + <Cascader :data="data" :value.sync="form.cascader"></Cascader> | |
160 | + </form-item> | |
158 | 161 | <form-item> |
159 | 162 | <i-button type="primary" @click="onSubmit('form')">提交</i-button> |
160 | 163 | </form-item> |
... | ... | @@ -166,6 +169,53 @@ |
166 | 169 | props: {}, |
167 | 170 | data () { |
168 | 171 | return { |
172 | + data: [{ | |
173 | + value: 'beijing', | |
174 | + label: '北京', | |
175 | + children: [ | |
176 | + { | |
177 | + value: 'gugong', | |
178 | + label: '故宫' | |
179 | + }, | |
180 | + { | |
181 | + value: 'tiantan', | |
182 | + label: '天坛' | |
183 | + }, | |
184 | + { | |
185 | + value: 'wangfujing', | |
186 | + label: '王府井' | |
187 | + } | |
188 | + ] | |
189 | + }, { | |
190 | + value: 'jiangsu', | |
191 | + label: '江苏', | |
192 | + children: [ | |
193 | + { | |
194 | + value: 'nanjing', | |
195 | + label: '南京', | |
196 | + children: [ | |
197 | + { | |
198 | + value: 'fuzimiao', | |
199 | + label: '夫子庙', | |
200 | + } | |
201 | + ] | |
202 | + }, | |
203 | + { | |
204 | + value: 'suzhou', | |
205 | + label: '苏州', | |
206 | + children: [ | |
207 | + { | |
208 | + value: 'zhuozhengyuan', | |
209 | + label: '拙政园', | |
210 | + }, | |
211 | + { | |
212 | + value: 'shizilin', | |
213 | + label: '狮子林', | |
214 | + } | |
215 | + ] | |
216 | + } | |
217 | + ], | |
218 | + }], | |
169 | 219 | cityList: [ |
170 | 220 | { |
171 | 221 | value: 'beijing', |
... | ... | @@ -202,7 +252,8 @@ |
202 | 252 | selectm: [], |
203 | 253 | slider: [40, 50], |
204 | 254 | date: '', |
205 | - date2: '' | |
255 | + date2: '', | |
256 | + cascader: [] | |
206 | 257 | }, |
207 | 258 | rules: { |
208 | 259 | mail: [ |
... | ... | @@ -272,6 +323,11 @@ |
272 | 323 | } |
273 | 324 | } |
274 | 325 | } |
326 | + ], | |
327 | + cascader: [ | |
328 | + { | |
329 | + type: 'array', required: true | |
330 | + } | |
275 | 331 | ] |
276 | 332 | } |
277 | 333 | } | ... | ... |