vue3使用tinymce富文本的多图片批量上传
·
首先先安转Editor
npm i @tinymce/tinymce-vue
然后在使用到的页面引入
import Editor from "@tinymce/tinymce-vue";
使用
<Editor :init="init" v-model="ruleForm.data.description" style="width: 100%"></Editor>
//首先引入一张显示在头部的按钮图片
import noImg1 from "@/assets/images/uploadImg.png";
const init = reactive({
menubar: false,
language: "zh_CN",
height: 265,
plugins: "wordcount ",
toolbar: "codesample bold italic underline alignleft aligncenter alignright alignjustify | undo redo | formatselect | forecolor backcolor | bullist numlist outdent indent | lists link image media table code | imageupload | removeformat | fullscreen",
branding: false,
setup: (editor) => {
//To add a simple triangle icon:
editor.ui.registry.addIcon("imageupload", `<img style="width: 24px; height: 24px" src="${noImg1}" />`);
editor.ui.registry.addButton("imageupload", {
icon: "imageupload",
onAction: () => {
let imageInput = document.createElement("input");
imageInput.setAttribute("type", "file");
imageInput.setAttribute("multiple", "multiple");
imageInput.setAttribute("accept", "image/gif, image/jpg, image/jpeg, image/png");
document.body.appendChild(imageInput);
// 模拟input点击事件
let evt = new MouseEvent("click", {
bubbles: false,
cancelable: true,
view: window,
});
imageInput.dispatchEvent(evt);
imageInput.addEventListener("change", (e) => {
// 判断图片大小
for (const key in evt.target.files) {
let item = evt.target.files[key];
if (item.size) {
if (item.size / 1024 / 1024 > 10) {
ElMessage.warning("图片上传大小应低于10M");
return false;
}
}
}
let arrTmp = [];
for (const key in evt.target.files) {
let item = evt.target.files[key];
if (item.lastModified) {
arrTmp.push(item);
}
}
// 插入
let formData = new FormData();
if (arrTmp.length > 0) {
arrTmp.forEach((item, index) => {
formData.append(`file[${index}]`, item);
});
} else {
formData.append("file", evt.target.files[0]);
}
uploadImg(formData).then((res) => {
if (res.data.length > 0) {
res.data.forEach((item) => {
editor.execCommand("mceInsertContent", false, `<img src='/${item}'/>`);
});
}
ElMessage.success(res.msg);
})
});
// 图片插入完后,remove
imageInput.remove();
},
});
},
});
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)