阻止和标记日期

该库包含 Limit 扩展,允许您阻止和高亮特定日期或日期范围。

要开始使用该插件,只需在页面上启用它即可。

注意,如果您使用 Timeline 视图,'limit' 扩展应在 'timeline' 之前启用:

scheduler.plugins({
    limit: true,     timeline: true
});

配置选项

以下是此扩展可用的配置选项:

Related sample:  Current time marking

相关事件

如果有人尝试在不允许的日期创建或更改事件,会触发 onLimitViolation 事件。

如何阻止某些日期?

在调度器中设置限制有几种方法:

  • addMarkedTimespan - 标记日期并可通过自定义样式选项阻止它们
  • markTimespan - 使用默认或自定义样式标记或阻止日期;在任何内部更新后移除标记,适合高亮显示

Related sample:  Blocking dates

如何标记某些日期?

您可以使用以下两种方法高亮特定日期:

  • addMarkedTimespan - 标记日期并可通过自定义样式选项阻止它们
  • markTimespan - 使用默认或自定义样式标记或阻止日期;在任何内部更新后移除标记,适合高亮显示

Related sample:  Handling the pointer highlighting

移除标记/阻止

要清除当前已标记或阻止的时间段,可以使用以下方法:

Related sample:  Handling the pointer highlighting

阻止优先级

当使用多种阻止方法覆盖不同范围时,阻止优先级如下(从高到低):

  1. 针对特定条目使用 Date() 对象指定的日期;
  2. 特定条目的日期(设置了 sections 参数时);
  3. 使用 Date() 对象指定的日期;
  4. 其他日期。
  • 如果阻止或标记使用相同的 type,优先级高的会覆盖优先级低的。
  • 如果阻止或标记方法优先级相同(时间上重叠),则会同时应用。

例如:

scheduler.addMarkedTimespan({ // 阻止 2012 年 7 月 4 日(星期三)
    days:  new Date(2019, 7, 4),
    zones: "fullday", 
    type:  "dhx_time_block",
    css:   "red_section" // 应用的 CSS 类
});
scheduler.addMarkedTimespan({ // 阻止每个周日、周一和周三
    days:  [0, 1, 3], 
    zones: "fullday",
    type:  "dhx_time_block", 
    css:   "blue_section" // 应用的 CSS 类
});
// 仅为 id=2 的条目阻止每个周日和周三
scheduler.addMarkedTimespan({  
    days:  [0,3], 
    zones: "fullday",
    type:  "dhx_time_block", 
    css:   "gray_section",  // 应用的 CSS 类
    sections: { timeline: 2} 
});

经过以上调用,调度器行为如下:

  1. 首先,会阻止 Timeline 视图中 id=2 条目的每个周日和周三,并将其着色为灰色。
  2. 接着,会阻止 2012 年 7 月 4 日 并将其着色为红色。
  3. 最后,会阻止 每个周日、周一和周三,并将其着色为蓝色。

limits_priority.png

如果您希望无论优先级如何都显示所有标记,可以这样设置 overwrite_marked_timespans 选项:

scheduler.config.overwrite_marked_timespans_config = false;
返回顶部