如何在全日历中创建固定工期事件?

时间:2019-02-20 10:40:57

标签: jquery calendar fullcalendar fullcalendar-scheduler

我想创建一个具有固定持续时间的全日历事件。用户将能够在时间轴上移动事件,但不允许更改事件的持续时间,因此用户可以在日历上移动事件的开始时间,结束时间将根据持续时间自动调整,或者您可以保存事件框的宽度总是一样的大小。

我尝试使用比例

eventDurationEditable : false

我正在使用fullcalendar-scheduler-4.0.0-beta.2,但它无法正常工作

eventDurationEditable:false

用户可以移动事件的开始日期时间,但结束日期时间仍然固定。

解决此问题有帮助吗?

我还尝试了属性durationEditable : false

下面是示例代码

    <!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<link href='../packages/core/main.css' rel='stylesheet' />
<link href='../packages/daygrid/main.css' rel='stylesheet' />
<link href='../packages/timegrid/main.css' rel='stylesheet' />
<link href='../packages/timeline/main.css' rel='stylesheet' />
<link href='../packages/resource-timeline/main.css' rel='stylesheet' />
<script src='../packages/core/main.js'></script>
<script src='../packages/interaction/main.js'></script>
<script src='../packages/daygrid/main.js'></script>
<script src='../packages/timegrid/main.js'></script>
<script src='../packages/timeline/main.js'></script>
<script src='../packages/resource-common/main.js'></script>
<script src='../packages/resource-timeline/main.js'></script>
<script>

  document.addEventListener('DOMContentLoaded', function() {
    var calendarEl = document.getElementById('calendar');

    var calendar = new FullCalendar.Calendar(calendarEl, {
      plugins: [ 'interaction', 'dayGrid', 'timeGrid', 'list', 'resourceTimeline' ],
      now: '2019-02-07',
      editable: true,
      eventDurationEditable: false,
      aspectRatio: 1.8,
      scrollTime: '00:00',
      header: {
        left: 'today prev,next',
        center: 'title',
        right: 'resourceTimelineDay,resourceTimelineThreeDays,timeGridWeek,dayGridMonth'
      },
      defaultView: 'resourceTimelineDay',
      views: {
        resourceTimelineThreeDays: {
          type: 'resourceTimeline',
          duration: { days: 3 },
          buttonText: '3 days'
        }
      },
      resourceAreaWidth: '30%',
      resourceColumns: [
        {
          labelText: 'Room',
          field: 'title'
        },
        {
          labelText: 'Occupancy',
          field: 'occupancy'
        }
      ],
      resources: [
        { id: 'a', title: 'Auditorium A', occupancy: 40 },
        { id: 'b', title: 'Auditorium B', occupancy: 40, eventColor: 'green' },
        { id: 'c', title: 'Auditorium C', occupancy: 40, eventColor: 'orange' }

      events: [
        { id: '1', resourceId: 'b', start: '2019-02-07T02:00:00', end: '2019-02-07T07:00:00', title: 'event 1' },
        { id: '2', resourceId: 'c', start: '2019-02-07T05:00:00', end: '2019-02-07T22:00:00', title: 'event 2' },
        { id: '3', resourceId: 'd', start: '2019-02-06', end: '2019-02-08', title: 'event 3' },

      ]
    });

    calendar.render();
  });

</script>
<style>

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

  #calendar {
    max-width: 900px;
    margin: 50px auto;
  }

</style>
</head>
<body>

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

</body>
</html>

0 个答案:

没有答案