У меня возникла проблема при внедрении fullcalendar. Я использовал плагин fullcalendar, чтобы позволить пользователю добавлять задачи и события, и с соответствующей опцией, весь день, повторяясь каждую неделю, каждый день, каждый месяц и каждый год.

Для вышеупомянутой функциональности я сослался на два сообщения SO

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

При создании мероприятия на весь день с повторением каждую неделю я столкнулся с проблемой, которая была решена в Проблема № 4173, демонстрацию для которого я создал здесь Я также проверил версию 4 и обнаружил, что она будет работать для меня в качестве демонстрации в версии 4 здесь, но я у меня есть еще одна проблема, я работаю над живым веб-сайтом, и там я не могу обновить и выбрать реализацию v4, это сложная система, которая должна изучить все аспекты, прежде чем принимать решение о модернизации, поэтому есть ли какой-нибудь хак для реализации того же v3 есть ли что-нибудь, что я могу вручную отредактировать в локально сохраненном файле или исправить его, чтобы исправить это?

$(function() {
  let defaultEvents = [{
    id: 230,
    title: 'all day with every week (range)',
    start: '00:00:00',
    end: '23:59:59',
    dow: [2],
    allDay: true,
    ranges: [{
      start: "2018-12-10",
      end: "2018-12-26"
    }]
  }, ];
  $('#calendar').fullCalendar({
    defaultView: 'month',
    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'agendaWeek,agendaDay'
    },
    eventSources: [defaultEvents],
    eventRender: function(event, element, view) {
      if (event.ranges) {
        console.log(event.ranges)
        return (event.ranges.filter(function(range) {
          return (event.start.isBefore(range.end) &&
            event.end.isAfter(range.start));
        }).length) > 0;
      }
    }
  });

});
html,
body {
  margin: 0;
  padding: 0;
  font-family: "Lucida Grande", Helvetica, Arial, Verdana, sans-serif;
  font-size: 14px;
}

#calendar {
  max-width: 900px;
  margin: 40px auto;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.0/fullcalendar.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.0/fullcalendar.min.js"></script>

<div id='calendar'></div>

Спасибо

6
Mr. Pyramid 4 Дек 2018 в 10:48

1 ответ

Лучший ответ

Эта проблема дважды подчеркивалась в версии 3 с тикетами # 4173 и # 4399 и теперь это исправлено в v4 с использованием отдельного плагина для повторения RRule. В v4 вы можете воспроизвести следующее событие, подобное этому

{
       title: 'event with every week (all day)',
       allDay: true,
       rrule: {
          freq: 'weekly',
          dtstart: '2019-04-05',
          until: '2021-04-05'
       },
}

Вот скрипка

2
Mr. Pyramid 12 Апр 2019 в 05:10