使用 Highcharts Gantt 跳过周末

Skipping weekends with Highcharts Gantt

我正在寻找一种在将日期时间 xAxis 与 Highcharts 甘特图结合使用时跳过周末的方法。

我已经阅读了一些关于

的帖子
xAxis.ordinal 

HighStock 的选项,但我使用的是 HighCharts

此外,我需要坚持日期时间,因为我计划创建一个 interactive Gantt / planning 并使用这些交互更新数据库,我不希望能够拖放(或扩展) 一个任务变成一个周末。我相信我可以通过 drop 事件(我认为有一个)来防止这种情况发生,但是我的图表的 2/7 将是 "empty"。

如果有人知道这种情况的破解方法,我全力以赴!

PS: 当我输入这个时,我意识到 xAxis 似乎总是与甘特图的日期时间,所以我自己定义每个 xValue 的 "hack" 可能是一个常规图表......我注定要有周末吗?

编辑: 这是我们现在所处位置的 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
    }]
}]

但是,不幸的是,休息时间似乎与 "draggable-points" 模块不兼容,当移动到休息时间时(在我们的例子中是周末),导致将 points/tasks 拖到 "resize" 本身), 闪烁,有时甚至从甘特图中消失:/(另外,一些标签在拖动时表现得很奇怪)

我想我可以 "hide" 使用自定义格式化程序的周末标签并检查 X 值,但这可能会在图表中留下空白但现有的列,这就是我需要真正删除的原因这些日期。

我可能不得不打开周末并执行 checks/maths 这样在 5 个工作日的任务中增加 2 天不会 "draw" 周末的任务但实际上增加了 4补偿的天数(获胜的模数)但这并不理想...

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

tl;博士: 当一个点被拖到它们附近时,断裂就像黑洞一样(你不能将鼠标和断裂之间的距离拖到小于...半周的距离)。

编辑:bug report

您可以使用 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