使用 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
}]
我正在寻找一种在将日期时间 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
}]