历史纪录
📊 Univer Sheet
🏆
本功能包含闭源代码,允许任何用户免费商用。此外也包含了可选的商业升级计划,可提供更丰富的功能和服务。
💻
本功能依赖 Univer 后端服务,在使用前请先确保你已经阅读了相关文档,并完成了部署。
Univer 基于协同编辑提供了历史纪录功能,因此在使用历史纪录之前,需要先安装协同编辑插件。
安装
pnpm add @univerjs-pro/edit-history-viewer
pnpm add @univerjs-pro/edit-history-loader
引入
import '@univerjs-pro/edit-history-viewer/lib/index.css';
import { UniverEditHistoryLoaderPlugin } from '@univerjs-pro/edit-history-loader';
国际化
import { LocaleType, Tools } from '@univerjs/core';
import EditHistoryViewerZhCN from '@univerjs-pro/edit-history-viewer/locale/zh-CN';
const univer = new Univer({
theme: defaultTheme,
locale: LocaleType.ZH_CN,
locales: {
[LocaleType.ZH_CN]: Tools.deepMerge(
EditHistoryViewerZhCN
),
},
});
注册
启动历史记录时,UniverEditHistoryLoaderPlugin 会加载一个新的 Univer 实例挂载指定 DOM 节点上。
因此在注册时,需要提供合适的 DOM 节点 id(如原 Univer 实例的 Container),以达到历史纪录面板覆盖原 Univer 面板的目的。若节点 id 未指定,则默认为'univer-container'。
univer.registerPlugin(UniverEditHistoryLoaderPlugin, { univerContainerId: 'Your-Univer-Container-Id'});
Feature 适配
历史纪录的 Univer 实例中只会默认加载官方的 Plugin。为业务需求开发的第三方 Feature Plugin 需要被注册到 HistoryLoaderService 后,才会被正确的显示在历史纪录中。
对已经内置注册的官方 Plugin,也可以修改其配置。
import { Disposable } from '@univerjs/core';
import { HistoryLoaderService } from '@univerjs-pro/edit-history-loader'
export class YourFeatureController extends Disposable {
constructor(
@Inject(HistoryLoaderService) private _historyLoaderService: HistoryLoaderService
) {
super();
// 和 PluginService 的注册方式一致,历史纪录的 Univer 实例在新建后会按照以下配置来注册对应 Plugin
this._historyLoaderService.registerPlugin(YourPlugin, YourPluginConfig))
// 配置官方已注册的 Plugin, 需设置 true 参数表示覆盖原配置
this._historyLoaderService.registerPlugin(ExamplePlugin, ExamplePluginConfig, true))
}
}