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 简单实现前端权限控制的示例
Dec 25 Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
Vue详细的入门笔记
May 10 Vue.js
vue实现同时设置多个倒计时
May 20 Vue.js
vue3使用vuedraggable实现拖拽功能
Apr 06 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
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
一组PHP可逆加密解密算法实例代码
2014/01/21 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
python调用新浪微博API项目实践
2014/07/28 Python
Python生成密码库功能示例
2017/05/23 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
python开发前景如何
2020/06/11 Python
美国在线面料商店:Online Fabric Store
2018/07/26 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
同学会感言
2015/07/30 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
导游词之河北野三坡
2019/12/11 职场文书
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS
深入解析MySQL索引数据结构
2021/10/16 MySQL
python神经网络 使用Keras构建RNN训练
2022/05/04 Python
python运行脚本文件的三种方法实例
2022/06/25 Python