zoukankan      html  css  js  c++  java
  • vue富文本编辑器插件vue-quill-editor使用

    简介

    版本:"vue-quill-editor": "^3.0.6"

    vue-quill-editor 使用文档:前言 · Quill官方中文文档 · 看云 (kancloud.cn)

    安装

    npm  install vue-quill-editor@3.0.6  -s

    配置富文本模块

    <template>
      <!-- class="edit_container" -->
      <div style="line-height: normal">
        <quill-editor
          class="ql-editor"
          v-model="content"
          ref="quillEditor"
          :options="editorOption"
          @blur="onEditorBlur($event)"
          @focus="onEditorFocus($event)"
          @change="onEditorChange($event)"
        >
        </quill-editor>
      </div>
    </template>
    
    <script>
    import { quillEditor } from 'vue-quill-editor' // 调用编辑器
    import 'quill/dist/quill.core.css'
    import 'quill/dist/quill.snow.css'
    import 'quill/dist/quill.bubble.css'
    
    export default {
      name: 'Editor',
      props: {
        value: String
      },
      components: {
        quillEditor
      },
      data() {
        return {
          editorOption: {
            placeholder: '请在这里输入',
            modules: {
              toolbar: [
                ['bold', 'italic', 'underline', 'strike'], // 加粗,斜体,下划线,删除线
                // ['blockquote', 'code-block'], // 引用,代码块
                [{ header: 1 }, { header: 2 }], // 标题,键值对的形式;1、2表示字体大小
                [{ list: 'ordered' }, { list: 'bullet' }], // 列表
                [{ script: 'sub' }, { script: 'super' }], // 上下标
                [{ indent: '-1' }, { indent: '+1' }], // 缩进
                [{ direction: 'rtl' }], // 文本方向
                [{ size: ['small', 'large', 'huge'] }], // 字体大小
                [{ header: [1, 2, 3, 4, 5, 6, false] }], // 几级标题
                [{ color: [] }, { background: [] }], // 字体颜色,字体背景颜色
                [{ font: [] }], // 字体
                [{ align: [] }], // 对齐方式
                ['clean'], // 清除字体样式
                ['link'] //, 'image', 'video'
              ]
            }
          },
          content: '',
          theme: 'snow'
        }
      },
      methods: {
        onEditorReady(editor) {
          // 准备编辑器
        },
        onEditorBlur() {}, // 失去焦点事件
        onEditorFocus() {}, // 获得焦点事件
        onEditorChange({ quill, html, text }) {
          this.$emit('contentData', html)
        } // 内容改变事件
      },
      computed: {
        editor() {
          return this.$refs.quillEditor.quill
        }
      },
      mounted() {},
      watch: {
        value(val) {
          this.content = val
        }
      }
    }
    </script>

    使用说明

    为模块注入value(富文本内容(html))、contentData(修改后触发的方法,这里修改父级变量)

    模块toolbar属性可以调整工具栏显示工具详情请查文档

    class="ql-editor"属性如果没有编辑器会过滤制表符和联系空格

    修改css汉化显示

    <style>
     p {
      margin: 10px;
    }
    .ql-snow .ql-tooltip::before {
      content: "链接地址";
    }
    .ql-snow .ql-tooltip a.ql-remove::before {
      content: "移除";
    }
    .ql-snow .ql-tooltip a.ql-action::after {
      content: "编辑";
    }
    
    .ql-snow .ql-tooltip.ql-editing a.ql-action::after {
      content: "保存";
    }
    
    .ql-snow .ql-picker.ql-size .ql-picker-label::before,
    .ql-snow .ql-picker.ql-size .ql-picker-item::before {
      content: "14px";
    }
    
    .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
    .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
      content: "10px";
    }
    .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
    .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
      content: "18px";
    }
    .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
    .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
      content: "32px";
    }
    
    .ql-snow .ql-picker.ql-header .ql-picker-label::before,
    .ql-snow .ql-picker.ql-header .ql-picker-item::before {
      content: "文本";
    }
    .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
    .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
      content: "标题1";
    }
    .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
    .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
      content: "标题2";
    }
    .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
    .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
      content: "标题3";
    }
    .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
    .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
      content: "标题4";
    }
    .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
    .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
      content: "标题5";
    }
    .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
    .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
      content: "标题6";
    }
    
    .ql-snow .ql-picker.ql-font .ql-picker-label::before,
    .ql-snow .ql-picker.ql-font .ql-picker-item::before {
      content: "标准字体";
    }
    .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
    .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
      content: "衬线字体";
    }
    .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
    .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
      content: "等宽字体";
    } 
    </style>

    配置界面使用示例

    template部分

     <editor
                    :value="announcementFormData.content"
                    @contentData="contentChange($event)"
                  ></editor>

    data

     announcementFormData: {
            content: '',
          },

    methods

        contentChange(event) {
          this.announcementFormData.content = event
        },

    展示富文本html

    相关html、css:https://wwa.lanzous.com/iqcexozpx3a

    使用方式打开html传递url参数键为quillDom值为配置界面生成的html字符串(字符串需要使用encodeURIComponent方法处理)

    效果图

  • 相关阅读:
    AssetBundleNote
    UNet笔记
    HololensAR开发设置
    Hololens真机使用Unity开发流程
    数据结构笔记
    解决粘包问题
    使用C#中的Socket进行通讯
    解决Sql注入,防止恶意数据
    110. 平衡二叉树
    104.二叉树的最大深度
  • 原文地址:https://www.cnblogs.com/cyh1282656849/p/14744208.html
Copyright © 2011-2022 走看看