From 9eb221e8d22db4b1e6f0e65334f64fee63d19d6a Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 7 May 2026 23:46:50 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(im):=20=E7=81=B0=E6=9D=A1=20ti?= =?UTF-8?q?p=20=E6=96=87=E6=A1=88=E7=9A=84=20mention=20=E6=AE=B5=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=82=B9=E5=87=BB=E5=BC=B9=20UserInfoCard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 群广播 / 撤回 / 好友事件 tip 文案从纯字符串拆成 TipSegment[],mention 段携带 userId,渲染层挂点击 → uiStore.openUserInfoCardAtEvent。 - utils/message.ts:加 TipSegment 协议 + 零依赖 helper - utils/user.ts、utils/conversation.ts:加 segments builder,string 版 改写为 segmentsToText 包装,避免 case 表分叉 - TipSegments.vue:按 activeConversation 推断 addSource,群里走 GROUP+群名、私聊走 SEARCH;nickname 不传备注避免 UserInfo 首屏闪 - MessageItem.vue / MessageHistory.vue:tip 块切 顺手补:utils/constants.ts 新增 SystemUserSexEnum,替换 IM 模块 sex 硬编码 1 / 2 Co-Authored-By: Claude Opus 4.7 --- src/utils/constants.ts | 9 + .../components/message/MessageHistory.vue | 54 +++-- .../components/message/MessageItem.vue | 58 +++-- .../components/message/TipSegments.vue | 62 +++++ src/views/im/utils/conversation.ts | 47 +++- src/views/im/utils/message.ts | 35 +++ src/views/im/utils/user.ts | 214 +++++++++++------- 7 files changed, 352 insertions(+), 127 deletions(-) create mode 100644 src/views/im/home/pages/conversation/components/message/TipSegments.vue diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 2375098ae..a1e2ecb72 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -64,6 +64,15 @@ export const SystemUserSocialTypeEnum = { } } +/** + * 用户性别枚举(对齐后端 system_user_sex 字典) + */ +export const SystemUserSexEnum = { + UNKNOWN: 0, // 未知 + MALE: 1, // 男 + FEMALE: 2 // 女 +} + // ========== INFRA 模块 ========== /** * 代码生成模板类型 diff --git a/src/views/im/home/pages/conversation/components/message/MessageHistory.vue b/src/views/im/home/pages/conversation/components/message/MessageHistory.vue index 61b35700a..b95944564 100644 --- a/src/views/im/home/pages/conversation/components/message/MessageHistory.vue +++ b/src/views/im/home/pages/conversation/components/message/MessageHistory.vue @@ -139,25 +139,22 @@
-