Перейти к основному содержимому

addLinkLayer

информация

Эта функциональность доступна только в PRO-версии.

Description

Отображает дополнительный слой с пользовательскими элементами для ссылки в области временной шкалы

addLinkLayer: (func: AdditionalLinkLayer['LinkLayerRender'] | AdditionalLinkLayer['LinkLayerConfig']) => string

Parameters

  • func - (required) LinkLayerRender | LinkLayerConfig - a render function or a config object

Returns

  • layerId - (string) - DOM-элемент, который будет отображаться в слое

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

The argument can have these types:

  • linkLayerRender (link, timeline, config, viewport): HTMLElement|boolean|void - функция отрисовки принимает объект ссылки в качестве параметра и должна возвращать DOM-элемент, который будет отображаться в слое.

    • link - (Link) - объект ссылки
    • timeline? - (any) - необязательный, представление временной шкалы
    • config? - (GanttConfigOptions) - необязательный, объект конфигурации Gantt
    • viewport? - (LayerViewport) - необязательный, объект viewport
  • linkLayerConfig - (object) - конфигурационный объект для дополнительного слоя ссылки. Содержит следующие свойства:

    • id? - (string | number) - необязательный, идентификатор слоя
    • renderer - (object) - обязательный, функция, отвечающая за отрисовку элементов слоя
      • render - (LinkLayerRender) - функция, возвращающая HTML-элемент, который должен быть отрисован
      • update? - (Function): void - необязательная функция, в которой можно обновлять отрисованные HTML-элементы
        • link - (Link) - объект ссылки
        • node - (HTMLElement) - контейнер отрисованного узла
        • timeline? - (any) - необязательный, представление временной шкалы
        • config? - (GanttConfigOptions) - необязательный, объект конфигурации Gantt
        • viewport? - (LayerViewport) - необязательный, объект viewport
      • onrender? - (Function): void - необязательная функция, вызываемая после завершения отрисовки. Можно использовать для внедрения нативных компонентов (например, через ReactDOM.render)
        • link - (Link) - объект ссылки
        • node - (HTMLElement) - контейнер отрисованного узла
        • view? - (any) - необязательный, область макета, куда добавлен слой (timeline, по умолчанию)
      • getRectangle? - (Function): { left: number, top: number, height: number, width: number } | void - необязательная функция, возвращающая координаты прямоугольника области просмотра
        • link - (Link) - объект ссылки
        • view? - (any) - необязательный, область макета, куда добавлен слой (timeline, по умолчанию)
        • config? - (GanttConfigOptions) - необязательный, объект конфигурации Gantt
        • gantt? - (GanttStatic) - необязательный, объект Gantt
      • getVisibleRange - (Function): {start: number, end: number} | undefined | void - функция, возвращающая видимый диапазон
        • gantt? - (GanttStatic) - необязательный, объект Gantt
        • view? - (any) - необязательная область макета, куда добавлен слой (timeline, по умолчанию)
        • config? - (GanttConfigOptions) - необязательный, объект конфигурации Gantt
        • datastore? - (any) - необязательный, объект хранилища ссылок
        • viewport? - (LayerViewport) - необязательный, объект viewport
    • container? - (HTMLElement) - необязательный, контейнер слоя
    • topmost? - (boolean) - необязательный, если true, элемент будет отображаться поверх ссылки
    • filter? - (Function): boolean - необязательная функция, которая принимает объект ссылки в качестве параметра. Если возвращает 'false', функция 'renderer' не будет вызываться для ссылки
      • link - (Link) - объект ссылки
  • Будьте осторожны: пользовательские слои будут сброшены после следующего вызова gantt.init

  • Вызов метода gantt.resetLayout() также сбрасывает пользовательские слои. Чтобы пользовательские слои отображались на странице, необходимо заново определить метод gantt.addLinkLayer после вызова gantt.resetLayout().

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.