Commit cc419499906a2321410e8a446ae690688ccd96a2
1 parent
d270488b
fixed #525
Showing
2 changed files
with
62 additions
and
15 deletions
Show diff stats
examples/routers/form.vue
@@ -266,11 +266,11 @@ | @@ -266,11 +266,11 @@ | ||
266 | <template> | 266 | <template> |
267 | <div> | 267 | <div> |
268 | <Form ref="DateForm" :model="form" :rules="rules" :label-width="80" style="width: 400px;"> | 268 | <Form ref="DateForm" :model="form" :rules="rules" :label-width="80" style="width: 400px;"> |
269 | - <Form-item label="选择日期" prop="date"> | ||
270 | - <Date-picker v-model="form.date" type="datetime"></Date-picker> | 269 | + <Form-item label="选择日期" prop="value1"> |
270 | + <Cascader :data="form.data" v-model="form.value1"></Cascader> | ||
271 | </Form-item> | 271 | </Form-item> |
272 | <Form-item> | 272 | <Form-item> |
273 | - <Button type="primary" @click.native="handleClick">确定</Button> | 273 | + <Button type="primary" @click="handleClick">确定</Button> |
274 | </Form-item> | 274 | </Form-item> |
275 | </Form> | 275 | </Form> |
276 | </div> | 276 | </div> |
@@ -280,12 +280,62 @@ | @@ -280,12 +280,62 @@ | ||
280 | data () { | 280 | data () { |
281 | return { | 281 | return { |
282 | form: { | 282 | form: { |
283 | - date: '' | 283 | + value1: [], |
284 | + data: [{ | ||
285 | + value: 'beijing', | ||
286 | + label: '北京', | ||
287 | + children: [ | ||
288 | + { | ||
289 | + value: 'gugong', | ||
290 | + label: '故宫' | ||
291 | + }, | ||
292 | + { | ||
293 | + value: 'tiantan', | ||
294 | + label: '天坛' | ||
295 | + }, | ||
296 | + { | ||
297 | + value: 'wangfujing', | ||
298 | + label: '王府井' | ||
299 | + } | ||
300 | + ] | ||
301 | + }, { | ||
302 | + value: 'jiangsu', | ||
303 | + label: '江苏', | ||
304 | + children: [ | ||
305 | + { | ||
306 | + value: 'nanjing', | ||
307 | + label: '南京', | ||
308 | + children: [ | ||
309 | + { | ||
310 | + value: 'fuzimiao', | ||
311 | + label: '夫子庙', | ||
312 | + } | ||
313 | + ] | ||
314 | + }, | ||
315 | + { | ||
316 | + value: 'suzhou', | ||
317 | + label: '苏州', | ||
318 | + children: [ | ||
319 | + { | ||
320 | + value: 'zhuozhengyuan', | ||
321 | + label: '拙政园', | ||
322 | + }, | ||
323 | + { | ||
324 | + value: 'shizilin', | ||
325 | + label: '狮子林', | ||
326 | + } | ||
327 | + ] | ||
328 | + } | ||
329 | + ], | ||
330 | + }] | ||
284 | }, | 331 | }, |
285 | rules: { | 332 | rules: { |
286 | - date: [ | ||
287 | - { required: true, type: 'date', message: '不能为空', trigger: 'change' }, | ||
288 | - { type: 'date', message: '日期格式不正确', trigger: 'change'} | 333 | + value1: [ |
334 | + { | ||
335 | + required: true, | ||
336 | + type: 'array', | ||
337 | + message: '没有填写' | ||
338 | + } | ||
289 | ] | 339 | ] |
290 | } | 340 | } |
291 | } | 341 | } |
@@ -294,11 +344,6 @@ | @@ -294,11 +344,6 @@ | ||
294 | handleClick() { | 344 | handleClick() { |
295 | this.$refs.DateForm.validate(); | 345 | this.$refs.DateForm.validate(); |
296 | } | 346 | } |
297 | - }, | ||
298 | - watch: { | ||
299 | - 'form.date' (val) { | ||
300 | - console.log(val); | ||
301 | - } | ||
302 | } | 347 | } |
303 | } | 348 | } |
304 | </script> | 349 | </script> |
305 | \ No newline at end of file | 350 | \ No newline at end of file |
src/components/cascader/cascader.vue
@@ -162,9 +162,11 @@ | @@ -162,9 +162,11 @@ | ||
162 | emitValue (val, oldVal) { | 162 | emitValue (val, oldVal) { |
163 | if (JSON.stringify(val) !== oldVal) { | 163 | if (JSON.stringify(val) !== oldVal) { |
164 | this.$emit('on-change', this.currentValue, JSON.parse(JSON.stringify(this.selected))); | 164 | this.$emit('on-change', this.currentValue, JSON.parse(JSON.stringify(this.selected))); |
165 | - this.dispatch('FormItem', 'on-form-change', { | ||
166 | - value: this.currentValue, | ||
167 | - selected: JSON.parse(JSON.stringify(this.selected)) | 165 | + this.$nextTick(() => { |
166 | + this.dispatch('FormItem', 'on-form-change', { | ||
167 | + value: this.currentValue, | ||
168 | + selected: JSON.parse(JSON.stringify(this.selected)) | ||
169 | + }); | ||
168 | }); | 170 | }); |
169 | } | 171 | } |
170 | } | 172 | } |