1. 程式人生 > >vue中使用vue-quill-editor富文字編輯器,自定義toolbar修改工具欄options

vue中使用vue-quill-editor富文字編輯器,自定義toolbar修改工具欄options

基於webpack和vue

一、npm 安裝 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>
     <quill-editor
v-model="content" ref="myQuillEditor" :options="editorOption" @blur="onEditorBlur($event)" @focus="onEditorFocus($event)" @change="onEditorChange($event)">
</quill-editor> </template> <script> import { quillEditor } from 'vue-quill-editor'
export default{ data(){ return { content:null, editorOption:{} } }, methods:{ onEditorBlur(){//失去焦點事件 }, onEditorFocus(){//獲得焦點事件 }, onEditorChange(){//內容改變事件 } } }
</script>

這樣引入後你會得到這樣一個編輯器vue-quill-editor
那麼你如果不需要那麼多的工具欄功能要怎麼辦呢;應該是通過options來修改但是他的預設值是什麼的
我在百度找了一圈也沒找到方法
最後在https://quilljs.com/docs/themes/這個官方文件裡面看到了類似的方法
這裡寫圖片描述
初始值的設定應該是一樣的吧
所以我就照著toolbar部分去修改了options

<script>
    import { quillEditor } from 'vue-quill-editor'
    export default{
        data(){
            return {
                content:null,
                editorOption:{
                    modules:{
                        toolbar:[
                          ['bold', 'italic', 'underline', 'strike'],        // toggled buttons
                           ['blockquote', 'code-block']
                        ]
                    }
                }
            }
        },
        methods:{
            onEditorBlur(){//失去焦點事件
            },
            onEditorFocus(){//獲得焦點事件
            },
            onEditorChange(){//內容改變事件
            }
        }
    }
</script>   

果然 生效了 只顯示了我寫在toolbar裡面的模組
這裡寫圖片描述

那麼toolbar工具欄對應功能的模組名是什麼呢 我繼續往下看文件 發現大致上有以下的功能

背景顏色 - background
加粗- bold
顏色 - color
字型 - font
內聯程式碼 - code
斜體 - italic
連結 - link
大小 - size
刪除線 - strike
上標/下標 - script
下劃線 - underline
引用- blockquote
標題 - header
縮排 - indent
列表 - list
文字對齊 - align
文字方向 - direction
程式碼塊 - code-block
公式 - formula
圖片 - image
視訊 - video
清除字型樣式- clean

然而我試著直接引入發現有部分的圖示並沒有顯示;
然後我發現他有些如list這種列表應該是有預設值,我在很後面的文件裡發現了這個預設格式規範 這個官方文件也是個坑 內容不寫到一塊的 還好我聰明機智;

這裡寫圖片描述

大致上分為這幾類:

1.只需要填寫功能名的
加粗 - bold;
斜體 - italic
下劃線 - underline
刪除線 - strike
引用- blockquote
程式碼塊 - code-block
公式 - formula
圖片 - image
視訊 - video
清除字型樣式- clean
這一類的引用 直接['name','name']這種格式就好了

2.需要有預設值的
標題 - header  
[{ 'header': 1 }, { 'header': 2 }] 值字型大小

列表 - list 
[{ 'list': 'ordered'}, { 'list': 'bullet' }], 值ordered,bullet

上標/下標 - script 
 [{ 'script': 'sub'}, { 'script': 'super' }],  值sub,super

縮排 - indent
[{ 'indent': '-1'}, { 'indent': '+1' }], 值-1,+1等

文字方向 - direction
[{ 'direction': 'rtl' }],    值rtl

這部分如圖所示會填寫的內容對應提供的值展示功能的圖示 如果多個值他家就顯示多個圖示
這裡寫圖片描述

3.有多個值 以下拉列表形式顯示

大小 - size
 [{ 'size': ['small', false, 'large', 'huge'] }],  

標題 - header
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],

這部分顯示如圖所示 以下拉列形式顯示
這裡寫圖片描述

4.有系統預設值的功能只需填寫一個空陣列 就會有出現預設的選項
顏色 - color
背景顏色 - background
字型 - font
文字對齊 - align
他們的格式都是
[{ 'color': [] }, { 'background': [] }], 
[{ 'font': [] }],
[{ 'align': [] }]
這種格式

效果如下 會有預設值出現
這裡寫圖片描述

toolbar自定義工具欄就是這樣咯 剩下的就是根據填寫功能到options的modules裡就可以了
這裡寫圖片描述