From ef0eb903a7750dd6a807b9ad18e1fd0debaccfe1 Mon Sep 17 00:00:00 2001 From: Phoenix <64720302+Concur-max@users.noreply.github.com> Date: Thu, 5 Jun 2025 14:13:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=B6=88=E6=81=AF=E7=BB=84=E4=BB=B6):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9B=BE=E7=89=87=E6=B6=88=E6=81=AF=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E4=BD=93=E9=AA=8C=E5=B9=B6=E4=BF=AE=E5=A4=8D=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=89=A9=E5=B1=95=E5=90=8D=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 在图片消息组件中添加上传进度显示和加载状态 2. 重构图片上传逻辑,先显示本地预览再上传 3. 修复文件消息组件中从文件名获取扩展名改为从文件路径获取 4. 根据消息浮动方向调整提及文本颜色 重构了图片上传流程,现在会先显示本地预览图片,然后在上传过程中显示进度条。同时修复了文件扩展名获取逻辑,现在从文件路径而非文件名获取扩展名。优化了提及文本的颜色显示,使其根据消息浮动方向(左/右)显示不同颜色。 --- src/components/editor/Editor.vue | 19 +------ src/components/talk/message/FileMessage.vue | 6 +- src/components/talk/message/ImageMessage.vue | 35 ++++++++++-- src/components/talk/message/TextMessage.vue | 2 +- src/views/message/inner/panel/PanelFooter.vue | 56 ++++++++++++++++++- 5 files changed, 92 insertions(+), 26 deletions(-) diff --git a/src/components/editor/Editor.vue b/src/components/editor/Editor.vue index fc15f55..5bc1b8e 100644 --- a/src/components/editor/Editor.vue +++ b/src/components/editor/Editor.vue @@ -363,22 +363,9 @@ async function onUploadFile(e: any) { console.log("文件类型"+file.type) if (file.type.indexOf('image/') === 0) { console.log("进入图片") - // 处理图片文件 - const quill = getQuill() - let index = getQuillSelectionIndex() - - // 删除编辑器中多余的换行符 - if (index == 1 && quill.getLength() == 1 && quill.getText(0, 1) == '\n') { - quill.deleteText(0, 1) - index = 0 - } - - // 上传图片并插入到编辑器中 - let src = await onUploadImage(file) - if (src) { - quill.insertEmbed(index, 'image', src) - quill.setSelection(index + 1) - } + // 处理图片文件 - 立即显示临时消息,然后上传 + let fn = emitCall('image_event', file, () => {}) + emit('editor-event', fn) return } diff --git a/src/components/talk/message/FileMessage.vue b/src/components/talk/message/FileMessage.vue index 5649a89..8129e4e 100644 --- a/src/components/talk/message/FileMessage.vue +++ b/src/components/talk/message/FileMessage.vue @@ -49,7 +49,7 @@ const PPT_EXTENSIONS = ['PPT', 'PPTX', 'PPS', 'PPSX'] // 获取文件类型信息 const fileInfo = computed(() => { - const extension = getFileExtension(props.extra.name) + const extension = getFileExtension(props.extra.path) if (EXCEL_EXTENSIONS.includes(extension)) { return fileTypes.EXCEL } @@ -63,8 +63,8 @@ const fileInfo = computed(() => { }) // 获取文件扩展名 -function getFileExtension(filename) { - const parts = filename.split('.') +function getFileExtension(filepath) { + const parts = filepath.split('.') return parts.length > 1 ? parts.pop().toUpperCase() : '' } diff --git a/src/components/talk/message/ImageMessage.vue b/src/components/talk/message/ImageMessage.vue index 389c220..588a3a8 100644 --- a/src/components/talk/message/ImageMessage.vue +++ b/src/components/talk/message/ImageMessage.vue @@ -1,9 +1,9 @@