时间线中的额外元素
信息
此功能仅在 PRO 版本中提供
默认情况下,dhtmlxGantt 会按以下顺序将时间线元素作为图层渲染:
- 时间线的网格
- 依赖线(Links)
- 任务(Tasks)
- 额外元素
Gantt 包含内置的元素,如基线(baselines)、截止日期(deadlines)和时间约束(time constraints)。除了默认的额外元素外,您还可以创建自定义元素作为额外图层。
基线(Baselines)
基线在像 Gantt 图这样的项目管理工具中起着至关重要的作用,它允许比较计划时间线与实际进度。Gantt API 提供了对基线的内置支持,使得使用这一关键特性变得更加简单。

基线自定义
如果默认的基线选项不完全符合您的项目需求,可以通过 baselines 配置项将其关闭。
gantt.config.baselines = false;
关闭后,您可以通过以下方式之一自定义基线的显示方式:
- 使用 gantt.config.baselines 配置对象
该对象允许您在将其设置为对象时调整基线的渲染方式。它包含以下属性:
- datastore (string) - 存储基线条目的数据存储名称。相关细节请参见
getDatastore方法。 - render_mode (boolean | string) - 控制基线的显示方式:
false- 隐藏基线。"taskRow"- 基线显示在任务条同一行。"separateRow"- 基线显示在独立的子行中,增加任务行高度。"individualRow"- 每条基线在任务下方各有一行。
- dataprocessor_baselines (boolean) - 是否在更新基线时单独触发 DataProcessor。
- row_height (number) - 基线子行的高度,仅在
render_mode为"separateRow"或"individualRow"时有效。 - bar_height (number) - 基线条的高度。
示例:
gantt.config.baselines = {
datastore: "baselines",
render_mode: false,
dataprocessor_baselines: false,
row_height: 16,
bar_height: 8
};
gantt.init("gantt_here");
如果您动态更改 gantt.config.baselines 的显示设置,建议使用 adjustTaskHeightForBaselines 方法,以确保基线正确显示。
const task = gantt.getTask(taskId);
gantt.adjustTaskHeightForBaselines(task); /*!*/
gantt.render();
- 创建自定义基线元素 并添加到时间线中。
与任务一起加载基线
可以像下面这样与任务一起加载基线:
gantt.parse({
tasks: [
{
id: 2,
start_date: "2025-04-04 00:00:00",
duration: 2,
text: "Task #1",
progress: 0.5,
parent: 0,
open: true,
end_date: "2025-04-06 00:00:00",
},
// 其他任务...
],
links: [],
baselines: [ /*!*/
{ /*!*/
id: 2, /*!*/
task_id: 2, /*!*/
start_date: "2025-04-03 00:00:00", /*!*/
duration: 2, /*!*/
end_date: "2025-04-05 00:00:00", /*!*/
}, /*!*/
// 其他基线... /*!*/
], /*!*/
});
一旦加载,Gantt 会自动在时间线上显示基线,无需额外设置。
获取任务的基线
您可以使用 getTaskBaselines 方法获取指定任务的基线。
gantt.getTaskBaselines(5);
该方法返回与任务关联的基线对象数组,来源于数据存储。
[
{
task_id: 5,
id: 1,
duration: 2,
start_date: "03-04-2019 00:00",
end_date: "05-04-2019 00:00"
},
{
task_id: 5,
id: 2,
duration: 1,
start_date: "06-04-2019 00:00",
end_date: "07-04-2019 00:00"
}
]