Эта функция доступна только в PRO-версии
По умолчанию dhtmlxGantt отображает элементы временной шкалы слоями в следующем порядке:
В Gantt входят встроенные элементы, такие как базовые планы (baselines), крайние сроки (deadlines) и ограничения по времени (constraints). Помимо стандартных дополнительных элементов, вы также можете создавать пользовательские элементы в виде дополнительных слоев.
Базовые планы играют важную роль в инструментах управления проектами, таких как диаграммы Ганта, позволяя сравнивать запланированные сроки с фактическим ходом выполнения. API Gantt предоставляет встроенную поддержку базовых планов, что облегчает работу с этой важной функцией.
Related sample: Display baselines
Если стандартные параметры базовых планов не подходят для вашего проекта, их можно отключить с помощью опции конфигурации baselines.
gantt.config.baselines = false;
После отключения вы можете настроить отображение базовых планов одним из следующих способов:
1. Использование объекта конфигурации gantt.config.baselines
Этот объект позволяет настраивать отображение базовых планов, если он задан как объект. Он включает следующие свойства:
getDatastore
.false
— базовые планы скрыты."taskRow"
— базовые планы отображаются в той же строке, что и полоса задачи."separateRow"
— базовые планы показываются в отдельной подстроке, увеличивая высоту строки задачи."individualRow"
— каждый базовый план отображается в собственной подстроке под задачей.render_mode
"separateRow"
или "individualRow"
.Пример:
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();
2. Создание пользовательского элемента базового плана для добавления во временную шкалу.
Базовые планы можно загружать вместе с задачами следующим образом:
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"
}
]
Базовые планы можно управлять напрямую через элемент управления лайтбоксом, добавляя, редактируя и удаляя их в деталях задачи.
gantt.config.lightbox.sections = [
{ name: "description", height: 38, map_to: "text", type: "textarea", focus: true },
{ name: "time", type: "duration", map_to: "auto" },
{ name: "baselines", height: 100, type: "baselines", map_to: "baselines" }, ];
Существует три способа отображения базовых планов, которые выбираются через опцию gantt.config.baselines.render_mode:
Базовые планы отображаются непосредственно рядом с полосами задач:
gantt.config.baselines.render_mode = "taskRow";
Все базовые планы отображаются в одной подстроке под каждой задачей:
gantt.config.baselines.render_mode = "separateRow";
Каждый базовый план отображается в собственной подстроке для более наглядного отображения:
gantt.config.baselines.render_mode = "individualRow";
Чтобы добавить пользовательский текст внутрь элементов базового плана, используйте шаблон baseline_text:
gantt.templates.baseline_text = function(task, baseline, index) {
return "Baseline #" + (index + 1);
};
Контроль крайних сроков и ограничений задач — ключ к успешной реализации проекта. DHTMLX Gantt включает встроенные визуальные элементы для крайних сроков и ограничений, что улучшает управление временной шкалой проекта.
Related sample: Displaying deadlines
Gantt поддерживает поле task.deadline. Если оно установлено, на диаграмме появляется визуальный маркер для отслеживания крайних сроков.
gantt.parse({
data: [
{
id: 1,
text: "Task with Deadline",
start_date: "2025-04-04",
duration: 5,
deadline: new Date(2025, 3, 10), // April 10, 2025 },
// Дополнительные задачи...
],
});
Если стандартная функция крайних сроков не подходит для вашего случая, вы можете отключить её с помощью опции deadlines.
gantt.config.deadlines = false;
После отключения вы можете настроить отображение крайних сроков, создав собственный элемент для крайних сроков и добавив его на временную шкалу.
Параметр gantt.config.deadlines управляет отображением элементов крайних сроков. Если включено, Gantt проверяет свойство task.deadline, и если оно содержит корректную дату, маркер крайнего срока появляется на временной шкале.
Начиная с версии 9.0, когда включено автоматическое планирование и оно работает в режиме Constraint (при auto_scheduling_compatibility, установленном в false), Gantt автоматически отображает даты ограничений на диаграмме.
gantt.parse({
data: [
{
id: 1,
text: "Task #1",
start_date: "2025-04-04",
duration: 4,
constraint_date: "2025-04-04",
constraint_type: "snet",
parent: 0
},
// Дополнительные задачи
]
})
Вы можете управлять отображением ограничений с помощью опции show_constraints
в конфиге auto_scheduling. По умолчанию ограничения отображаются, но их можно скрыть, установив show_constraints
в false
:
gantt.config.auto_scheduling = {
enabled: true,
show_constraints: false
};
Related sample: Auto-Schedule From Project Start & Constraints
К началу