vue中是使用富文本编辑器vue-quill-edit

之前使用的富文本编辑器是uEditor,kindEditor,感觉不太方便

近期项目vue单页面,就使用这个编辑器组件吧!

一、安装  cnpm install vue-quill-editor

二、引入 

  在main.js引入并注册:

import  VueQuillEditor from 'vue-quill-editor'
// require styles 引入样式
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'

Vue.use(VueQuillEditor)

 

三、封装组件:

  

<template>
    <div class="quill_box">
      <quill-editor 
        v-model="content" 
        ref="myQuillEditor" 
        :options="editorOption" 
        @blur="onEditorBlur($event)" @focus="onEditorFocus($event)"
        @change="onEditorChange($event)">
      </quill-editor>
    </div>
    
</template> 
<script>
import Bus from "../../assets/utils/eventBus";



export default {
  data() {
    return {
      content:'',
      editorOption: {
        placeholder: "请编辑内容",
        modules: {
          toolbar: [
            ["bold", "italic", "underline", "strike"],
            ["blockquote", "code-block"],
            [{ list: "ordered" }, { list: "bullet" }],
            [{ script: "sub" }, { script: "super" }],
            [{ indent: "-1" }, { indent: "+1" }],
            [{ size: ["small", false, "large", "huge"] }],
            [{ font: [] }],
            [{ color: [] }, { background: [] }],
            [{ align: [] }],
            [ "image"]
          ]
        }
      }
    };
  },
  props:[
    'contentDefault'
  ],
  watch:{
    contentDefault:function(){
      this.content = this.contentDefault;
    }
  },
  mounted:function(){
    this.content = this.contentDefault;
  },
  methods: {
    onEditorBlur() {
      //失去焦点事件
      // console.log('失去焦点');
    },
    onEditorFocus() {
      //获得焦点事件
      // console.log('获得焦点事件');
    },
    onEditorChange() {
      //内容改变事件
      // console.log('内容改变事件');
      Bus.$emit('getEditorCode',this.content)
    }
  }
};
</script> 

<style lang="less">
  .quill_box{
    .ql-toolbar.ql-snow{border-color:#dcdfe6;}
    .ql-container{height:200px !important;border-color:#dcdfe6;}
    .ql-snow .ql-picker-label::before {
      position: relative;
      top: -10px;
    }
    .ql-snow .ql-color-picker .ql-picker-label svg, .ql-snow .ql-icon-picker .ql-picker-label svg{position: relative;top:-6px;}
  }
</style>

四、引入使用:

<my-editor :contentDefault="contentDefault"></my-editor>
components:{
    myEditor:myEditorComponent
  },

 

posted @ 2018-08-22 16:30  LIULIULIU666  阅读(1962)  评论(0编辑  收藏  举报