FullCalendar - длительность слота не работает ниже 1:30 минут - PullRequest
0 голосов
/ 24 мая 2018

Я играл с кодовой версией FullCalendar Scheduler, чтобы проверить, соответствует ли она моим потребностям в новом проекте, и попытался уменьшить опцию slotDuration до минимума.

$(function() {

  $('#calendar').fullCalendar({
    defaultView: 'timelineDay',
    header: {
      left: 'prev,next',
      center: 'title',
      right: 'timelineDay,timelineWeek,timelineMonth'
    },
    resourceLabelText: 'Rooms',
    resources: 'https://fullcalendar.io/demo-resources.json',
    events: [{ id: '1', resourceId: 'a', start: '2018-05-24T06:00:00', end: '2018-05-24T06:04:00', title: 'event 1' }],
    slotDuration: "00:01:00"
  });
});

Это был код, с которым я играл.В этой версии слоты отображаются с часовым интервалом, а не с минутным интервалом.Неважно, на что я изменяю slotDuration, если оно ниже 00:01:30, оно просто возвращается к часовому значению.

Это ошибка?Предполагаемый вариант использования?Есть ли способ уменьшить длительность интервала ниже порога 1 минута 30 секунд?Может быть, до 30-секундного порога?Если да, то как?

Я также включаю CodePen , если кто-то захочет поэкспериментировать с ним, возможно, найдется решение.

1 Ответ

0 голосов
/ 24 мая 2018

Когда я запускаю его в вашем CodePen с низкой продолжительностью (до 1:30), я вижу предупреждение в консоли

slotDuration приводит к слишком большому количеству ячеек

генерируется fullCalendar, который предполагает, что это предполагаемое поведение и предназначено для предотвращения неуправляемости таблицы.

Если вы уменьшите свою временную шкалу (например, сделаете пользовательский вид временной шкалы, который занимает всего несколько часов), тогда у вас будет меньшая длительность слота - например, на основе вашего CodePen я сделал временную шкалу 8 часовпродолжительности, и это позволило мне успешно установить slotDuration в 30 секунд:

$('#calendar').fullCalendar({
    defaultView: 'timelineHours',
    header: {
      left: 'prev,next',
      center: 'title',
      right: 'timelineHours,timelineWeek,timelineMonth'
    },
    views: {
    timelineHours: {
      type: 'timeline',
      duration: { hours: 8 },
      buttonText: 'hours'
    }
  },
  resourceLabelText: 'Rooms',
  resources: 'https://fullcalendar.io/demo-resources.json',
  events: [{ id: '1', resourceId: 'a', start: '2018-05-24T06:00:00', end: '2018-05-24T06:04:00', title: 'event 1' }],
  slotDuration: "00:00:30",
  slotLabelInterval: "00:05:00"
});

См. https://codepen.io/anon/pen/mLYxaV?&editors=001 для рабочей демонстрации.

Основано на очень быстрых экспериментах, 8 часов25 минут - это примерно максимальный размер временной шкалы, когда slotDuration составляет 30 секунд, поэтому я выбрал 8 часов в качестве чистого округленного числа.

Исходя из этого, я думаю, что вам просто нужно найти баланс, который подходитВы находитесь между длиной временной шкалы и размером слотов, в пределах ограничений, которые допускает fullCalendar.Возможно, если вы проверите исходный код fullCalendar, возможно, удастся выяснить, существует ли жесткое (или рассчитанное) ограничение количества ячеек, и, следовательно, предсказать, что будет работать для вас, без проб и ошибок.

...