time-picker.js 853 Bytes
import Picker from '../picker.vue';
import TimePanel from '../panel/time.vue';
import TimeRangePanel from '../panel/time-range.vue';
import Options from '../time-mixins';

const getPanel = function (type) {
    if (type === 'timerange') {
        return TimeRangePanel;
    }
    return TimePanel;
};

import { oneOf } from '../../../utils/assist';

export default {
    mixins: [Picker, Options],
    props: {
        type: {
            validator (value) {
                return oneOf(value, ['time', 'timerange']);
            },
            default: 'time'
        },
        value: {}
    },
    created () {
        if (!this.value) {
            if (this.type === 'timerange') {
                this.value = ['',''];
            } else {
                this.value = '';
            }
        }
        this.panel = getPanel(this.type);
    }
};