From afbf407d1162b0b4c199cfdbe683721e4d05a207 Mon Sep 17 00:00:00 2001 From: mayiming <1627832236@qq.com> Date: Wed, 29 Oct 2025 17:28:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AE=A1=E7=90=86=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E4=B8=AD=E5=AD=A6=E6=9C=AF=E4=BA=A4=E6=B5=81=E9=83=A8?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- management/src/views/meeting/meetingView.vue | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/management/src/views/meeting/meetingView.vue b/management/src/views/meeting/meetingView.vue index af783a8c..bdcba699 100644 --- a/management/src/views/meeting/meetingView.vue +++ b/management/src/views/meeting/meetingView.vue @@ -472,9 +472,22 @@ const initQuillEditor = () => { quillInstance.root.innerHTML = form.value.intro; } - quillInstance.on('text-change', (_, __, source) => { + quillInstance.on('text-change', (delta, _, source) => { if (source === 'user') { - form.value.intro = quillInstance?.root.innerHTML || ''; + const pastedBase64 = getPastedBase64Image(delta); + if (pastedBase64) { + const selection = quillInstance?.getSelection(); + if (!selection) return; + + const imageIndex = selection.index; + quillInstance?.deleteText(imageIndex, 1); + const blob = base64ToBlob(pastedBase64); + + if (blob) { + const file = new File([blob], `pasted-image-${Date.now()}.png`, { type: blob.type }); + uploadEditorImage(file, imageIndex); + } + } } }); } @@ -699,7 +712,6 @@ async function uploadEditorImage(file: File, insertIndex: number) { quillInstance.deleteText(insertIndex, '[图片上传中...]'.length); quillInstance.insertEmbed(insertIndex, 'image', imageUrl); quillInstance.setSelection(insertIndex + 1); - form.value.intro = quillInstance.root.innerHTML; } catch (err) { const errMsg = err instanceof Error ? err.message : '未知错误';