vue wangEditor富文本表格(查看表格/序列样式缺失)问题

本文档介绍了在Vue项目中遇到vue-quill-editor使用不便后,转向wangEditor作为富文本编辑器的过程。wangEditor支持Vue、React、Angular等框架,并详细展示了如何在组件中集成wangEditor,配置菜单,以及处理表格样式。同时,文章还提供了应用页面的示例代码,帮助读者理解如何在实际项目中应用wangEditor。
摘要由CSDN通过智能技术生成

啰啰嗦嗦的序言(可看可不看):

先说下我的需求,富文本中新增一个表格需求,富文本已实现(增删查改),表格新增要一起同步这四个场景,
开始我用的vue-quill-editor,结果发现坑太多,我查看的时候没法把拿到的数据丢到quill里面去修改,只能v-html展示,还有缓存以及验证的一些问题,只是想在富文本加个表格,发现用vue-quill-editor要改的地方太多,果断弃坑了,网上找了下发现wangEditor貌似不错

兼容:

支持Vue、React、Angular等框架
常见的 PC 浏览器:Chrome,Firefox,Safari,Edge,QQ 浏览器,IE11。
不支持移动端。

安装

npm i wangeditor --save

组件化(新建文件-----wangEnduit.vue)

// wangEnduit.vue
<template>
  <div class='editor'>
     <div ref='toolbar' class='toolbar'></div>
  </div>
</template>

<script>
   // 局部引入富文本
   import E from 'wangeditor'
   export default {
     name: 'wangEnduit',
     data () {
       return {
          editor: null,
          info_: null,
       }
     },
     model: {
       prop: 'value',
       event: 'change',
     },
     props: {
       value: {
         type: String,
         default: ''
       }
       isClear: {
         type: Boolean,
         default: false
       }
     },
     watch: {
       // 触发清楚文本域
       isClear(val){
         this.editor.txt.clear()
         this.info_ = null
       }
     },
     value: function (value) {
       if (value !== this.editor.txt.html()) {
           this.editor.txt.html(this.value)
       }
     }
     // value输入内容框    
   },
   mounted () {
     this.seteditor()
     this.editor.txt.html(this.value)
   },
   methods: {
     seteditor () {
       this.editor = new E(this.$refs.toolbar)

       // 配置菜单
       this.editor.config.menus = [
         'head',       // 标题
         'bold',       // 粗体
         'fontSize',   // 字号
         'fontName',   // 字体
         'italic',     // 斜体
         'underline',  // 下划线
         'strikeThrough',  // 删除线
         'fontColor',      // 字体颜色
         'link',       // 插入链接
         'list',       // 列表
         'justify',   // 对齐方式
         'table',     // 表格
         'undo',      // 撤销
         'redo',      // 回退
       ]
       this.editor.config.onchange = (html) => {
         this.info_ = html
         this.$emit('change', this.info_)
       }
       this.editor.create()    // 创建富文本
       this.editor.txt.html()  // 富文本内容
     }
   }
</script>

<style lang='less'>
 .editor{
   width: 100%;
   margin: 0 auto;
   position: relative;
   z-index: 3;
 }
 .toolbar {
   border: 1px solid #ccc;
   min-height: 50px;
 }
 // 富文本查看表格样式(对查看的时候需要自己手动加table/td/th的样式,不然就只有内容没有线)
 .notice {
   table {
     border: none;
     border-collapse: collapse;
   }
   table td,
   table th{
     border: 1px solid #ccc;
     padding: 3px 5px;
     min-width: 50px;
     height: 20px;
   }
   table th {
     border-right: 1px solid #ccc;
     border-bottom: 2px solid #ccc;
     text-align: center;
     background-color: #f1f1f1;
   }
   blockquote{
     display: block;
     border-left: 8px solid #d0e5f2;
     padding: 5px 10px;
     margin: 10px 0;
     line-height: 1.4;
     font-size: 100%;
     background-color: #f1f1f1;
   }
   code{
    display: inline-block;
    *display: inline;
    *zoom: 1;
    background-color: #f1f1f1;
    border-radius: 3px;
    padding: 3px 5px;
    margin: 0 3px;    
   }
   pre code {
     display: block;
   }
   ul, ol{
     margin: 10px 0 10px 20px;
   }
   pre {
    border: 1px solid #ccc;
    background-color: #f8f8f8;
    padding: 10px;
    margin: 5px 0px;
    font-size: 0.8em;
    border-radius: 3px;
   }
   .ql-editor ul li {
      list-style-type: disc;    // 解决序列li前面的.不展示问题
   }
   .ql-editor ol li {
      list-style-type: decimal;   // 解决序列li前面的数字不展示问题
   }
 }
 // 在哪个页面查看就给表格外围加个class包起来,因为加的样式是全局的,避免样式污染覆盖,我查看表格的页面外围加了个class=notice
