quill-video-image-module
介绍
quill整合视频上传,图片上传到服务器模块,用video标签替换iframe,中文提示框,中文描述
软件架构
软件架构说明
安装教程
npm i vue-quill-editor
npm i quill
npm i quill-video-image-module
<template>
<div class="createArticle">
<quill-editor class="ql-editor" v-model="content" :options="editorOption"></quill-editor>
</div>
</template>
<script>
import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme
import {
quillEditor,
Quill
} from 'vue-quill-editor';
import {
container,
addQuillTitle
} from 'quill-video-image-module';
import {
ImageExtend,
QuillWatch
} from 'quill-video-image-module/quill-image-module';
import {
VideoExtend,
QuillVideoWatch
} from 'quill-video-image-module/quill-video-module'
import ImageResize from 'quill-image-resize-module'
// 引入video模块并注册
import video from 'quill-video-image-module/video'
Quill.register(video, true)
Quill.register('modules/ImageResize', ImageResize)
Quill.register('modules/ImageExtend', ImageExtend)
Quill.register('modules/VideoExtend', VideoExtend)
export default {
components: {
quillEditor
},
data() {
return {
content: '',
// 富文本框参数设置
editorOption: {
modules: {
ImageResize: {},
ImageExtend: {
loading: true, // 可选参数 是否显示上传进度和提示语
name: 'img', // 图片参数名
size: 2, // 可选参数 图片大小,单位为M,1M = 1024kb
action: 'http://127.0.0.1:5000/upload/img', // 服务器地址, 如果action为空,则采用base64插入图片
// response 为一个函数用来获取服务器返回的具体图片地址
// 例如服务器返回{code: 200; data:{ url: 'baidu.com'}}
// 则 return res.data.url
response: res => {
return res.data.url;
},
headers: () => {}, // 可选参数 设置请求头部
start: () => {}, // 可选参数 自定义开始上传触发事件
end: () => {}, // 可选参数 自定义上传结束触发的事件,无论成功或者失败
error: () => {}, // 可选参数 自定义网络错误触发的事件
change: () => {}, // 可选参数 每次选择图片触发,也可用来设置头部,但比headers多了一个参数,可设置formData
sizeError: () => {
alert('图片不能大于1M')
}
},
VideoExtend: {
loading: true,
name: 'img',
size: 100, // 可选参数 视频大小,单位为M,1M = 1024kb
action: 'http://127.0.0.1:5000/upload/img', // 视频上传接口
headers: (xhr) => {
// set custom token(optional)
},
response: (res) => {
// video uploaded path
// custom your own
return res.data.url;
},
sizeError: () => {
alert('视频不能大于100M')
}
},
toolbar: {
container: container, // container为工具栏,此次引入了全部工具栏,也可自行配置
handlers: {
image: function() {
// 劫持原来的图片点击按钮事件
QuillWatch.emit(this.quill.id);
},
video: function() {
QuillVideoWatch.emit(this.quill.id)
}
}
}
}
}
};
},
methods: {},
created() {
},
mounted() {
addQuillTitle();
}
};
</script>
<style>
.createArticle {
padding: 40px 40px;
}
.ql-editor {
min-height: 800px;
}
/* 解决粘贴后光标会自动弹到文档的初始位置 */
.ql-clipboard {
position: fixed;
display: none;
left: 50%;
top: 50%;
}
</style>
作者:Jeebiz 创建时间:2020-07-05 00:31
更新时间:2024-11-05 14:07
更新时间:2024-11-05 14:07