跳到主要内容

撤销扩展

The Undo 对象拥有一组方法,允许你撤销/重做所做的修改。

有关撤销扩展的更多信息,请参阅 Undo/Redo 기능 文章。

方法

可以通过 gantt.ext.undo 对象使用以下方法:

Undo() / Redo()

  • undo (): void - 撤销在甘特图中所做的修改
gantt.ext.undo.undo();
  • redo (): void - 将已还原的修改再次应用到甘特图中
gantt.ext.undo.redo();

getUndoStack() / getRedoStack()

  • getUndoStack (): UndoRedoAction[] - 返回存储的撤销用户操作的栈
var stack = gantt.ext.undo.getUndoStack();
  • getRedoStack (): UndoRedoAction[] - 返回存储的重做用户操作的栈
var stack = gantt.ext.undo.getRedoStack();

返回的栈是撤销用户操作的数组。每个用户操作包含一组命令。一个命令是具有以下属性的对象:

  • type - (string) 命令的类型: "add/remove/update"
  • entity - (string) 被修改对象的类型: "task" 或 "link"
  • value - (object) 被修改的 task/link 对象
  • oldValue - (object) 修改前的 task/link 对象

setUndoStack() / setRedoStack()

  • setUndoStack (stack): void - 设置存储的撤销用户操作的栈
    • stack - (UndoRedoAction[]) - 撤销栈
gantt.ext.undo.setUndoStack(stack);
  • setRedoStack (stack): void - 设置存储的重做用户操作的栈
    • stack - (UndoRedoAction[]) - 重做栈
gantt.ext.undo.setRedoStack(stack);

clearUndoStack() / clearRedoStack()

  • clearUndoStack (): void - 清空存储的撤销命令栈
gantt.ext.undo.clearUndoStack();
  • clearRedoStack (): void - 清空存储的重做命令栈
gantt.ext.undo.clearRedoStack();

saveState()

  • saveState (id, entityType): boolean - 在进行修改之前保存任务/链接的当前状态
    • id - (string | number) - 任务/链接的 id
    • type - (string) - 提供第一参数的条目类型。

支持的值:"task"、"link"。

gantt.ext.undo.saveState(1, "task");
gantt.ext.undo.saveState(1, "link");

Read the details in the Undoing/Redoing changes made from code article.

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.