HTMLcopy
1
<div id="container"></div>
CSScopy
8
1
html,
2
body,
3
#container {
4
width: 100%;
5
height: 100%;
6
margin: 0;
7
padding: 0;
8
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
var data = getData();
3
chart = anychart.ganttProject();
4
chart.defaultRowHeight(40);
5
chart.data(data, 'as-tree');
6
var timeline = chart.getTimeline();
7
chart.xScale().minimumGap(0.2).maximumGap(0.2);
8
timeline.cropLabels(true);
9
10
var previews = timeline.milestones().preview().enabled(true);
11
var blPreviews = timeline.baselineMilestones().preview().enabled(true);
12
13
previews.labels(true);
14
blPreviews.labels(true);
15
16
timeline.milestones().tooltip().format(function () {
17
var value = 'Actual: ' + anychart.format.dateTime(this.actualStart);
18
if (this.baselineStart) {
19
value += '\nPlanned: ' + anychart.format.dateTime(this.baselineStart);
20
}
21
return value;
22
});
23
24
chart.container('container');
25
chart.fitAll();
26
chart.draw();
27
});
28
29
function getData() {
30
return [
31
{
32
id: 1,
33
name: 'Group + Auto BL',
34
children: [
35
{
36
id: 2,
37
name: 'Mil 1',
38
actualStart: Date.UTC(2019, 3, 1)
39
},
40
{
41
id: 3,
42
name: 'BL Milestone 1',
43
baselineStart: Date.UTC(2019, 3, 8)
44
},
45
{
46
id: 4,
47
name: 'Task + NaN BL',
48
actualStart: Date.UTC(2019, 3, 14),
49
actualEnd: Date.UTC(2019, 3, 27),
50
baselineStart: NaN
51
},
52
{
53
id: 5,
54
name: 'Mil + BL',
55
actualStart: Date.UTC(2019, 3, 20),
56
baselineStart: Date.UTC(2019, 3, 22),
57
},
58
{
59
id: 6,
60
name: 'Mil + NaN BL',
61
actualStart: Date.UTC(2019, 3, 14),
62
baselineStart: NaN
63
}
64
]
65
},
66
];
67
}