56 lines
1.8 KiB
JavaScript
56 lines
1.8 KiB
JavaScript
const prefixCls = 'ivu-picker-panel';
|
|
const datePrefixCls = 'ivu-date-picker';
|
|
|
|
export default {
|
|
props: {
|
|
confirm: {
|
|
type: Boolean,
|
|
default: false
|
|
}
|
|
},
|
|
methods: {
|
|
iconBtnCls (direction, type = '') {
|
|
return [
|
|
`${prefixCls}-icon-btn`,
|
|
`${datePrefixCls}-${direction}-btn`,
|
|
`${datePrefixCls}-${direction}-btn-arrow${type}`,
|
|
];
|
|
},
|
|
handleShortcutClick (shortcut) {
|
|
if (shortcut.value) this.$emit('on-pick', shortcut.value());
|
|
if (shortcut.onClick) shortcut.onClick(this);
|
|
},
|
|
handlePickClear () {
|
|
this.resetView();
|
|
this.$emit('on-pick-clear');
|
|
},
|
|
handlePickSuccess () {
|
|
this.resetView();
|
|
this.$emit('on-pick-success');
|
|
},
|
|
handlePickClick () {
|
|
this.$emit('on-pick-click');
|
|
},
|
|
resetView(){
|
|
setTimeout(
|
|
() => this.currentView = this.selectionMode,
|
|
500 // 500ms so the dropdown can close before changing
|
|
);
|
|
},
|
|
handleClear() {
|
|
this.dates = this.dates.map(() => null);
|
|
this.rangeState = {};
|
|
this.$emit('on-pick', this.dates);
|
|
this.handleConfirm();
|
|
// if (this.showTime) this.$refs.timePicker.handleClear();
|
|
},
|
|
handleConfirm(visible, type) {
|
|
this.$emit('on-pick', this.dates, visible, type || this.type);
|
|
},
|
|
onToggleVisibility(open){
|
|
const {timeSpinner, timeSpinnerEnd} = this.$refs;
|
|
if (open && timeSpinner) timeSpinner.updateScroll();
|
|
if (open && timeSpinnerEnd) timeSpinnerEnd.updateScroll();
|
|
}
|
|
}
|
|
};
|