Compare commits

...

2 Commits

Author SHA1 Message Date
RuoYi e22323971e 富文本复制粘贴图片上传至url 2025-04-24 18:20:01 +08:00
RuoYi f593d36745 update package.json 2025-04-24 18:19:44 +08:00
2 changed files with 28 additions and 5 deletions

View File

@ -5,9 +5,9 @@
"author": "若依",
"license": "MIT",
"scripts": {
"dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
"build:stage": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode staging",
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src"
},

View File

@ -18,6 +18,7 @@
</template>
<script>
import axios from "axios";
import Quill from "quill";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
@ -135,6 +136,7 @@ export default {
this.quill.format("image", false);
}
});
this.Quill.root.addEventListener('paste', this.handlePasteCapture, true);
}
this.Quill.clipboard.dangerouslyPasteHTML(this.currentValue);
this.Quill.on("text-change", (delta, oldDelta, source) => {
@ -192,8 +194,29 @@ export default {
handleUploadError() {
this.$message.error("图片插入失败");
},
},
};
//
handlePasteCapture(e) {
const clipboard = e.clipboardData || window.clipboardData;
if (clipboard && clipboard.items) {
for (let i = 0; i < clipboard.items.length; i++) {
const item = clipboard.items[i];
if (item.type.indexOf('image') !== -1) {
e.preventDefault();
const file = item.getAsFile();
this.insertImage(file);
}
}
}
},
insertImage(file) {
const formData = new FormData();
formData.append("file", file);
axios.post(this.uploadUrl, formData, { headers: { "Content-Type": "multipart/form-data", Authorization: this.headers.Authorization } }).then(res => {
this.handleUploadSuccess(res.data);
})
}
}
}
</script>
<style>