From 6af82a02c6013ad6e4bc99c2dff5146497f16ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=98=89=E6=B6=B5?= Date: Mon, 31 Jul 2017 15:14:55 +0800 Subject: [PATCH] fix: datetimepicker cancel event not work --- docs/examples-docs/datetime-picker.md | 25 +++++++++++++------ .../datetime-picker/src/datetime-picker.vue | 7 +++--- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/docs/examples-docs/datetime-picker.md b/docs/examples-docs/datetime-picker.md index 5c9672f84..e3d33c552 100644 --- a/docs/examples-docs/datetime-picker.md +++ b/docs/examples-docs/datetime-picker.md @@ -5,20 +5,21 @@ export default { minHour: 10, maxHour: 20, minDate: new Date(), - currentDate: null + currentDate1: null, + currentDate2: null, + currentDate3: null }; }, methods: { handlePickerChange(picker, values) { - // picker.setColumnValues(1, citys[values[0]]); console.log(values); }, handlePickerCancel() { - alert('picker cancel'); + console.log('picker cancel'); }, handlePickerConfirm() { - alert('picker confirm'); + console.log('picker confirm'); } } }; @@ -63,7 +64,7 @@ export default { :::demo 基础用法 ```html + @change="handlePickerChange"> ``` ::: @@ -145,6 +146,14 @@ export default { | defaultIndex | 初始选中值的索引,默认为0 | | className | 为对应列添加特殊的`class` | +### Event + +| 事件名称 | 说明 | 回调参数 | +|-----------|-----------|-----------| +| change | 当值变化时触发的事件 | picker 实例 | +| confirm | 点击完成按钮时触发的事件 | 当前 value | +| cancel | 点击取消按钮时触发的事件 | - | + ### change事件 在`change`事件中,可以获取到`picker`实例,对`picker`进行相应的更新等操作: diff --git a/packages/datetime-picker/src/datetime-picker.vue b/packages/datetime-picker/src/datetime-picker.vue index 35153a3b1..5569efd63 100644 --- a/packages/datetime-picker/src/datetime-picker.vue +++ b/packages/datetime-picker/src/datetime-picker.vue @@ -5,6 +5,7 @@ :visible-item-count="visibleItemCount" @change="handlePickerChange" @confirm="handlePickerConfirm" + @cancel="$emit('cancel')" showToolbar> @@ -85,7 +86,6 @@ export default { if (!isEqual) this.innerValue = val; }, innerValue(val) { - console.log(val + '!!!'); this.updateColumnValue(val); this.$emit('input', val); } @@ -217,12 +217,11 @@ export default { isShortMonth(month) { return [4, 6, 9, 11].indexOf(month) > -1; }, - handlePickerConfirm(values) { + handlePickerConfirm() { this.$emit('confirm', this.innerValue); }, handlePickerChange(picker) { const values = picker.$children.filter(child => child.currentValue !== undefined).map(child => child.currentValue); - console.log(values); let value; if (this.type === 'time') { @@ -243,7 +242,7 @@ export default { } value = this.correctValue(value); this.innerValue = value; - console.log(value, this.innerValue); + this.$emit('change', picker); }, updateColumnValue(value) { let values = [];