</style>

应用页面

<Form :model='form' :label-width='140' inline>
  <FormItem label='发布内容:' prop='announceDesc' style="width: 90%; margin: 15px 0;">
    <editorBar v-model='form.announceDesc' :isClear='isClear' @change='change'></editorBar>
  </FormItem>
<Form>

<script>
  import editorBar from './wangEnduit'
  export default {
    name: 'announceView',
    components: { editorBar },
    data () {
     return {
       isClear: false,
	   form: {
	     announceDesc: ''
	   }
     },
    }
   created () {},
   methods: {
     change (val) {
       this.form.announceDesc = val
     }
   }
  }
</script>

效果图

在这里插入图片描述

原文详细请点击这里

### 回答1: Vue Wangeditor 是一款基于 Vue.js富文本编辑器,它可以帮助开发者快速构建出一个功能强大的富文本编辑器,支持多种格式的文本编辑,包括文字、图片、视频等。它具有易用性、可扩展性和高度定制化的特点,可以满足不同场景下的需求。同时,Vue Wangeditor 还提供了丰富的 API 和插件,方便开发者进行二次开发和定制。 ### 回答2: Vue Wangeditor 富文本编辑器是一款基于 Vue 开发的富文本编辑器组件,它采用了著名的文本富编辑器框架 Wangeditor 的核心代码,并通过 Vue 组件化的思想封装为一个易于使用和集成的 Vue 组件。它拥有良好的用户界面,支持各种基本的富文本编辑功能如字体、颜色、图片、表格、粘贴等,并提供了丰富的插件扩展接口,可用于满足不同的业务需求。下面从使用上和技术上两个方面简要介绍一下 Vue Wangeditor 富文本编辑器: 使用上,Vue Wangeditor 富文本编辑器非常易于使用。通过简单的使用导入和注册组件,就可以在 Vue 开发的项目中使用了。在页面引入组件后,只需要像使用普通的 Vue 控件一样将它放到页面中并绑定相应的数据,就可以在页面中展示可编辑的富文本内容了。而对于基本的富文本编辑功能,它提供了完整的 API 接口和事件回调,可以根据不同的业务逻辑进行扩展和优化,非常灵活方便。 技术上,Vue Wangeditor 富文本编辑器采用了 Vue 组件化开发的方式,它将富文本编辑器封装成了一个可复用的单文件组件,同时通过 Vue 的自定义事件机制和子组件通信机制来实现各种功能的交互和通信。它还通过自定义插件、自定义指令等方式提供了灵活的扩展接口,可以方便地添加各种功能扩展和优化。此外,它也使用了 Webpack 等现代前端工具来优化和打包,可以确保代码的质量和性能。总之,Vue Wangeditor 富文本编辑器是一款优秀的富文本编辑器组件,它的设计、实现和使用都非常优雅和简单,为 Vue 应用开发提供了有效的解决方案。 ### 回答3: Vue wangeditor是一款基于Vue.js开发的富文本编辑器,具有简单易用、UI美观、代码简洁等特点。该富文本编辑器支持文本、图片、视频、代码等多种格式的输入和处理,并且还具有自动保存、实时预览等实用功能。 使用Vue wangeditor富文本编辑器,可在页面中直接嵌入编辑器组件,以便用户可以直接在页面上进行富文本编辑。同时,该富文本编辑器还支持多种主题、多种语言、以及自定义扩展等功能,可以满足不同场景下的编辑需求。 Vue wangeditor的使用也非常简单,只需要在Vue项目中引入相应的组件和依赖,然后进行相关配置即可。同时该编辑器也提供了丰富的API接口,可以方便地对编辑器进行扩展和定制。 总的来说,Vue wangeditor是一款非常实用的富文本编辑器,并且基于Vue.js的优秀框架,具有良好的兼容性和易用性,非常适合在Web应用开发中广泛使用,特别是在需要富文本编辑的场景下。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值