vue-quill-editor的加強模塊,vue
功能:git
npm install quill-image-extend-module --save-dev
import {quillEditor, Quill} from 'vue-quill-editor' import {container, ImageExtend} from 'quill-image-extend-module' Quill.register('modules/ImageExtend', ImageExtend)
<template> <div class="quill-wrap"> <quill-editor v-model="content" ref="myQuillEditor" :options="editorOption" > </quill-editor> </div> </template> <script> import {quillEditor, Quill} from 'vue-quill-editor' import {container, ImageExtend} from 'quill-image-extend-module' Quill.register('modules/ImageExtend', ImageExtend) export default { components: {quillEditor}, data() { return { content: '', // 富文本框參數設置 editorOption: { modules: { ImageExtend: { loading: true, name: 'img', action: updateUrl, response: (res) => { return res.info } }, toolbar: { container: container, handlers: { 'image': function () { document.querySelector('.quill-image-input').click() } } } } } } } } </script>
editorOption: { modules: { ImageExtend: { loading: true, // 可選參數 是否顯示上傳進度和提示語 name: 'img', // 圖片參數名 size: 3, // 可選參數 圖片大小,單位爲M,1M = 1024kb action: updateUrl, // 服務器地址, 若是action爲空,則採用base64插入圖片 // response 爲一個函數用來獲取服務器返回的具體圖片地址 // 例如服務器返回{code: 200; data:{ url: 'baidu.com'}} // 則 return res.data.url response: (res) => { return res.info }, headers: (xhr) => {}, // 可選參數 設置請求頭部 start: () => {}, // 可選參數 自定義開始上傳觸發事件 end: () => {}, // 可選參數 自定義上傳結束觸發的事件,不管成功或者失敗 error: () => {}, // 可選參數 自定義網絡錯誤觸發的事件 change: (xhr, formData) => {} // 可選參數 選擇圖片觸發,也可用來設置頭部,但比headers多了一個參數,可設置formData }, toolbar: { container: container, // container爲工具欄,這次引入了所有工具欄,也可自行配置 handlers: { 'image': function () { // 劫持原來的圖片點擊按鈕事件 document.querySelector('.quill-image-input').click() } } } } }
因爲不一樣的用戶的服務器返回的數據格式不盡相同github
所以
在配置中,你必須以下操做npm
// 你必須把返回的數據中所包含的圖片地址 return 回去 respnse: (res) => { return res.info // 這裏切記要return回你的圖片地址 }
好比你的服務器返回的成功數據爲bash
{ code: 200, starus: true, result: { img: 'http://placehold.it/100x100' // 服務器返回的數據中的圖片的地址 } }
那麼你應該在參數中寫爲:服務器
// 你必須把返回的數據中所包含的圖片地址 return 回去 respnse: (res) => { return res.result.img // 這裏切記要return回你的圖片地址 }
<template> <div class="quill-wrap"> <quill-editor v-model="content" ref="myQuillEditor" :options="editorOption" > </quill-editor> </div> </template> <script> import {quillEditor, Quill} from 'vue-quill-editor' import {container, ImageExtend} from 'quill-image-extend-module' import ImageResize from 'quill-image-resize-module' Quill.register('modules/ImageExtend', ImageExtend) // use resize module Quill.register('modules/ImageResize', ImageResize) export default { components: {quillEditor}, data() { return { content: '', // 富文本框參數設置 editorOption: { modules: { ImageResize: {}, ImageExtend: { loading: true, name: 'img', size: 2, // 單位爲M, 1M = 1024KB action: updateUrl, headers: (xhr) => { }, response: (res) => { return res.info } }, toolbar: { container: container, handlers: { 'image': function () { document.querySelector('.quill-image-input').click() } } } } } } } } </script>