From 55588504a1644937148ed9469bdb867947a86a92 Mon Sep 17 00:00:00 2001 From: old burden Date: Mon, 30 Mar 2026 13:50:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BE=A7=E8=BE=B9=E6=A0=8F=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E5=86=85=E6=95=9B=E5=9B=BE=E8=B0=83=E5=A4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- portal-ui/src/components/VideoRichEditor.vue | 24 +++++++++++++------- portal-ui/src/layout/components/Menu.vue | 4 ++-- portal-ui/src/views/VideoGen.vue | 24 ++++++++++++-------- 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/portal-ui/src/components/VideoRichEditor.vue b/portal-ui/src/components/VideoRichEditor.vue index 75ef884..6cd63bf 100644 --- a/portal-ui/src/components/VideoRichEditor.vue +++ b/portal-ui/src/components/VideoRichEditor.vue @@ -255,6 +255,8 @@ const insertMentionImage = (item) => { editorRef.value.focus() restoreSelection() removeMentionKeywordBeforeCursor() + // 删除 @关键字 后必须重新记录选区,否则 insertReference 里 restoreSelection 仍用删除前的 Range,会插错位置甚至覆盖后文 + saveSelection() insertReference(item) hideMentionPanel() emit('text-change', getPlainText()) @@ -488,7 +490,7 @@ onMounted(() => { flex: 1; min-height: 220px; font-size: 15px; - line-height: 1.6; + line-height: 1.9; white-space: pre-wrap; word-break: break-word; overflow-y: auto; @@ -496,7 +498,7 @@ onMounted(() => { caret-color: #00cae0; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 14px; - padding: 14px 16px; + padding: 16px 18px; background: rgba(0, 0, 0, 0.25); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); } @@ -512,22 +514,28 @@ onMounted(() => { display: block; } .video-rich-editor :deep(.inline-rich-image) { - height: 1.1em; + display: inline-block; width: auto; - vertical-align: baseline; - margin: 0 2px; - border-radius: 4px; + height: auto; + max-width: min(260px, 100%); + max-height: 148px; + object-fit: contain; + vertical-align: middle; + margin: 6px 8px; + border-radius: 8px; + border: 1px solid rgba(255, 255, 255, 0.12); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); } .video-rich-editor :deep(.inline-rich-reference) { display: inline-flex; align-items: center; padding: 0 6px; - margin: 0 2px; + margin: 0 3px; border-radius: 4px; background: rgba(0, 202, 224, 0.15); color: #5eebf5; font-size: 0.85em; - line-height: 1.6; + line-height: 1.5; } .mention-panel { position: absolute; diff --git a/portal-ui/src/layout/components/Menu.vue b/portal-ui/src/layout/components/Menu.vue index a7db5ed..7257c58 100644 --- a/portal-ui/src/layout/components/Menu.vue +++ b/portal-ui/src/layout/components/Menu.vue @@ -23,9 +23,9 @@