Когда вы работаете с dhtmlxGantt в приложении, первым делом необходимо его настроить, проще говоря, отобразить диаграмму Ганта на странице.
Это руководство объясняет, как настроить dhtmlxScheduler, используя только чистый JS и HTML. Если вы используете фронтенд-фреймворк, для этого есть отдельные руководства:
Angular | React | Svelte | Vue.js |
Чтобы создать базовую диаграмму Ганта на вашей странице, достаточно выполнить три шага:
gantt.init()
, чтобы инициализировать dhtmlxGantt в этом контейнере. Этот метод принимает HTML-контейнер или его ID в качестве параметра, где будет отображаться диаграмма Ганта.<!DOCTYPE html>
<html>
<head>
<script src="codebase/dhtmlxgantt.js"></script>
<link href="codebase/dhtmlxgantt.css" rel="stylesheet">
</head>
<body>
<div id="gantt_here" style='width:1000px; height:400px;'></div>
<script type="text/javascript"> gantt.init("gantt_here");
</script>
</body>
</html>
Related sample: Basic initialization
Существует несколько способов включения файлов Gantt в ваш проект, в зависимости от типа приложения, которое вы создаете:
Чтобы использовать dhtmlxGantt, вам необходимо подключить два файла:
<script src="codebase/dhtmlxgantt.js"></script>
<link href="codebase/dhtmlxgantt.css" rel="stylesheet">
Пакет dhtmlxGantt имеет определенную структуру, поэтому важно знать, где находятся эти файлы:
Чтобы импортировать файлы Gantt, используйте эту команду:
import { gantt } from 'dhtmlx-gantt';
Если у вас есть версия Commercial, Enterprise или Ultimate, команда выглядит так:
import { gantt, Gantt } from 'dhtmlx-gantt';
Для проектов, использующих Vite, вам нужно изменить файл vite.config.js, чтобы убедиться, что Gantt правильно включен:
vite.config.js
optimizeDeps: {
include: [
'dhtmlx-gantt',
]
}
Если вы используете Gantt в приложении Svelte, добавьте эту настройку в vite.config.js для продакшн-сборок. Обновите путь gantt_8.0.6_evaluation в соответствии с вашей папкой Gantt:
vite.config.js
build: {
commonjsOptions: {
include: [
"node_modules",
"gantt_8.0.6_evaluation/codebase/dhtmlxgantt.js"
]
},
}
Чтобы включить dhtmlxGantt в приложение на базе RequireJS, следуйте этому примеру:
requirejs(["codebase/dhtmlxgantt"], function(dhx){
var gantt = dhx.gantt;
var Gantt = dhx.Gantt; // для сборок Enterprise
gantt.init("gantt_here");
gantt.parse({
data: [
{ id:1, text:"Project #2", start_date:"01-04-2018",
duration:18, progress:0.4, open:true },
{ id:2, text:"Task #1", start_date:"02-04-2018",
duration:8, progress:0.6, parent:1 },
{ id:3, text:"Task #2", start_date:"11-04-2018",
duration:8, progress:0.6, parent:1 }
],
links: [
{ id:1, source:1, target:2, type:"1" },
{ id:2, source:2, target:3, type:"0" }
]
});
});
Библиотека dhtmlxGantt предоставляет объект с полями gantt
и Gantt
(для версий Commercial, Enterprise или Ultimate), как описано здесь.
Если вы используете Gantt с пользовательскими расширениями в RequireJS, убедитесь, что вы указали конфигурацию shim
для RequireJS и определили зависимость расширений от Gantt.
Вот пример настройки пользовательского файла расширения custom_tooltip_plugin.js:
requirejs.config({
paths: {
"dhtmlxgantt": "../../codebase/dhtmlxgantt",
"ext/dhtmlxgantt_custom_tooltip": "../custom_tooltip_plugin"
},
shim: {
"ext/dhtmlxgantt_custom_tooltip": ["dhtmlxgantt"]
}
});
requirejs(["dhtmlxgantt"],
function (dhx) {
var gantt = dhx.gantt;
var date_to_str = gantt.date.date_to_str(gantt.config.task_date);
var today = new Date(2018, 3, 5);
gantt.addMarker({
start_date: today,
css: "today",
text: "Today",
title: "Today: " + date_to_str(today)
});
gantt.init("gantt_here");
gantt.parse({
data: [
{ id:1, text:"Project #2", start_date:"01-04-2018",
duration:18, progress:0.4, open:true },
{ id:2, text:"Task #1", start_date:"02-04-2018",
duration:8, progress:0.6, parent:1 },
{ id:3, text:"Task #2", start_date:"11-04-2018",
duration:8, progress:0.6, parent:1 }
],
links: [
{ id:1, source:1, target:2, type:"1" },
{ id:2, source:2, target:3, type:"0" }
]
});
});
Убедитесь, что имя модуля для любого файла в пакете указано как относительный путь в папке 'codebase' плюс имя файла. Например:
Основная библиотека:
Чтобы диаграмма Ганта корректно отображалась в полноэкранном режиме в разных браузерах, добавьте этот стиль на вашу страницу:
<style type="text/css" media="screen"> html, body{
margin:0px;
padding:0px;
height:100%;
overflow:hidden;
}
</style>
К началу