Skip to content

RichTextEditor 富文本 ​

基于 Tiptap 的编辑器,支持标题、对齐、颜色、表格和图片。

基础用法 ​

插入图片通过弹窗输入图片地址,组件本身不会上传文件。建议在业务侧先接好上传接口,拿到 URL 后再写入编辑器,避免 blob 地址存库后失效。

Props ​

名称类型默认值说明
modelValuestring''HTML 内容
editablebooleantrue是否可编辑
placeholderstring''(为空时使用内置文案)占位文案
maxHeightstring'400px'编辑区最大高度
richTextToolsRichTextTool[][]追加到内置工具栏末尾的自定义工具
toolContextobject{}为工具补充业务上下文;通常由 SchemaForm 自动注入

Events ​

名称参数说明
update:modelValuehtml: string编辑器内容变化;使用 v-model 时自动绑定

Slots ​

名称插槽参数说明
toolbar-append—在内置工具栏末尾、richTextTools 之前插入任意工具内容

暴露方法 ​

名称说明
editor当前 Tiptap Editor 实例引用
clearFormat()清除当前选区的格式

自定义工具栏工具 ​

richTextTools 支持按钮工具和自定义组件工具。按钮工具使用 onClick,自定义组件工具使用 component,两者不能同时配置。key 是必填的唯一标识,label 是按钮提示(未提供 icon 时兼作按钮文字),order 只控制自定义工具之间的顺序(默认 0,数值越小越靠前)。visible 与 disabled 可以传布尔或 (ctx) => boolean;编辑器不可编辑时按钮工具始终禁用。

工具上下文包含:

名称类型说明
editorEditor当前 Tiptap 编辑器实例
valuestring调用工具时的 HTML
editableboolean当前是否可编辑
getValue() => string获取最新 HTML,适合异步操作完成后调用
updateValue(value: string) => void更新 HTML 并同步 v-model

自定义组件会收到 context 和 disabled 两个属性,也可以通过工具项的 props 传入额外属性。