Vue中使用wangeditor富文本编辑的问题


Posted in Vue.js onFebruary 07, 2021

wangEditor是基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费。
在我们实际项目上还是比较频繁应用到的,下面出个案例供大家参考学习…

wangEditor文档:https://www.wangeditor.com/

富文本编辑器截图:

Vue中使用wangeditor富文本编辑的问题
Vue中使用wangeditor富文本编辑的问题
Vue中使用wangeditor富文本编辑的问题

<!--富文本编辑器。http://www.wangeditor.com/
使用示例:
<AppEditor v-model="content"></AppEditor>
-->
<template>
 <article ref="editor" class="AppEditor-root"></article>
</template>
<script>
 const E = require('wangeditor');
 export default {
  name: 'AppEditor',
  model: {
   prop: 'value',
   event: 'update:value',
  },
  props: {
   // value值,v-model绑定
   value: {type: String, default: ''},
   // 菜单选项
   menus: {
    type: Array,
    default(){
     return [
      'bold', // 粗体
      'italic',//斜体
      'underline',//下划线
      'fontSize', // 字号
      'strikeThrough',//删除线
      'image', // 插入图片
      'undo', // 撤销


      // 'fontName', // 字体
      // 'italic', // 斜体
      // 'underline', // 下划线
      // 'strikeThrough', // 删除线
      // 'foreColor', // 文字颜色
      // 'backColor', // 背景颜色
      // 'link', // 插入链接
      // 'list', // 列表
      // 'justify', // 对齐方式
      // 'quote', // 引用
      // 'emoticon', // 表情
      // 'image', // 插入图片
      // 'table', // 表格
      // 'video', // 插入视频
      // 'code', // 插入代码
      // 'undo', // 撤销
      // 'redo', // 重复
     ];
    },
   },
  },
  data(){
   return {
    editor: {}, // 编辑器对象
    _value: '', // 内容备份,用于watch时候判断,只在编辑器输入时改变
   };
  },
  computed: {},
  mounted(){
   this.initEditor();
  },
  watch: {
   value(newValue, oldValue){
    // 编辑器onchange更改的不处理,只处理父组件传来的,防止文字回退bug
    if (newValue != this._value) {
     this.editor.txt.html(newValue);
    }
   },
  },
  methods: {
   initEditor(){
    let editor = new E(this.$refs.editor);
    Object.assign(editor.customConfig, {
     menus: this.menus,
     zIndex: 100,
     height: 200,
     pasteFilterStyle: false,
     onchange: (html) => {
      this._value = html; // 更新 _value
      this.$emit('update:value', html); // 更新 value
     },
     customUploadImg:((file, insert)=> {
      if(this.$utils.isEmpty(file)){
       return;
      }
      const msg = this.$Message.loading({
       content: '亲,图片正在拼命地上传中,请稍等...',
       duration: 0
      });
      var params = new FormData();
      params.append('img', file[0]);
      this.$api.post('/synthesis/crm/picture/pictureUpload',params).then(res => {
       insert(res.data.imgUrl)
       setTimeout(msg, 0);
       this.$Message.success('上传成功');
      })
     }),
     uploadImgHooks:{

      customInsert: function (insertImg, result, editor) {
       insertImg(result.url)
      }
     }
    });


    editor.create();
    editor.txt.html(this.value); // 针对数据异步获取的这里无法立即绑定,在watch判断处理
    this.editor = editor;
   },
  },
 };
</script>
<style scoped lang="scss">
 .AppEditor-root{ border: 1px solid #f0f0f0; height: 400px !important;
  /deep/ .w-e-toolbar{ border: none !important; border-bottom: 1px solid #f0f0f0 !important; background-color: #fff !important;

  }
  /deep/ .w-e-text-container{ height: calc(100% - 43px) !important; border: none !important; z-index:1 !important;
   .w-e-text{ height: 100%; overflow-y: auto !important;}
  }
 }

</style>

到此这篇关于Vue中使用wangeditor富文本编辑的问题的文章就介绍到这了,更多相关wangeditor富文本编辑内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
vue+iview实现分页及查询功能
Nov 17 Vue.js
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
Vue基本指令实例图文讲解
Feb 25 Vue.js
如何让vue长列表快速加载
Mar 29 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
Vue中使用import进行路由懒加载的原理分析
Apr 01 Vue.js
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 Vue.js
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
vue3.0 数字翻牌组件的使用方法详解
Apr 20 Vue.js
Vue2项目中对百度地图的封装使用详解
Jun 16 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 #Vue.js
vue如何使用rem适配
Feb 06 #Vue.js
如何管理Vue中的缓存页面
Feb 06 #Vue.js
手动实现vue2.0的双向数据绑定原理详解
Feb 06 #Vue.js
vue3.0 自适应不同分辨率电脑的操作
Feb 06 #Vue.js
vue使用echarts画组织结构图
Feb 06 #Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 #Vue.js
You might like
默默简单的写了一个模板引擎
2007/01/02 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
PHP加密解密函数详解
2015/10/28 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
js a标签点击事件
2017/03/30 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
python 编写简单网页服务器的实例
2018/06/01 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
Fossil美国官网:Fossil手表、手袋、珠宝及配件
2017/02/01 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
个人自我鉴定
2013/11/07 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
女娲补天教学反思
2014/02/05 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书