Kendo UI 调度程序禁用一天中的多个 time-span/range

Kendo UI Scheduler disable multiple time-span/range of a single day

我有一个供创作者和消费者使用的调度程序。创建者将定义消费者可以交互的特定时间范围(创建事件)。当天其他时间段内,消费者无法互动,将被禁用。我确实设法毫无问题地创建了事件,但是显示可用的交互插槽却给我带来了问题。

Example: 假设,创建者将允许的时间段定义为 4:00 pm 到 8:00 pm(我成功地将其保存在数据库中并相应地显示)。 因此,在消费者看来,调度程序应该从 12:00 am 到 4:00 pm 以及从 8:00 pm 到 12:00 禁用上午 4:00 下午到 8:00 下午启用。这意味着消费者可以在 4:00 pm 到 8:00 pm 之间创建多个事件。

我需要可以用作数据源的适当的调度程序选项。

您可以使用 save event 来防止创建事件并仅显示允许的范围:

var startLimit = new Date();
startLimit.setHours(4);
startLimit.setMinutes(0);
startLimit.setSeconds(0);

var endLimit = new Date();
endLimit.setHours(8);
endLimit.setMinutes(0);
endLimit.setSeconds(0);

$("#scheduler").kendoScheduler({
    date: new Date(),
    views: [{
        type: "day",
        startTime: startLimit,
        endTime: endLimit
    }],
    dataSource: [],
    save: function (e) {
        if (e.event.start < startLimit || e.event.end > endLimit) {
            console.log("disallow"); // show validation error or w/e
            e.preventDefault();
        }
    }
});