本文已参与「新人创作礼」活动,一起开启掘金创作之路。
vue 富文本编辑器使用quill(可上传图片)
命令(下载依赖)
npm install vue-quill-editor -–save
npm install quill --save
页面引入quill使用
<html>
<quill-editor ref="text" v-model="dataForm.content" class="myQuillEditor" :options="editorOption"/>
</html>
//引入
import Quill from "quill";
import { quillEditor } from "vue-quill-editor";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
<script>
data:(){
return {
quillEditor: null,
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']
]
},
// editorOption里是放图片上传配置参数用的,例如:
action: "/api/product/richtext_img_upload.do", // 必填参数 图片上传地址
methods: "post", // 必填参数 图片上传方式
// token: '', // 可选参数 如果需要token验证,假设你的token有存放在sessionStorage
name: "upload_file", // 必填参数 文件的参数名
size: 1024, // 可选参数 图片大小,单位为Kb, 1M = 1024Kb
accept:"multipart/form-data, image/png, image/gif, image/jpeg,image/jpg" // 可选 可上传的图片格式
},
}
},
components: {
quillEditor
},
</script>
限制富文本内图片大小,有无图片,限制图片大小
<script>
//限制富文本内图片大小,有无图片,限制图片大小
const theEle = this.$refs.text; //获取到元素
console.log(theEle.value);//获取到富文本内容
var img=theEle.value.match(/<img[^>]+>/g);//筛选img标签
if(img==null){//判断有无图片
this.$message("请上传图片");
return false
}
var arrImg = '' // 定义空字符串,下面会往里边填充img标签
for (var j = 0; j < img.length; j++) {
// 正则匹配,摘出img标签下的src里的内容,即capture
img[j].replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function(match, capture) {
arrImg += capture
});
}
// 原来的字符流大小,单位为字节
var strLen=arrImg.length;
// 计算后得到的文件流大小,单位为字节
var fileSize=parseInt(strLen-(strLen/8)*2);
// 由字节转换为MB
var size = "";
size = (fileSize / 1024/1024).toFixed(2);
if(size>1){
this.$message.error("文件大小超过1M,请重新上传")
return false
}
</script>
//base64图片计算 www.jianshu.com/p/b34037058…