DHTMLX 甘特图中工作日历背后的关键概念
首先,让我们考虑一下我们的甘特图组件如何处理日期和日历。
默认情况下,禁用work_time选项时,任务的持续时间取决于duration_unit参数和任务日期(开始和结束),而忽略工作和非工作时间。在这种情况下,就像在 MS Project 中一样,使用全日制日历。
如果启用了work_time选项并且没有其他任何更改,甘特图就会开始考虑工作时间。也就是说,根据预定义的设置,周末/节假日完全不工作,工作时间设置为早上8点到下午5点,有1小时的午休时间。
从表面上看,甘特图似乎已经开始利用工作时间,但实际上,它利用了一个适用于所有任务的全局日历。此日历的设置是通过setWorkTime方法指定的。
此外,还有机会为每个任务或任务组设置单独的工作时间设置。它是在自定义日历的帮助下实现的。这样的日历是使用createCalendar和addCalendar方法创建的。要将这个日历分配给某个任务,需要在任务对象的 calendar_id 参数中指明该日历的 ID。
综上所述,我们可以区分在您的甘特图项目中使用工作时间功能的三种方式:
- 全日制日历
- 全球日历
- 自定义日历
利用丰富的甘特 API,您可以使用工作日历做很多有用的事情。
例如,可以将工作日历分配给特定任务、资源(如上图所示)或项目。除此之外,我们的甘特组件允许在一个日历中为特定时间段应用不同的工作时间规则,将多个日历合并为一个,并动态更改它们。
工作时间日历的用例
现在我们继续在实际案例中使用 DHTMLX Gantt 的工作时间日历功能的实际示例。
在全球日历中设置周末/假期
在 DHTMLX Gantt 中,有多种方法可以指定工作时间设置。简单来说,应用setWorkTime方法就足够了。
此方法接受单个参数 - 具有以下属性的工作时间配置对象:</