我正在使用AnyChart 8.1.0资源Gantt(anychart.ganttResource())来显示和编辑计划数据(汽车预订)。 我可以水平编辑/移动预订以更改预订的时间/周期,也可以拖动开始和/或结束日期。但我想将预订从一辆车(行)转移到另一辆车 - 非常类似于将任务从一个人移动到另一个人。 这可能 - 以及如何?
谢谢! 罗埃尔
答案 0 :(得分:1)
我遇到了同样的问题,据我所知,你可以使用
tree.listen("treeItemMove", function (e) {
// do your stuff
});
不幸的是,我认为只有在每行只有一个预订时才会有效。如果您有多个,所有预订都将被移动。 到目前为止,我还没有找到一个解决方案来获得一个预订并将其移至另一行。但我希望它可以帮助你走向严谨的方向。
编辑:
我已联系Anychart支持并询问是否有办法从一个(子)行移动一个句点并在另一个父项下创建一个新行?
以下是答案:
当前版本的AnyGantt 8.1.0并不提供开箱即用的功能,甚至还有额外的代码。 但您可以根据需要从代码中修改dataTree。这提供了数据下的完全控制,但没有鼠标交互性。
答案 1 :(得分:0)
太糟糕了。我可以操纵树 - 甚至一个时期,使用此代码删除并添加句点。您也可以更新句点,代码应该类似。
function deletePeriod( pItemId, pPeriodId ){
var item = treeData.search("id", pItemId);
var periods = item.get("periods")
var i = periods.findIndex(function(e){ return e.id == pPeriodId; });
periods.splice(i,1);
item.set('periods', periods);
treeData.addChildAt( item, treeData.indexOfChild(item) );
}
和
function addPeriod( pItemId, pPeriodId, start, end){
var period = {
"id": pPeriodId,
"start": start,
"end": end,
"name": "Whatever name you want"
};
var item = treeData.search("id", pItemId);
var periods = item.get("periods");
periods.push(period);
item.set('periods', periods);
treeData.addChildAt( item, treeData.indexOfChild(item) );
}