美文网首页vue
VUE-wangeditor-富文本

VUE-wangeditor-富文本

作者: 你这个锤子 | 来源:发表于2024-01-24 10:37 被阅读0次

WangEditor 是一个基于 Web 的富文本编辑器,它为开发者提供了一个简单易用的 API,可以方便地集成到各种 Web 应用程序中。
1,安装 WangEditor
npm install wangeditor --save 我用的版本是"wangeditor": "^4.7.15"
2,下面是在 Vue 组件中使用 WangEditor 封装的子组件实例

<script setup>
import { ref, onMounted } from "vue"
import WangEditor from "wangeditor"

let propsData = defineProps(["values"])
let emit = defineEmits(["richtextchange"])

onMounted(() => {
  let editor = new EWangEditor("#editor")
  editor.config.onchangeTimeout = 400 // onchange 事件触发的超时时间为 400 毫秒。
  editor.config.placeholder = '请输入提干' // 编辑器的占位符文本为“请输入提干”。
  editor.config.customAlert = (err) => { // 设置自定义警告函数,用于在控制台输出错误信息。
    console.log(err)
  }
  editor.customConfig = editor.customConfig ? editor.customConfig : editor.config // 检查是否存在自定义配置,如果存在则使用自定义配置,否则使用默认配置。
  editor.customConfig.onchange = (html) => {
    console.log(html)
    emit('richtextchange',html)
  } // 设置自定义的 onchange 事件处理函数,用于处理编辑器内容变化时的事件。在这个函数中,使用 emit 函数传递编辑器的 HTML 值作为参数给到父组件。
  editor.create() // 创建 WangEditor 实例,初始化编辑器并附加到指定的容器元素上。
  editor.txt.html(propsData.values?.value); // 将编辑器的初始内容设置为 propsData 中 values 的值,用于回显。
})
</script>
<template>
  <div>
    <div name="editor" id="editor" ref="editor" class="editor"></div>
  </div>
</template>
<style lang="scss">
// 编辑器层级太高
.w-e-toolbar {
  z-index: 3 !important;
}
.w-e-menu {
  z-index: 2 !important;
}
.w-e-text-container {
  z-index: 1 !important;
}
</style>

一般不用设置css样式的,但是有次出现过bug,编辑器遮挡了字体、字号、图片等下拉选择框,导致选不中下拉项,所以保险起见,设置权重。
3,父组件引用

import Editor from "@/components/editor.vue"
// 富文本
const richtextchange = (data) =>{
  console.log(data)
}
<Editor :values="item" @richtextchange="richtextchange"></Editor>

4,自定义工具栏
在一些场景中不需要太过复杂的菜单显示,可以自定义配置菜单显示隐藏,可以自定义配置工具栏,例如

// 配置菜单项,这里以加粗、斜体、下划线和标题为例   
editor.config.menus = ['bold', 'italic', 'underline', 'title'] 
// 下面是其它可配置项
bold:粗体
italic:斜体
underline:下划线
strikeThrough:删除线
indent:缩进
lineHeight:行高
foreColor:前景色
backColor:背景色
link:插入链接
list:列表操作
todo:待办事项
justify:对齐方式
quote:引用
emoticon:表情符号
image:插入图片
video:插入视频
table:插入表格
code:代码块
splitLine:分割线
undo:撤销操作
redo:重做操作

效果如下图


image.png

参考资料:
wangEditor | 官网地址

相关文章

网友评论

    本文标题:VUE-wangeditor-富文本

    本文链接:https://www.haomeiwen.com/subject/bmcpodtx.html