|
|
|
@ -1,5 +1,20 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<el-upload
|
|
|
|
|
:action="uploadUrl"
|
|
|
|
|
:on-success="handleUploadSuccess"
|
|
|
|
|
:before-upload="handleBeforeUpload"
|
|
|
|
|
:on-error="handleUploadError"
|
|
|
|
|
name="file"
|
|
|
|
|
:show-file-list="false"
|
|
|
|
|
:headers="headers"
|
|
|
|
|
style="display: none;"
|
|
|
|
|
ref='upload'
|
|
|
|
|
v-if='this.uploadUrl'
|
|
|
|
|
>
|
|
|
|
|
</el-upload>
|
|
|
|
|
<div class="editor" ref="editor" :style="styles"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
@ -30,6 +45,11 @@ export default {
|
|
|
|
|
readOnly: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
/* 上传地址 */
|
|
|
|
|
uploadUrl: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: '',
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
@ -95,6 +115,26 @@ export default {
|
|
|
|
|
init() {
|
|
|
|
|
const editor = this.$refs.editor;
|
|
|
|
|
this.Quill = new Quill(editor, this.options);
|
|
|
|
|
// 如果设置了上传地址则自定义图片和视频的上传事件
|
|
|
|
|
if (this.uploadUrl) {
|
|
|
|
|
let toolbar = this.Quill.getModule('toolbar');
|
|
|
|
|
toolbar.addHandler('image', (value) => {
|
|
|
|
|
this.uploadType = 'image';
|
|
|
|
|
if (value) {
|
|
|
|
|
this.$refs.upload.$children[0].$refs.input.click();
|
|
|
|
|
} else {
|
|
|
|
|
this.quill.format('image', false);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
toolbar.addHandler('video', (value) => {
|
|
|
|
|
this.uploadType = 'video';
|
|
|
|
|
if (value) {
|
|
|
|
|
this.$refs.upload.$children[0].$refs.input.click();
|
|
|
|
|
} else {
|
|
|
|
|
this.quill.format('video', false);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
this.Quill.pasteHTML(this.currentValue);
|
|
|
|
|
this.Quill.on("text-change", (delta, oldDelta, source) => {
|
|
|
|
|
const html = this.$refs.editor.children[0].innerHTML;
|
|
|
|
|