美文网首页Vue前端开发工具文档Vue
九、Vue+Element使用富文本编辑器

九、Vue+Element使用富文本编辑器

作者: 陈楠酒肆 | 来源:发表于2017-08-10 10:04 被阅读4200次

    富文本编辑器在任何项目中都会用到,在Element中我们推荐vue-quill-editor组件,现在我就把它提供给大家,希望对大家有用。具体截图如下:

    截图

    安装编辑器组件

    具体方法:npm install vue-quill-editor --save

    编写组件

    首先我们在components文件夹里创建ue.vue组件,效果图如下:

    组件
    <!-- 组件代码如下 -->
    <template>
      <div>
        <script id="editor" type="text/plain"></script>
      </div>
    </template>
    <script>
      export default {
        name: 'UE',
        data () {
          return {
            editor: null
          }
        },
        props: {
          defaultMsg: {
            type: String
          },
          config: {
            type: Object
          }
        },
        mounted() {
          const _this = this;
          this.editor = UE.getEditor('editor', this.config); // 初始化UE
          this.editor.addListener("ready", function () {
            _this.editor.setContent(_this.defaultMsg); // 确保UE加载完成后,放入内容。
          });
        },
        methods: {
          getUEContent() { // 获取内容方法
            return this.editor.getContent()
          }
        },
        destroyed() {
          this.editor.destroy();
        }
      }
    </script>
    

    在页面中使用

    下面是使用代码

    <template>
      <div>
        <el-row class="warp">
          <el-col :span="24" class="warp-breadcrum">
            <el-breadcrumb separator=">">
              <el-breadcrumb-item :to="{path:'/home'}"><b>首页</b></el-breadcrumb-item>
              <el-breadcrumb-item :to="{path: '/aboutus/aboutlist'}">关于我们</el-breadcrumb-item>
              <el-breadcrumb-item>添加关于我们</el-breadcrumb-item>
            </el-breadcrumb>
          </el-col>
    <!--
    Form 组件提供了表单验证的功能,只需要通过 rule 属性传入约定的验证规则,并 Form-Item 的 prop 属性设置为需校验的字段名即可。具体可以参考官网:http://element.eleme.io/#/zh-CN/component/form
    -->
          <el-col :span="24" class="warp-main">
            <el-form ref="infoForm" :model="infoForm" :rules="rules" label-width="120px">
              <el-form-item label="标题" prop="a_title">
                <el-input v-model="infoForm.a_title"></el-input>
              </el-form-item>
    
              <el-form-item label="来源" prop="a_source">
                <el-input v-model="infoForm.a_source"></el-input>
              </el-form-item>
    <!--使用编辑器
    -->
              <el-form-item label="详细">
                <div class="edit_container">
                  <quill-editor v-model="infoForm.a_content"
                                ref="myQuillEditor"
                                class="editer"
                                :options="editorOption" @ready="onEditorReady($event)">
                  </quill-editor>
                </div>
              </el-form-item>
    
              <el-form-item>
                <el-button type="primary" @click="onSubmit">确认提交</el-button>
              </el-form-item>
            </el-form>
          </el-col>
    
    
        </el-row>
      </div>
    </template>
    
    <script>
      import { quillEditor } from 'vue-quill-editor' //调用编辑器
      export default {
        data() {
          return {
            infoForm: {
              a_title: '',
              a_source: '',
              a_content:'',
              editorOption: {}
            },
            //表单验证
            rules: {
              a_title: [
                {required: true, message: '请输入标题', trigger: 'blur'}
              ],
              a_content: [
                {required: true, message: '请输入详细内容', trigger: 'blur'}
              ]
            },
          }
        },
        computed: {
          editor() {
            return this.$refs.myQuillEditor.quill
          }
        },
        mounted() {
          //初始化
        },
        methods: {
          onEditorReady(editor) {
          },
          onSubmit() {
            //提交
    //this.$refs.infoForm.validate,这是表单验证
            this.$refs.infoForm.validate((valid) => {
              if(valid) {
                this.$post('m/add/about/us',this.infoForm).then(res => {
                  if(res.errCode == 200) {
                    this.$message({
                      message: res.errMsg,
                      type: 'success'
                    });
                    this.$router.push('/aboutus/aboutlist');
                  } else {
                    this.$message({
                      message: res.errMsg,
                      type:'error'
                    });
                  }
                });
              }
            });
          }
        },
        components: {
    //使用编辑器
          quillEditor
        }
      }
    </script>
    

    以上就是全部代码,谢谢大家,欢迎大牛拍砖。为了更好的服务大家,请加入我们的技术交流群:(511387930),同时您也可以扫描下方的二维码关注我们的公众号,每天我们都会分享经验,谢谢大家。

    相关文章

      网友评论

      • 小雾球:写着-quill-editor,结果里面又是UE又是-quill-editor,不知道你到底在表达什么
        陈楠酒肆:@tianyuxing12321 您好,VUE升级了,需要设置信息,你可以加入QQ群(731568857),到群里下载最新的
        tianyuxing12321:同是懵逼,还报错:ReferenceError: UE is not defined
        70caf26359c9:同款懵逼
      • Wayne_6556:编辑器的样式全乱乱,是怎么一回事呢?
        fc2544c50200:@幻想刺客hp 在main.js里面import 对应的css文件
        幻想刺客hp:@leoouc 怎么全局引入样式的,我这边全是乱的
        fc2544c50200:试试全局引入样式
      • e4075f8315da:页面中使用下面的代码在哪里使用啊

      本文标题:九、Vue+Element使用富文本编辑器

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