找回密码
 立即注册

QQ登录

只需一步,快速开始

TY呀TY
中级会员   /  发表于:2022-12-26 17:26:44
11#
Lynn.Dou 发表于 2022-12-20 16:20
更新进展:

经调研,只有命令可以支持undo/redo,所以需要将代码修改如下:

我的意思是别人操作的我不去撤销,可能你理解错了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-26 18:34:04
12#
是别人做的插入行操作,您不能去撤销,这样理解对吗?
这边调研看看是否有可行方案, 有进展贴中回复您。
回复 使用道具 举报
TY呀TY
中级会员   /  发表于:2022-12-27 14:46:04
13#
Lynn.Dou 发表于 2022-12-26 18:34
是别人做的插入行操作,您不能去撤销,这样理解对吗?
这边调研看看是否有可行方案, 有进展贴中回复您。

是的
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-27 15:59:54
14#
问题正在调研中,有进展会贴中通知您。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-1-11 12:06:58
15#
本帖最后由 Lynn.Dou 于 2023-3-2 17:32 编辑

更新进展:
涉及到行列等结构性的变动时,两种思路:
1、完全记录所有的行为,即撤销是无上限的。这种方式下两种思路:
(1)undoTransaction (用tag标记新的行列位置,但是为什么修改row索引后,撤销的仍是原位置,这个目前还在调研中)
        更新调研进展:
        SpreadJS中单元格的选中状态与value的绘制并不在一层(双层画布),撤销行为引起的变动经调研目前无法通过代码完整控制,简单来说不建议用户使用这种”撤 销无上限思路“,建议使用思路2:遇到结构性变化时,清空undo/redo栈,此时不允许再撤销。
(2)不使用undoTransaction,用API(如clear)模拟撤销行为。需要对所有的行为做预判,比较复杂
2、当遇到结构性变化时,清空undo/redo栈,此时不允许再撤销。
即如果用户做了插入/删除行操作时,栈被清空,就不能再撤销了,撤销是有限的。这种方式实现比较简单,且也是目前很多协同客户被建议在用的方案。


回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部