业务块(biz-block)
业务块用于把文档中的一段块级内容提升为一个可识别、可同步、可回填的业务单元。它既保留原有富文本编辑能力,又能与外部业务系统建立关联,适合审批、任务、风控、条款管理、知识沉淀等企业级场景。
与普通段落相比,业务块更像一个“文档中的业务容器”:
- 内部可以继续承载任意富文本内容;
- 顶部可展示业务标识、名称、状态;
- 支持刷新业务信息、打开业务详情、删除、回退为普通节点;
- 支持在
bind / update / blur / save等时机把节点内容同步给外部系统。
效果截图

使用场景
业务块适合承担“正文编辑 + 业务流转”之间的桥梁角色。
- 审批流转单元:把文档中的某一段审批说明、审批意见、条款结论转换成业务块,关联审批单、流程实例或外部任务。
- 风控与问题项管理:把风险描述、问题现象、整改建议单独提取成业务块,便于同步到风控系统、工单系统或整改台账。
- 合同条款与制度条款管理:把关键条款从正文中提升为业务块,后续可关联条款库、法审记录、条款状态或版本信息。
- 任务与待办收敛:将会议纪要、方案文档中的行动项转成业务块,外部系统可据此生成任务、负责人、截止时间与状态。
- 知识条目沉淀:把正文中的定义、规范、结论、最佳实践单独收敛为业务块,沉淀到知识库或规则库。
- 结构化采集与归档:在保持正文编辑体验的同时,把关键段落按业务块同步到档案系统、台账系统、主数据系统。
- AI 处理单元:把某个业务块交给外部服务做提取、归类、校验、生成摘要,再将结果回写到节点属性。
与其他功能协同使用
模板管理(template)
- 在模板中预置“业务块区块”,由业务人员填写后同步到业务系统:模板管理
内容锁定(locked)
- 可锁定模板骨架,仅开放业务块区域给填写人,避免误改结构:内容锁定
文档表单(form)
- 表单负责结构化字段,业务块负责承载长文本业务单元,两者可组合用于复杂审批单、报告、制度流转:文档表单
修订 / 评论 / 协作
交互规则
- 无选区时:插入一个空的
biz-block - 有选区时:把当前选区提升为
biz-block - 按完整块转换:如果只选中了段落的一部分文本,不会截断,而是按整个块级节点转换
- 顶部信息栏:左侧显示
# bizId name,如果传入status则继续显示状态;右侧提供刷新、回退、删除入口 - 聚焦高亮:节点获得焦点时会显示外层高亮边框
业务块的内部 id 会自动按 BIZ-001、BIZ-002
递增生成;顶部展示的 bizId 则来自外部业务系统,可为空并在后续回填。
配置项示例
const defaultOptions = {
bizBlock: {
enabled: true,
types: [
{ label: "审批项", value: "approval" },
{ label: "风险项", value: "risk" },
{ label: "任务项", value: "task" },
],
triggers: ["bind", "update", "blur", "save"],
},
async onGetBizInfo(attrs) {
return {
bizId: "AP-20260816-001",
status: {
value: "running",
label: "处理中",
color: "#0052d9",
},
meta: {
owner: "财务共享中心",
},
};
},
async onGetBizBlock(block) {
console.log("sync biz block", block);
},
async onOpenBizBlock(block) {
console.log("open biz block", block);
},
async onDeleteBizBlock(block) {
console.log("delete biz block", block);
},
};配置项说明
bizBlock.enabled
说明:是否启用业务块能力。关闭后不注册该扩展,也不会显示相关入口。
类型:Boolean
默认值:false
bizBlock.types
说明:业务块类型列表,用于插入或转换时供用户选择。
类型:Array
默认值:[]
示例:
[
{ label: "审批项", value: "approval" },
{ label: "风险项", value: "risk" },
];当 types 为空时:
- 不显示类型下拉框
- 新建节点的
type固定为'default'
bizBlock.triggers
说明:控制何时把业务块中的富文本内容同步给外部系统。
类型:Array
默认值:[]
可选值:
bind:创建或转换为biz-block后立即同步一次update:业务块内部内容更新后同步(带防抖)blur:编辑器失焦时同步save:保存文档前同步
回调说明
onGetBizInfo
说明:获取或刷新业务块的业务信息。点击节点头部“刷新”按钮时会调用;节点创建完成后如果已有 bizId,也会自动调用一次,以获取最新的状态等业务信息。
类型:Async Function
参数:当前节点 attrs
{
id,
name,
type,
bizId,
status,
meta,
}返回值:可回写到节点属性的对象,常见字段包括:
bizIdstatusmeta
其中 status 为可选字段;如果未传入,则节点头部不显示状态。
其中 status 为对象:
{
value: 'running',
label: '处理中',
color: '#0052d9',
}onGetBizBlock
说明:在指定触发时机把业务块中的富文本内容同步给外部系统。适合做归档、保存、结构化抽取、流程同步等。
类型:Async Function
参数:
{
id,
trigger,
attrs,
content: { html, json, text },
}其中:
trigger:bind | update | blur | save | manualattrs:当前节点属性content:当前业务块中的富文本内容
onOpenBizBlock
说明:点击节点头部的 # bizId 时触发。适合由业务侧打开详情页、弹出业务卡片、拉起侧边栏等。
类型:Async Function
参数:与 onGetBizBlock 保持一致,只是 trigger 固定为 open。
onDeleteBizBlock
说明:当用户删除 biz-block 或将其回退为普通节点时触发,用于通知业务侧执行清理、解绑、日志记录等动作。
类型:Async Function
参数:与 onGetBizBlock 保持一致。
trigger:
delete:用户直接删除节点rollback:用户回退为普通节点
方法列表
方法的调用方式请参考:方法列表。
setBizBlock
说明:插入或转换业务块。有选区时执行转换,无选区时执行插入。
参数:attrs(可选)
idnametypebizIdstatusmeta
返回值:Promise<Boolean>
getBizBlock
说明:获取指定业务块节点信息与内容载荷。
参数:
id:业务块内部节点 ID
返回值:
{
id,
pos,
attrs,
node,
content: { html, json, text },
}getBizBlocks
说明:获取当前文档中的全部业务块节点。
参数:无
返回值:Array
updateBizBlock
说明:更新指定业务块。业务侧对已有节点的属性回写、正文反向同步、手动触发一次内容同步,都统一走这个方法。
参数:
{
id,
attrs,
content,
sync,
trigger,
silent,
}其中:
id:业务块内部节点 IDattrs:可选,待回写属性,适合更新bizId / status / metacontent:可选,待回写内容,支持:getBizBlock返回的content: { html, json, text }- 直接传
html字符串 - 直接传
json内容
sync:可选,是否在本地更新后立即触发一次onGetBizBlock,默认falsetrigger:可选,传给onGetBizBlock的触发来源,默认manualsilent:可选,手动同步失败时是否静默处理,默认true
当 content 同时包含 json / html / text 时,优先使用 json。
返回值:Promise<Boolean>
refreshBizBlock
说明:主动刷新指定业务块的业务信息,内部会调用 onGetBizInfo。
参数:
id:业务块内部节点 ID
返回值:Promise<Boolean>
openBizBlock
说明:主动触发业务块打开动作,内部会调用 onOpenBizBlock。
参数:
id:业务块内部节点 ID
返回值:Promise<Boolean>
deleteBizBlock
说明:删除指定业务块节点,并触发 onDeleteBizBlock。
参数:
id:业务块内部节点 ID
返回值:Boolean
rollbackBizBlock
说明:将业务块回退为普通节点,保留内部正文内容,并触发 onDeleteBizBlock。
参数:
id:业务块内部节点 ID
返回值:Boolean
接入建议
如果你准备在企业系统里落地 biz-block,建议按下面的职责边界来接:
-
编辑器负责:
- 负责节点插入、转换、展示、编辑和同步触发
- 负责把业务块内容组织成统一 payload
-
业务系统负责:
- 负责生成或回填
bizId - 负责维护状态流转、权限、跳转地址、业务详情
- 负责在
onGetBizInfo / onGetBizBlock / onOpenBizBlock / onDeleteBizBlock中完成业务动作
- 负责生成或回填
-
推荐接入路径:
- 先启用
bizBlock.enabled - 先只接
onGetBizInfo和onOpenBizBlock - 业务稳定后再打开
bizBlock.triggers - 最后再把
onDeleteBizBlock接入清理或归档流程
- 先启用
如果你的业务系统以 bizId 作为唯一主键,请不要把节点内部 id 与外部
bizId 混用。推荐把内部 id 视为编辑器节点标识,把 bizId
视为业务主键。