36 lines
915 B
JavaScript
36 lines
915 B
JavaScript
import Picker from '../picker.vue';
|
|
import DatePanel from '../panel/date.vue';
|
|
import DateRangePanel from '../panel/date-range.vue';
|
|
|
|
const getPanel = function (type) {
|
|
if (type === 'daterange' || type === 'datetimerange') {
|
|
return DateRangePanel;
|
|
}
|
|
return DatePanel;
|
|
};
|
|
|
|
import { oneOf } from '../../../utils/assist';
|
|
|
|
export default {
|
|
mixins: [Picker],
|
|
props: {
|
|
type: {
|
|
validator (value) {
|
|
return oneOf(value, ['year', 'month', 'date', 'daterange', 'datetime', 'datetimerange']);
|
|
},
|
|
default: 'date'
|
|
},
|
|
value: {}
|
|
},
|
|
created () {
|
|
if (!this.value) {
|
|
if (this.type === 'daterange' || this.type === 'datetimerange') {
|
|
this.value = ['',''];
|
|
} else {
|
|
this.value = '';
|
|
}
|
|
}
|
|
|
|
this.panel = getPanel(this.type);
|
|
}
|
|
};
|