Вы можете настраивать внешний вид связей между задачами, чтобы добиться желаемого оформления вашего Gantt. Использование различных цветов для связей зависимостей помогает пользователям легко различать их.
Существует несколько способов задать пользовательские стили для связей:
Давайте сначала рассмотрим структуру DOM-элемента связи, чтобы понять, как её части позиционируются, масштабируются, функционируют и стилизуются по умолчанию.
DOM-элемент связи имеет следующую структуру:
DOM выглядит так:
<div class="gantt_task_link" link_id="3">
<div class="gantt_line_wrapper">
<div class="gantt_link_line_left"></div>
</div>
<div class="gantt_line_wrapper">
<div class="gantt_link_line_left"></div>
</div>
<div class="gantt_link_corner gantt_link_corner_left_down"></div>
<div class="gantt_line_wrapper">
<div class="gantt_link_line_down"></div>
</div>
<div class="gantt_link_corner gantt_link_corner_down_right"></div>
<div class="gantt_line_wrapper">
<div class="gantt_link_line_right"></div>
</div>
<div class="gantt_link_arrow gantt_link_arrow_right"></div>
</div>
Назначение каждой части:
.gantt_task_link{
--dhx-gantt-link-background:red;
}
Также вы можете применять классы из шаблона link_class к этому элементу.
Критические связи получают свой стиль путём добавления класса gantt_critical_link к элементу gantt_task_link.
Ширина этого элемента контролируется свойством link_wrapper_width:
gantt.config.link_wrapper_width = 30;
В данный момент используются только gantt_link_arrow_right и gantt_link_arrow_down.
Размер стрелки задаётся свойством link_arrow_size:
gantt.config.link_arrow_size = 8;
Ширину линии можно изменить с помощью свойства link_line_width:
gantt.config.link_line_width = 3;
gantt.config.link_radius = 2;
Если задать gantt.config.link_radius = 1, скругления будут убраны.
Для настройки связей зависимостей используется шаблон link_class. Например, чтобы окрашивать связи в зависимости от приоритета задачи, можно использовать следующий код:
Окрашивание связей в зависимости от типа зависимости
gantt.templates.link_class = function(link){
var types = gantt.config.links;
switch (link.type){
case types.finish_to_start:
return "finish_to_start";
break;
case types.start_to_start:
return "start_to_start";
break;
case types.finish_to_finish:
return "finish_to_finish";
break;
case types.start_to_finish:
return "start_to_finish";
break;
}
};
Для стилизации других частей связей зависимостей смотрите шаблоны в статье Шаблоны связей зависимостей.
Аналогичный способ можно применить и к задачам. Подробнее об этом читайте здесь.
Можно также назначить пользовательский цвет для связи, добавив соответствующее свойство в объект данных:
Это специальное свойство. Gantt проверяет наличие этого свойства у связи и применяет его значение. Если оно отсутствует, используется цвет по умолчанию.
Установка цвета связи в объекте данных
var tasks = {
data:[
{id:1, text:"Project #1", start_date:"01-04-2013", duration:18},
{id:2, text:"Task #1", start_date:"02-04-2013", duration:8, parent:1},
{id:3, text:"Task #2", start_date:"11-04-2013", duration:8, parent:1}
],
links:[
{id:1, source:1, target:2, type:"1", color:"red"}, {id:2, source:2, target:3, type:"0", color:"blue"}, {id:3, source:3, target:4, type:"0", color:"blue"}, {id:4, source:2, target:5, type:"2", color:"green"} ]
};
gantt.init("gantt_here");
gantt.parse(tasks);
gantt.getLink(4).color = "green";
Related sample: Link colors from the "color" property
При добавлении пользовательского цвета через свойство color добавляется inline-стиль, который перекрывает другие стили. Это означает, что критический путь не будет выделен, и любые пользовательские стили для изменения цвета связи не будут применяться.
Чтобы выделить связи как критические, используйте следующий CSS:
.gantt_critical_link {
--dhx-gantt-link-background: #e63030 !important;
}
Related sample: Окрашивание критических задач и связей
Если у объекта связи задано какое-либо свойство, связь получает дополнительный класс "gantt_link_inline_color". Этот класс можно использовать для переопределения других стилей для данной связи:
.gantt_link_inline_color {
opacity:0.4
}
Свойство color принимает любое допустимое CSS-значение цвета, например:
link.color = "#FF0000";
link.color = "red";
link.color = "rgb(255,0,0)";
Аналогичный подход можно использовать и для задач. Подробнее читайте здесь.
К началу