zoukankan      html  css  js  c++  java
  • dialogue中需要添加编辑器

    有时候,弹框内要使用编辑器,可以选择使用

    
    
    vue-quill-editor
               <el-form-item prop="content" label="公告内容">
                <quill-editor
                  ref="text"
                  auto-complete="off"
                  v-model="addForm.content"
                  class="myQuillEditor"
                  :options="editorOption"
                />
              </el-form-item>
    
    //导入
    import { quillEditor } from "vue-quill-editor";
    import "quill/dist/quill.core.css";
    import "quill/dist/quill.snow.css";
    import "quill/dist/quill.bubble.css";
    
    //注册组件
    components:{quillEditor}
    
    data(){
      return {
       editorOption: {},
    }  
    }

    富文本上传图片
    1、新建quill-config.js文件
    import API from "./api_fileUpload"; //图片上传地址
    
    /*富文本编辑图片上传配置*/
    const uploadConfig = {
      action: "", // 必填参数 图片上传地址
      methods: "POST", // 必填参数 图片上传方式
      token: "", // 可选参数 如果需要token验证,假设你的token有存放在sessionStorage
      name: "img", // 必填参数 文件的参数名
      size: 500, // 可选参数   图片大小,单位为Kb, 1M = 1024Kb
      accept: "image/png, image/gif, image/jpeg, image/bmp, image/x-icon", // 可选 可上传的图片格式
    };
    
    // toolbar工具栏的工具选项(默认展示全部)
    const toolOptions = [
      ["bold", "italic", "underline", "strike"],
      ["blockquote", "code-block"],
      [{ header: 1 }, { header: 2 }],
      [{ list: "ordered" }, { list: "bullet" }],
      [{ script: "sub" }, { script: "super" }],
      [{ indent: "-1" }, { indent: "+1" }],
      [{ direction: "rtl" }],
      [{ size: ["small", false, "large", "huge"] }],
      [{ header: [1, 2, 3, 4, 5, 6, false] }],
      [{ color: [] }, { background: [] }],
      [{ font: [] }],
      [{ align: [] }],
      ["clean"],
      ["link", "image", "video"],
    ];
    const handlers = {
      image: function image() {
        var self = this;
        var fileInput = this.container.querySelector("input.ql-image[type=file]");
        if (fileInput === null) {
          fileInput = document.createElement("input");
          fileInput.setAttribute("type", "file");
          // 设置图片参数名
          if (uploadConfig.name) {
            fileInput.setAttribute("name", uploadConfig.name);
          }
          // 可设置上传图片的格式
          fileInput.setAttribute("accept", uploadConfig.accept);
          fileInput.classList.add("ql-image");
          // 监听选择文件
          fileInput.addEventListener("change", function () {
            let form = new FormData();
            form.append("file", fileInput.files[0]);
            form.append("key", fileInput.files[0].name);
            let config = {
              headers: { "Content-Type": "multipart/form-data" },
            };
    // 图片上传地址
            API.fileUpload(form, config).then((res) => {
              let length = self.quill.getSelection(true).index;
              //这里很重要,你图片上传成功后,img的src需要在这里添加,res.path就是你服务器返回的图片链接。
              self.quill.insertEmbed(length, "image", res.imgUrlPath);
              self.quill.setSelection(length + 1);
            });
    
            // // 创建formData
            // var formData = new FormData();
            // formData.append(uploadConfig.name, fileInput.files[0]);
            // formData.append("object", "product");
            // // 如果需要token且存在token
            // if (uploadConfig.token) {
            //   formData.append("token", uploadConfig.token);
            // }
            // // 图片上传
            // var xhr = new XMLHttpRequest();
            // xhr.open(uploadConfig.methods, uploadConfig.action, true);
            // // 上传数据成功,会触发
            // xhr.onload = function (e) {
            //   if (xhr.status === 200) {
            //     var res = JSON.parse(xhr.responseText);
            //     let length = self.quill.getSelection(true).index;
            //     //这里很重要,你图片上传成功后,img的src需要在这里添加,res.path就是你服务器返回的图片链接。
            //     self.quill.insertEmbed(length, "image", res.path);
            //     self.quill.setSelection(length + 1);
            //   }
            //   fileInput.value = "";
            // };
            // // 开始上传数据
            // xhr.upload.onloadstart = function (e) {
            //   fileInput.value = "";
            // };
            // // 当发生网络异常的时候会触发,如果上传数据的过程还未结束
            // xhr.upload.onerror = function (e) {};
            // // 上传数据完成(成功或者失败)时会触发
            // xhr.upload.onloadend = function (e) {
            //   // console.log('上传结束')
            // };
            // xhr.send(formData);
    
            //-----结束
          });
          this.container.appendChild(fileInput);
        }
        fileInput.click();
      },
    };
    
    export default {
      placeholder: "",
      theme: "snow", // 主题
      modules: {
        toolbar: {
          container: toolOptions, // 工具栏选项
          handlers: handlers, // 事件重写
        },
      },
    };
    
    

    2、导入到引入的富文本中

        <quill-editor
              ref="myTextEditor"
              v-model="filters.content"
              :options="quillOption"
              class="myQuillEditor"
              auto-complete="off"
        ></quill-editor>
    
      import {quillEditor} from "vue-quill-editor";
      import "quill/dist/quill.core.css";
      import "quill/dist/quill.snow.css";
      import "quill/dist/quill.bubble.css";
      import quillConfig from '../../api/quill-config';
    
        components: {quillEditor},
        data() {
          return {
            filters: {
              content: ""
            },
            editorOption: {},
            quillOption: quillConfig,
          }
        },
     
  • 相关阅读:
    Cobbler学习之一--Fedora17下配置Cobbler安装环境
    linux下 tar解压 gz解压 bz2等各种解压文件使用方法
    linux性能检测工具
    firefox的plugin-container进程关闭方法
    部署额外域控制器,Active Directory
    利用yum下载软件包的三种方法
    HP iLo2 试用序列号
    (转)Linux下root密码丢失和运行级别错误的解决办法
    linux下的5个查找命令
    (转)CentOs上配置samba服务
  • 原文地址:https://www.cnblogs.com/0520euv/p/12183221.html
Copyright © 2011-2022 走看看