0

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

我已经阅读了一些关于

xAxis.ordinal 

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

此外,我需要坚持日期时间,因为我计划创建交互式甘特图/计划并使用这些交互更新数据库,并且我不希望能够将任务拖放(或扩展)到周末. 我相信我可以通过 drop 事件(我认为有一个)来防止这种情况发生,但是我的图表的 2/7 将是“空的”。 在此处输入图像描述

如果有人知道这种情况的黑客攻击,我完全赞成!

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

编辑:这是我们现在所处的位置如您所见,我们可以使用隐藏所有周末

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

但是,不幸的是,休息似乎与“可拖动点”模块不兼容,并导致拖动点/任务在休息时(在我们的例子中是周末)移动时“调整”自身,闪烁,并且在某些时候,甚至从甘特图中消失:/(此外,一些标签在拖动时表现得很奇怪)

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

我可能不得不打开周末并进行检查/数学,以便在 5 个工作日的任务中增加 2 天并不会在周末“绘制”任务,但实际上增加了 4 天来补偿(取模为胜利)但这并不理想...

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

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

编辑:错误报告

4

1 回答 1

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

于 2018-11-29T17:03:11.233 回答