addLinkLayer
отображает дополнительный слой с кастомными элементами для связей в области timeline
string addLinkLayer(LinkLayerRender | LinkLayerConfig func);
func | LinkLayerRender | LinkLayerConfig | функция рендера или объект конфигурации |
string | DOM-элемент, представляющий слой, который будет отображён |
Available only in PRO Edition
Example
gantt.attachEvent("onGanttReady", function () {
const link_types = ["FS", "SS", "FF", "SF"]
gantt.addLinkLayer(function (link) {
const node = gantt.getLinkNode(link.id);
if (node){
const el = document.createElement('div');
el.className = 'link_layer';
el.style.left = (node.childNodes[2].offsetLeft + 20) + 'px'
el.style.top = (node.childNodes[2].offsetTop - 6) + 'px'
el.innerHTML = link_types[link.type];
return el;
}
return false;
});
});
Details
Эта функция доступна только в PRO-версии.
Аргумент может иметь один из следующих типов:
linkLayerRender (link, timeline, config, viewport): HTMLElement|boolean|void - функция, которая принимает объект связи и возвращает DOM-элемент для отображения в слое.
- link - (Link) - объект связи
- timeline? - (any) - необязательно, представление timeline
- config? - (GanttConfigOptions) - необязательно, объект конфигурации Gantt
- viewport? - (LayerViewport) - необязательно, объект viewport
linkLayerConfig - (object) - объект конфигурации для дополнительного слоя связей, со следующими свойствами:
- id? - (string | number) - необязательно, ID слоя
- renderer - (object) - обязательно, объект, отвечающий за рендеринг элементов слоя
- render - (LinkLayerRender) - функция, возвращающая HTML-элемент для рендера
- update? - (Function): void - необязательно, функция для обновления отрендеренных HTML-элементов
- link - (Link) - объект связи
- node - (HTMLElement) - контейнер отрендеренного узла
- timeline? - (any) - необязательно, представление timeline
- config? - (GanttConfigOptions) - необязательно, объект конфигурации Gantt
- viewport? - (LayerViewport) - необязательно, объект viewport
- onrender? - (Function): void - необязательно, вызывается после завершения рендера, полезно для рендера нативных компонентов (например, с помощью
ReactDOM.render
)
- link - (Link) - объект связи
- node - (HTMLElement) - контейнер отрендеренного узла
- view? - (any) - необязательно, ячейка layout, куда добавлен слой (по умолчанию: timeline)
- getRectangle? - (Function): { left: number, top: number, height: number, width: number } | void - необязательно, возвращает координаты прямоугольника viewport
- link - (Link) - объект связи
- view? - (any) - необязательно, ячейка layout, куда добавлен слой (по умолчанию: timeline)
- config? - (GanttConfigOptions) - необязательно, объект конфигурации Gantt
- gantt? - (GanttStatic) - необязательно, экземпляр Gantt
- getVisibleRange - (Function): {start: number, end: number} | undefined | void - необязательно, возвращает объект видимого диапазона
- gantt? - (GanttStatic) - необязательно, экземпляр Gantt
- view? - (any) - необязательно, ячейка layout, куда добавлен слой (по умолчанию: timeline)
- config? - (GanttConfigOptions) - необязательно, объект конфигурации Gantt
- datastore? - (any) - необязательно, объект хранилища связей
- viewport? - (LayerViewport) - необязательно, объект viewport
- container? - (HTMLElement) - необязательно, контейнер для слоя
- topmost? - (boolean) - необязательно, если true, элемент слоя будет отображаться поверх связи
- filter? - (Function): boolean - необязательно, функция, которая принимает объект связи и возвращает false, чтобы пропустить рендеринг для этой связи
- link - (Link) - объект связи
Имейте в виду, что кастомные слои будут очищены после повторного вызова gantt.init
- Также вызов gantt.resetLayout() сбросит кастомные слои. Чтобы они оставались видимыми, необходимо повторно применить gantt.addLinkLayer после вызова resetLayout.
Related sample: Gantt. Дополнительный слой с типами связей
See also
К началу