美文网首页
vue富文本vue-quill-editor

vue富文本vue-quill-editor

作者: prayzz | 来源:发表于2019-07-31 17:46 被阅读0次

    富文本插件有很多,之前在做项目的时候也看了很多资料,最后发现还是quill-editor这个插件做好用,支持功能的选择,还有可以自定义上传图片,很方便,我在移动端的微信公众号以及vue的管理分别使用了这个插件。

    我们在vue中使用的时候,需要把相应的模块下载到你的node_modules里面。

    1.在命令栏输入:npm install vue-quill-editor --save;

    2.在你的vue-ceil中的main.js里面需要引入模块:

        import VueQuillEditor from 'vue-quill-editor';

        import 'quill/dist/quill.core.css'

        import 'quill/dist/quill.snow.css'

        import 'quill/dist/quill.bubble.css'

    如图所示:

    3.在需要使用该组件的页面中:

        3.1引入模块:import { quillRedefine } from "vue-quill-editor-upload";

    定义常用的模块

    const toolbarOptions = [

      ["bold", "italic", "underline", "image"], // toggled buttons

      [{ header: 1 }, { header: 2 }],

      [{ color: [] }]

    ];

    3.2在指定的<template>

            <quill-editor

                    ref="QuillEditor"

                    :content="content"

                    :options="editorOption"

                    @change="onEditorChange($event)"

                  ></quill-editor>

    </template>

    3.3需要在data里面配置参数

    editorOption: {

            modules: {

              toolbar: {

                container: toolbarOptions, // 工具栏

                handlers: {

                  image: function(value) {

                    if (value) {

                      document.getElementById("upload_filed").click();

                    } else {

                      this.quill.format("image", false);

                    }

                  }

                }

              }

            }

    3.4methods里面需要定义方法

    handleSuccess(res) {

          // 获取富文本组件实例

          console.log(res, "21323");

          let quill = this.$refs.QuillEditor.quill;

          // 如果上传成功

          if (res) {

            // 获取光标所在位置

            let length = quill.getSelection().index;

            // 插入图片,res为服务器返回的图片链接地址

            quill.insertEmbed(length, "image", res);//自定义上传

            // 调整光标到最后

            quill.setSelection(length + 1);

          } else {

            // 提示信息,需引入Message

            Message.error("图片插入失败");

          }

        },

    //上传图片的方法使用的传统的input方法上传的

    fileChanged(e) {

          const file = e.file;

          this.fr = new FileReader();

          this.targetImg = new FormData();

          this.targetImg.append("file", file, file.name);

          this.fr.readAsDataURL(file);

          this.fr.onload = e => {

            this.upImg = e.target.result;

            this.values = null;

          };

          if (this.targetImg) {

            uploadFile(projectList.file.uploadFile, this.targetImg).then(res => {

              if (res.data.resultCode == "000000") {

                let lit = "http://cfile.12365ai.cn" + res.data.url;

                Toast({

                  message: "图片上传成功",

                  position: "bottom",

                  duration: 1000

                });

                this.handleSuccess(lit);

              }

            });

          }

        },

    相关文章

      网友评论

          本文标题:vue富文本vue-quill-editor

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