与Highcharts Gantt一起度过周末

时间:2018-11-23 16:08:24

标签: highcharts gantt-chart weekend

我正在寻找一种在Highcharts Gantt中使用日期时间xAxis时跳过周末的方法。

我已经阅读了一些有关

的帖子
xAxis.ordinal 
HighStock的

选项,但我正在使用HighCharts

此外,我需要坚持日期时间,因为我计划创建interactive Gantt / planning并通过这些交互来更新数据库,并且我不希望能够拖放(或扩展)任务进入一个周末。我相信我可以通过放置事件来防止这种情况发生(我认为有一个),但是,我的图形的2/7将是“空”的。 enter image description here

如果有人知道这种情况会被黑客入侵,我全力以赴!

PS: 在键入此内容时,我意识到xAxis似乎总是与甘特(Gantt)约会,因此我自己定义每个xValue的“技巧”可能是用于常规图表...我注定要有周末吗?

编辑: 这是我们现在所处位置的fiddle。如您所见,我们可以使用

隐藏所有周末
xAxis: [{
    breaks: [{
        from: Date.UTC(2018, 11, 8),
        to: Date.UTC(2018, 11, 10),
        breakSize: 0,
        repeat: 7 * 24 * 36e5 //every week/7 days
    }]
}]

但是,不幸的是,中断似乎与“可拖动点”模块不兼容,并且在经过中断(在本例中为周末)时,拖动的点/任务会自行“调整”大小,闪烁并在甚至从甘特(Gantt)上消失了:/(此外,某些标签在拖动时行为异常)

我想我可以使用自定义格式器“隐藏”周末标签并检查X值,但这可能会在图中留下空白但现有的列,这就是为什么我需要真正删除这些日期。 / p>

我可能必须将周末保持打开状态并进行检查/算术,以便在5个工作日的任务中增加2天不会在周末“抽取”任务,而是实际上增加了4天来补偿(取模胜利),但这并不理想...

我应该将可拖动点和xAxis中断之间的这种(奇怪的)异常行为报告为bug吗?从技术上讲,这些点不会改变值(在this demo中,使用按钮和控制台,您会看到每个点的xmax-xmin保持不变),但是当将它们拖放到周末,他们消失了。这就是我要避免的事情。

tl;博士: 当将点拖到中断点附近时,中断点将充当黑洞(您将a拖到鼠标与中断点之间的距离不超过...半周之内)。

编辑:bug report

1 个答案:

答案 0 :(得分:1)

您可以使用breaks隐藏图表上的周末。您可以在下面找到如何使用休息时间的示例,但也可以创建一个在每个周末插入休息时间的函数:

xAxis: [{
    breaks: [{
        from: Date.UTC(2018, 11, 8),
        to: Date.UTC(2018, 11, 10),
        breakSize: 0
    }]
}, {
    visible: false
}]

实时演示:https://jsfiddle.net/BlackLabel/se1vL6mx/

API:https://api.highcharts.com/gantt/xAxis.breaks