addLinkLayer

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

string addLinkLayer(LinkLayerRender | LinkLayerConfig func);
funcLinkLayerRender | 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) - необязательный, представление временной шкалы
    • config? - (GanttConfigOptions) - необязательный, объект конфигурации Gantt
    • viewport? - (LayerViewport) - необязательный, объект области просмотра
  • linkLayerConfig - (object) - объект конфигурации для дополнительного слоя ссылок. Имеет следующие свойства:

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

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

Related sample:  Gantt. Дополнительный слой с типами ссылок

See also
К началу