Skip to content

Commit 12907ad

Browse files
committed
fix: when select time picker option close popup (#154)
1 parent 2444331 commit 12907ad

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

src/calendar.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
:value="value"
6565
:disabled-time="isDisabledTime"
6666
:time-type="timeType"
67-
@select="selectTime" />
67+
@select="selectTime"
68+
@pick="pickTime" />
6869
</div>
6970
</div>
7071
</template>
@@ -323,7 +324,10 @@ export default {
323324
this.showPanelDate()
324325
},
325326
selectTime (time) {
326-
this.$emit('select-time', time)
327+
this.$emit('select-time', time, false)
328+
},
329+
pickTime (time) {
330+
this.$emit('select-time', time, true)
327331
},
328332
changeCalendarYear (year) {
329333
this.now = new Date(year, this.calendarMonth)

src/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,9 @@ export default {
365365
this.updateDate()
366366
}
367367
},
368-
selectTime (time) {
368+
selectTime (time, close) {
369369
this.currentValue = time
370-
this.updateDate()
370+
this.updateDate() && close && this.closePopup()
371371
},
372372
selectStartTime (time) {
373373
this.selectStartDate(time)

src/panel/time.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ export default {
4444
}
4545
this.$emit('select', new Date(time))
4646
},
47+
pickTime (time) {
48+
if (typeof this.disabledTime === 'function' && this.disabledTime(time)) {
49+
return
50+
}
51+
this.$emit('pick', new Date(time))
52+
},
4753
getTimeSelectOptions () {
4854
const result = []
4955
const options = this.timePickerOptions
@@ -96,7 +102,7 @@ export default {
96102
'actived': pickHours === this.currentHours && pickMinutes === this.currentMinutes,
97103
'disabled': disabledTime && disabledTime(time)
98104
}}
99-
onClick={this.selectTime.bind(this, time)}>{picker.label}</li>
105+
onClick={this.pickTime.bind(this, time)}>{picker.label}</li>
100106
)
101107
})
102108
return (

test/index.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -609,7 +609,7 @@ describe('time-panel', () => {
609609
cells.at(0).trigger('click')
610610
const emitted = wrapper.emitted()
611611
expect(emitted).toEqual({
612-
select: [[new Date(2018, 5, 5, 1)]]
612+
pick: [[new Date(2018, 5, 5, 1)]]
613613
})
614614
})
615615
})

0 commit comments

Comments
 (0)