Skip to content

RichEditor 富文本

独立包 @rd-element/editor 的 RdRichEditor:TinyMCE 5.10.x 封装。 组件不打包 TinyMCE;业务需自行在页面加载 window.tinymce。 图片上传与快捷短语数据由回调注入(对齐 RdFileUpload「组件不发 HTTP」)。

前置条件 ​

bash
pnpm add @rd-element/editor

在 index.html(或等价入口)加载 TinyMCE 5.10.x,并准备 skins / themes / plugins / langs:

html
<script src="/static/tinymce/tinymce.min.js"></script>

文档站演示使用 jsDelivr CDN;生产建议与现网一样托管静态资源。

另需:

ts
import '@rd-element/editor/dist/style.css'

基础用法 ​

v-model 绑定 HTML;图片上传走 images-upload-handler。

邮件模板 / 签名等业务操作放在 #footer-bar,不进组件库。

快捷短语 ​

text-phrase + fetch-text-phrases:输入 # 触发补全。数据由业务接口提供。

API ​

Attributes ​

属性名说明类型默认值
v-modelHTML 内容string''
pluginsTinyMCE plugins(覆盖默认)string | string[]内置默认集
language语言包名;zh-cn 会归一为 zh_CNstringzh_CN
languageUrllanguage_url;CDN 场景下需指向语言包 JSstring—
menubar菜单栏string | string[]file edit view…
toolbar工具栏(TinyMCE 5 命名)string | string[]undo redo | styleselect…
toolbar_mode工具栏换行模式stringwrap
min_height编辑区最小高度number480
height固定高度number—
includes在默认 plugins/menubar/toolbar 上追加 tokenobject—
excludes从默认 plugins/menubar/toolbar 移除 tokenobject—
imagesUploadHandler图片上传钩子,返回可访问 URL;未传则粘贴/插入图片失败(blob: Blob) => Promise<string>—
textPhrase开启 # 快捷短语(需 fetchTextPhrases)booleanfalse
fetchTextPhrases拉取快捷短语列表() => Promise<TextPhraseItem[]>—
tinymceBaseUrl覆盖 TinyMCE baseURL / base_urlstring—

Events ​

事件名说明类型
update:modelValue内容变更(value: string) => void
change编辑器 change(value: string, e: unknown) => void
input编辑器 input(e: Event) => void

Slots ​

插槽名说明
footer-bar编辑器底部栏(初始化后渲染)

Exposes ​

方法说明类型
getEditor获取 TinyMCE 实例(未初始化时返回 Promise)() => Editor | Promise
getContent获取 HTML() => string | Promise
setContent设置 HTML(html: string) => …
insertContent插入 HTML(html: string) => …
validate是否有有效内容(文本 / 锚点 / 图 / 表)() => boolean