Vue JS сборщик дат рождения - PullRequest
0 голосов
/ 05 июня 2018

Я настраиваю поле даты рождения.Как я могу установить «Год» в качестве моего первого всплывающего окна?вместо всплывающего окна просмотра календаря.

Пакет просмотра, который я использую, называется «vue2-datepicker»

Сначала я хочу выбрать «ГОД», а затем «Месяц», а затем «Дата»."

Это то, что я хочу показать первым, когда я нажимаю на значок календаря.

enter image description here

В данный момент, когда я нажимаю на значок календаря, он показывает календарь по умолчанию.

enter image description here

Вот код, который у меня есть на данный момент.Он работает нормально с календарем по умолчанию, но я просто хочу по умолчанию сначала выбрать год, а затем месяц, а затем дату.

    <template>
    <div class="styled-form__field">
        <label class="styled-form__label">{{ label }}</label>
        <span
            :class="['styled-form__error', {'is-visible': error}]"
        >{{ error }}</span>

        <date-picker
            :value="value"
            lang="en"
            :format="'DD MMMM YYYY'"
            :placeholder="' '"
            :width="'auto'"
            :input-class="datePickerClass"
            :not-before="datePicker.start"
            :not-after="datePicker.finish"
            @input="changeHandler"
        ></date-picker>
    </div>
</template>

<script>
    import moment from 'moment';
    import DatePicker from '../common/DatePicker.vue';

    export default {
        components: {
            DatePicker
        },
        props: {
            value: {
                required: true
            },
            label: String,
            error: String
        },
        data() {
            return {
                datePicker: {
                    start: moment().subtract(115, 'years').toDate(),
                    finish: moment().subtract(1, 'days').toDate()
                }
            };
        },
        computed: {
            datePickerClass() {
                return this.error ? 'styled-form__date-picker is-invalid' : 'styled-form__date-picker';
            }
        },
        methods: {
            changeHandler(newValue) {
                let parsedValue = '';
                if (newValue !== '') {
                    parsedValue = moment(newValue).format('YYYY-MM-DD');
                }
                this.$emit('input', parsedValue);
            }
        }
    };
</script>

1 Ответ

0 голосов
/ 05 июня 2018

Стандартный браузер datepicker не позволяет вам так изменять его поведение.Вы можете найти другой компонент выбора даты, который подходит вам лучше, но я подозреваю, что вам придется написать свой собственный, комбинируя отдельные данные для года, месяца и даты.Усилие будет того стоить, только если вы очень разборчивы в результате.В большинстве случаев вам будет лучше с готовым компонентом.

...