addLinkLayer

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

string addLinkLayer(LinkLayerRender | LinkLayerConfig func);
funcLinkLayerRender | LinkLayerConfigфункция рендера или объект конфигурации
stringDOM-элемент, представляющий слой, который будет отображён

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
К началу