Календарь Vue3

Календарь Vue, также известный как DatePicker, представляет собой компонент ввода, который предоставляет предложения в режиме реального времени при вводе. Он поддерживает Vue 3 с PrimeVue 3 и Vue 2 с PrimeVue 2.

Настраивать

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

Импортировать

import Calendar from 'primevue/calendar';

Начиная

Двусторонняя привязка значений определяется с помощью стандартной директивы v-модели, ссылающейся на свойство Date.

<Calendar v-model="value" />
export default {
    data() {
        return {
            value: null
        }
    }
}

Всплывающие и встроенные

По умолчанию календарь отображается во всплывающем окне, и для встроенного режима необходимо включить встроенное свойство.

<Calendar v-model="value" :inline="true" />

Режим выбора

По умолчанию календарь позволяет выбрать только одну дату, тогда как несколько дат можно выбрать, установив для selectionMode значение несколько. В этом случае календарь обновляет значение с помощью массива дат, где количество выбираемых дат может быть ограничено с помощью свойства maxDateCount. Третья альтернатива - это режим диапазона, который позволяет выбрать диапазон на основе массива из двух значений, где первое значение - это дата начала, а второе значение - дата окончания.

<Calendar v-model="value" selectionMode="single || multiple || range" />

Формат даты

Формат даты по умолчанию - мм / дд / гг. Для настройки этого параметра используйте свойство dateFormat или глобально определите его в PrimeVue Locale. Обратите внимание, что автономное свойство переопределяет значение в настройках локали.

Следующие параметры могут быть частью формата.

  • d - день месяца (без нуля в начале)
  • dd - день месяца (две цифры)
  • o - день года (без ведущих нулей)
  • oo - день года (трехзначный)
  • D - название дня короткое
  • DD - название дня длинное
  • m - месяц года (без нуля в начале)
  • мм - месяц года (две цифры)
  • M - краткое название месяца
  • MM - полное название месяца
  • y - год (две цифры)
  • гг - год (четыре цифры)
  • @ - временная метка Unix (мс с 01.01.1970)
  • ! - Галочки Windows (100нс с 01.01.10001)
  • ‘…’ - буквальный текст
  • ‘’ - одинарная кавычка
  • что-нибудь еще - буквальный текст
<Calendar v-model="value" dateFormat="dd.mm.yy" />

Время

TimePicker включается с помощью свойства showTime, а 24 (по умолчанию) или 12-часовой режим настраивается с помощью параметра hourFormat. Если вам нужно использовать средство выбора времени как автономное, используйте свойство timeOnly.

<Calendar v-model="value" :showTime="true" />
<Calendar v-model="value" :showTime="true" hourFormat="12" />
<Calendar v-model="value" :showTime="true" :timeOnly="true" />

Ограничение по дате

Чтобы отключить ввод дат вручную, установите для manualInput значение true и ограничьте выбираемые даты с помощью параметров minDate и maxDate.

<Calendar v-model="value" :minDate="minDateValue" maxDate="maxDateValue" />

Чтобы отключить определенные даты или дни, ограничить выбираемые даты, используйте параметры disabledDates и / или disabledDays.

<Calendar v-model="value" :disabledDates="invalidDates" :disabledDays="[0,6]" />

Панель кнопок

Панель кнопок отображается сегодня и очищает кнопки и активируется с помощью свойства showButtonBar.

<Calendar v-model="value" :showButtonBar="true" />

Несколько месяцев

Отображение нескольких месяцев можно включить, задав для свойства numberOfMonths значение больше 1.

<Calendar v-model="value" :numberOfMonths="3" />

Locale

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

Пользовательский контент

Пользовательский интерфейс календаря принимает настраиваемый контент с использованием шаблонов верхнего и нижнего колонтитула.

<Calendar v-model="value">
    <template #header>Header Content</template>
    <template #footer>Footer Content</template>
</Calendar>

Кроме того, содержимое ячеек можно создать с помощью шаблона с именем «дата». Это удобная функция для выделения конкретных дат. Обратите внимание, что свойство даты реквизита слота, переданного в шаблон, является не экземпляром даты, а объектом метаданных для представления даты со свойствами «день», «месяц» и «год». В приведенном ниже примере изменяется цвет фона дат между 10 и 15 числами каждого месяца.

<Calendar v-model="value">
    <template #date="slotProps">
        <strong v-if="slotProps.date.day > 10 && slotProps.date.day < 15" class="special-day">{{slotProps.date.day}}</strong>
        <template v-else>{{slotProps.date.day}}}</template>
    </template>
</Calendar>
.special-day {
    text-decoration: line-through;
}

Выбор месяца

Средство выбора месяца используется для выбора только месяца и года без даты, установите режим просмотра «месяц», чтобы активировать средство выбора месяца.

<Calendar v-model="value" view="month" dateFormat="mm/yy" :yearNavigator="true" yearRange="2000:2030" />

Сенсорный интерфейс

В режиме сенсорного интерфейса в центре экрана отображается наложение календаря, оптимизированное для сенсорных устройств.

<Calendar v-model="value" :touchUI="true" />

Тематика

Календарь поддерживает различные темы, включая Материал, Bootstrap, Fluent, а также ваши собственные темы с помощью инструмента Дизайнер.

Ресурсы

Посетите витрину PrimeVue Calendar для демонстраций и документации.