接口

  • 是否产生痕迹由SetEditMode配合SetEditorInfo接口实现

SetEditMode

enablePermission:[是否可删除]启用文档内容安全和权限控制。默认为false文档内容可任意编辑。
enableRevise:[是否逻辑删除 新增内容带痕]使能审阅模式。默认为false,正常编辑
modifySameLevel:能否修改或删除同授权等级的内容,默认为true
fristEditByRevise:首次编辑时是否带痕
bool SetEditMode(bool enablePermission, bool enableRevise, bool modifySameLevel, bool fristEditByRevise)

SetEditorInfo

bool SetEditorInfo(const char* terminal, const char* editorId, const char* editorName, int permissionLevel, const char* attachStr)//description为json

产生痕迹的前提条件

1、按文档模式打开Doc。SetDocType(E_DOC_TYPE.Entity)
2、开启了编辑权限管理 并 允许了记录痕迹。SetEditMode(第1个参数enablePermission=true 第2个参数enableRevise=true)
3、a、文档第一个编辑者默认不带痕迹 b、配置了 文档第一个编辑者带痕迹。SetEditMode(第4个参数fristEditByRevise=true)

显示痕迹

  • displayReviseAuxiliary:显示痕迹辅助线
  • displayReviseDel:显示痕迹(审阅)被删除内容
thinkEditor.SetViewMode(E_VIEW_MODE.Edit,
{ 
    displayReviseAuxiliary: true, 
     displayReviseDel: true 
});

开启痕迹模式

  • enablePermission = true
  • enableRevise_ = true

新增

  • 同时满足如下条件时 产生新增痕迹
    1、按文档模式打开Doc.SetDocType(E_DOC_TYPE.Entity)
    2、文档第一个编辑者默认不带痕迹
    3、相同编辑者不同时间编辑(即同一人非本次编辑会带痕)

删除

  • 满足如下条件之一,则会产生删除痕迹。否则为不可删除(已被删除)或物理删除。
    1、当前编辑者permissionLevel > 内容创建者permissionLevel
    2、当前编辑者permissionLevel == 内容创建者permissionLevel && modifySameLevel_==true
    3、相同编辑者不同时间编辑(即同一人非本次编辑会带痕)

效果

  • 当修改者的permissionLevel<2 则删除线为两条,增加线为一条

  • 当修改者的permissionLevel>=2 则删除线为两条,增加线为一条

  • 显示审阅信息
    鼠标悬浮在审阅内容上时,可显示创建/删除信息

文档更新时间: 2025-04-23 21:35   作者:admin