From 1015423431fc2c69a76f44b13514e025c0e74289 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 21 May 2026 14:25:21 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(im):=20=E4=BF=AE=E4=B8=80?= =?UTF-8?q?=E6=89=B9=20L=20=E5=8D=B1=EF=BC=9Awindow.open=20=E5=8A=A0=20noo?= =?UTF-8?q?pener=E3=80=81@=20=E6=B5=AE=E5=B1=82=E7=AE=AD=E5=A4=B4=E6=96=B9?= =?UTF-8?q?=E5=90=91=E8=B7=9F=E9=9A=8F=E5=AE=9A=E4=BD=8D=E3=80=81=E7=BD=AE?= =?UTF-8?q?=E9=A1=B6=E5=B1=95=E5=BC=80=E5=88=87=E7=BE=A4=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E3=80=81=E5=8A=A0=E9=BB=91=E5=90=8D=E5=8D=95=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E9=9D=99=E9=BB=98=E3=80=81=E8=8F=9C=E5=8D=95=E8=B4=9F=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E5=85=9C=E5=BA=95=E3=80=81=E7=BE=A4=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=9B=9E=E6=98=BE=E8=B7=A8=E9=A1=B5=E8=A1=A5=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/im/home/components/ContextMenu.vue | 3 +- .../im/home/components/user/UserInfo.vue | 6 +++- .../components/input/MentionPicker.vue | 7 +++-- .../components/message/GroupPinnedMessage.vue | 11 +++++++- .../components/message/MessageBubble.vue | 3 +- .../group/components/GroupSelectDialog.vue | 28 +++++++++++++------ .../manager/message/MessageContentPreview.vue | 3 +- 7 files changed, 46 insertions(+), 15 deletions(-) diff --git a/src/views/im/home/components/ContextMenu.vue b/src/views/im/home/components/ContextMenu.vue index ae7fb8844..1705c54ac 100644 --- a/src/views/im/home/components/ContextMenu.vue +++ b/src/views/im/home/components/ContextMenu.vue @@ -76,7 +76,8 @@ const adjustedPosition = computed(() => { x = window.innerWidth - menuWidth } } - return { x, y } + // 视口很小 / 菜单项很多时上面减法会算出负值,把菜单顶 / 左边推到 0 兜底 + return { x: Math.max(0, x), y: Math.max(0, y) } }) type MenuItem = (typeof contextMenu.value.items)[number] diff --git a/src/views/im/home/components/user/UserInfo.vue b/src/views/im/home/components/user/UserInfo.vue index 8213bbfd1..b0ae6e3c5 100644 --- a/src/views/im/home/components/user/UserInfo.vue +++ b/src/views/im/home/components/user/UserInfo.vue @@ -386,7 +386,11 @@ async function handleBlock() { return } const target = props.user - await message.confirm(`确定将「${target.nickname || ''}」加入黑名单吗?`, '加入黑名单') + try { + await message.confirm(`确定将「${target.nickname || ''}」加入黑名单吗?`, '加入黑名单') + } catch { + return + } await friendStore.blockFriend(target.id) message.success('已加入黑名单') } diff --git a/src/views/im/home/pages/conversation/components/input/MentionPicker.vue b/src/views/im/home/pages/conversation/components/input/MentionPicker.vue index 3db535771..72e21a4d3 100644 --- a/src/views/im/home/pages/conversation/components/input/MentionPicker.vue +++ b/src/views/im/home/pages/conversation/components/input/MentionPicker.vue @@ -52,8 +52,11 @@ /> - -
+ +
diff --git a/src/views/im/home/pages/conversation/components/message/GroupPinnedMessage.vue b/src/views/im/home/pages/conversation/components/message/GroupPinnedMessage.vue index 9cc2641b0..48e9b1b98 100644 --- a/src/views/im/home/pages/conversation/components/message/GroupPinnedMessage.vue +++ b/src/views/im/home/pages/conversation/components/message/GroupPinnedMessage.vue @@ -60,7 +60,7 @@