使用选择约束限制全日历中的可选框

Limit selectable boxes in FullCalendar with selectConstraint

本文关键字:日历 选择 约束      更新时间:2023-09-26

我有一个预约模块。我使用完整日历。我用"事件"设置可用时间。每天,我都有不同的可用时间

$('#calendar').fullCalendar({
        header: {
            left: 'prev',
            center: 'title',
            right: 'agendaWeek agendaDay next'
        },
        defaultView: 'agendaWeek',
        events:
[
            {
                start: '00:00:00+02:00',
                end: '08:00:00+02:00',
                color: 'gray',
                rendering: 'background',
                dow: [1]
            },
            {
                start: '12:00:00+02:00',
                end: '14:00:00+02:00',
                color: 'gray',
                rendering: 'background',
                dow: [4]
            },
            {
                start: '12:00:00+02:00',
                end: '23:59:59+02:00',
                color: 'gray',
                rendering: 'background',
                dow: [3]
            },
            {
                start: '17:00:00+02:00',
                end: '23:59:59+02:00',
                color: 'gray',
                rendering: 'background',
                dow: [2]
            },
],
        defaultTimedEventDuration: '01:00:00',
        height: 'auto',
        handleWindowResize: true,
        allDaySlot: false,
        slotDuration: '01:00:00',
        minTime: "07:00:00",
        maxTime: "22:00:00",
        slotEventOverlap: false,
        nowIndicator: true,
        columnFormat: 'dddd DD MMM',
        titleFormat: 'D MMMM YYYY',
        displayEventTime: true,
        displayEventEnd: true,
        eventLimitText: "Détails",
        eventClick: function (event, jsEvent, view) {
            $('#modalTitle').html(event.title);
            $('#modalBody').html(event.start.format('D-MM-YYYY'));
            $('#modalStart').html(event.start.format('HH:mm'));
            $('#modalMotif').html(event.motif);
            $('#modalInfo').html(event.info);
            $('#modalEtat').html(event.etat);
            $('#modalTel').html(event.tel);
            $('#modalAdresse').html(event.adresse);
            $('#calendarModal').modal();
        },
        selectable: true,
        selectHelper: true,
        select: function (start, end, allDay) {
            endtime = moment(end).format('DD/MM/YYYY HH:mm');
            starttime = moment(start).format('DD/MM/YYYY à HH:mm');
            starttime2 = moment(start).format('YYYY-MM-DD HH:mm:ss');
            var mywhen = starttime;
            var mywhen2 = starttime2;
            $('#createEventModal #apptStartTime').val(mywhen2);
            $('#createEventModal #apptEndTime').val(end);
            $('#createEventModal #apptAllDay').val(allDay);
            $('#createEventModal #when').text(mywhen);
            $('#createEventModal').modal();
        }
    });

现在我需要定义哪些插槽是可选的。我试过这个:

selectConstraint: function (event) {
            return event.rendering !== 'background'
        },

但它不起作用。所有框都不可选择。我做错了什么..?

我解决了我的问题。我终于用了阿贾克斯