vue-quill-editor配合elementui上传组件自定义图片上传操作
时间: 2023-09-12 08:07:05 浏览: 112
要实现vue-quill-editor配合elementui上传组件自定义图片上传操作,可以使用以下步骤:
1. 在vue-quill-editor中配置图片上传的方法:
```
<template>
<quill-editor v-model="content" ref="myQuillEditor" :options="editorOption"></quill-editor>
</template>
<script>
import { quillEditor } from 'vue-quill-editor'
export default {
components: {
quillEditor
},
data() {
return {
content: '',
editorOption: {
modules: {
toolbar: [
['bold', 'italic', 'underline', 'strike'],
['blockquote', 'code-block'],
[{ 'header': 1 }, { 'header': 2 }],
[{ 'list': 'ordered' }, { 'list': 'bullet' }],
[{ 'script': 'sub' }, { 'script': 'super' }],
[{ 'indent': '-1' }, { 'indent': '+1' }],
[{ 'direction': 'rtl' }],
[{ 'size': ['small', false, 'large', 'huge'] }],
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
[{ 'color': [] }, { 'background': [] }],
[{ 'font': [] }],
[{ 'align': [] }],
['clean'],
['image']
],
imageUploader: {
upload: file => {
// 自定义图片上传
}
}
},
placeholder: '请输入内容',
theme: 'snow'
}
}
}
}
</script>
```
在`modules`中添加`imageUploader`属性,用于自定义图片上传操作,其中`upload`方法就是自定义的图片上传方法。
2. 在自定义的图片上传方法中,使用elementui的上传组件进行图片上传:
```
<template>
<el-upload
class="avatar-uploader"
:action="uploadUrl"
:show-file-list="false"
:on-success="handleSuccess">
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</template>
<script>
export default {
data() {
return {
imageUrl: '',
uploadUrl: '/api/upload'
}
},
methods: {
handleSuccess(response) {
// 上传成功后,获取图片地址,然后插入到编辑器中
const url = response.url
const quillEditor = this.$refs.myQuillEditor.quill
const range = quillEditor.getSelection(true)
const index = range.index + range.length
quillEditor.insertEmbed(index, 'image', url)
}
}
}
</script>
```
3. 在handleSuccess方法中,获取上传成功后的图片地址,然后通过`quillEditor.insertEmbed`方法将图片插入到编辑器中。
这样,就可以实现vue-quill-editor配合elementui上传组件自定义图片上传操作了。
阅读全文