YunaiV
|
5ebbbf7499
|
✨ feat(im): 新增频道消息的前端实现
|
2026-05-19 13:26:32 +08:00 |
YunaiV
|
f58d1d88c8
|
✨ feat(im): 振铃超时 Job 单人粒度标 NO_ANSWER + 独立 NO_ANSWER 信令推送
✨ feat(im): 处理 RTC_CALL(NO_ANSWER) 信令;私聊气泡显示「未接听」
|
2026-05-18 08:03:52 +08:00 |
YunaiV
|
dc318c8e75
|
✨ feat(im): 通话事件接入会话列表预览(私聊补 START 入消息流);文案统一「语音通话」
|
2026-05-17 22:26:07 +08:00 |
YunaiV
|
b455ce4949
|
✨ feat(im): 优化 rtcStore 的命名
|
2026-05-14 22:15:35 +08:00 |
YunaiV
|
e579a4de13
|
✨ feat(im): 优化 rtc 整体弹窗界面
|
2026-05-14 09:44:39 +08:00 |
YunaiV
|
a170ae37ab
|
✨ feat(im): 优化消息的 format 相关的逻辑,从 user 抽到 message 工具类里,更加统一
|
2026-05-13 23:27:02 +08:00 |
YunaiV
|
40ac2daca8
|
✨ feat(im):文本气泡 @ 高亮支持点击 + URL 自动识别成可点击链接
- @ 段:群消息按 atUserIds 反查群成员,候选 name 兼容历史字面量(真实昵称 / 好友备注 / 群自定义昵称),displayName 统一收敛到 nickname,让历史消息也能渲染成 @真实昵称;@ 段点击弹 UserInfoCard
- @所有人:注入 IM_AT_ALL_USER_ID 虚拟候选,对齐微信 PC 仅高亮配色不挂点击
- 同名歧义:同字面量对应多个 userId 时标记 ambiguous,parser 整段消费成普通文本,避免错绑用户
- URL:识别 http(s) / www. 起头链接,<a target="_blank"> 新标签打开;默认补 https://
- TipSegment 加 link 变体作为统一文本片段类型,TEXT 气泡与灰条 tip 共用 TipSegments 组件渲染
- MessageInput @ token 文本统一用真实昵称,不再掺好友备注 / 群自定义昵称
|
2026-05-08 01:23:09 +08:00 |
YunaiV
|
094ab44094
|
🎨 refactor(im): joinMentionSegments 用 flatMap 替代命令式 push
少一个可变 out + 命令式 forEach,意图更直观
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-07 23:59:00 +08:00 |
YunaiV
|
9eb221e8d2
|
✨ feat(im): 灰条 tip 文案的 mention 段支持点击弹 UserInfoCard
群广播 / 撤回 / 好友事件 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 块切 <TipSegments>
顺手补:utils/constants.ts 新增 SystemUserSexEnum,替换 IM 模块 sex
硬编码 1 / 2
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-07 23:46:50 +08:00 |
YunaiV
|
cf01143632
|
✨ feat(im): 初始化消息转发 v0.1:第一次评审
|
2026-05-07 19:47:27 +08:00 |
YunaiV
|
8eebfd4744
|
✨ feat(im): 初始化表情包 v0.1:第二把 review
|
2026-05-06 20:50:55 +08:00 |
YunaiV
|
1ed5dc7e6a
|
✨ feat(im): 初始化表情包 v0.0:第一把 review
|
2026-05-06 19:42:19 +08:00 |
YunaiV
|
1ac0650984
|
♻️ refactor(im):注释对齐 + patchMessage 复用 applyServerMessageUpdate
- recomputeConversationLast / videoCoverUrl / showSendingLoading 三处 JSDoc 跟实现对齐:
原描述还停留在旧设计(lastSendTime 不重算 / 占位 coverUrl 用 blob / 「外层 loading 多余」),
这轮一并改成当前事实,避免后续维护被误导
- patchMessage 删手写 revoke + Object.assign,改调 applyServerMessageUpdate,
与 ackMessage / insertMessage(existingIndex) 共用一份服务端字段合并语义;
「值未变早返回」保留在 patchMessage 顶部
- 抽 BLOB_URL_PREFIX 常量替代散落在 utils/message.ts 与 useMediaUploader.ts 的 3 处 'blob:' 字面量
|
2026-05-06 10:38:43 +08:00 |
YunaiV
|
b17f7a57e5
|
✨ feat(im): 优化发送中的能力 v0.2:简化各种 kind、复用各种逻辑
|
2026-05-06 08:46:33 +08:00 |
YunaiV
|
f3de29f95f
|
✨ feat(im): 增加名片消息类型
|
2026-05-06 08:00:36 +08:00 |
YunaiV
|
a9f54fdee1
|
feat(im): 重构普通消息类型,和 openim 的消息编号对齐
|
2026-05-05 21:56:05 +08:00 |
YunaiV
|
43372c05ad
|
✨ feat(im): 重构群通知相关,对齐 openim 的消息编号
|
2026-05-03 02:00:43 +08:00 |
YunaiV
|
43666dc56c
|
✨ feat(im): 优化【消息引用】的功能,增加文件、图片的展示调整
|
2026-05-01 19:05:57 +08:00 |
YunaiV
|
1dfab43b8a
|
✨ feat(im): 增加【消息引用】的功能
|
2026-05-01 18:03:05 +08:00 |
YunaiV
|
dfbae06afa
|
✨ feat(im): 优化输入框的样式
|
2026-05-01 06:59:14 +08:00 |
YunaiV
|
fd1ba30bdb
|
✨ feat(im): 优化好友列表的管理
|
2026-04-30 21:09:03 +08:00 |
YunaiV
|
de39bc7fc1
|
✨ feat(im): 优化代码,移除 message 里的 name 存储,避免更新困难。(为 friend、group 独立存储做准备)
|
2026-04-28 23:32:40 +08:00 |
YunaiV
|
9e8d04249c
|
🐛 fix(im): TIP_TEXT 系统提示不再显示空白
群解散 / 退群 / 踢人 等系统提示后端发的是裸字符串,之前按 TextMessage JSON
解析 → 主聊天窗显示空行、会话列表摘要变空。
- message.ts:新增 resolveTipText helper,兼容裸字符串 + {"content":"..."}
- MessageItem / conversationStore.resolveLastContent 把 TIP_TEXT 从 TEXT
分支拆出来,统一走 resolveTipText(TEXT 仍按 JSON 解析,没有裸字符串可能)
|
2026-04-27 19:56:54 +08:00 |
YunaiV
|
e30e30ea51
|
🐛 fix(im): 撤回信号错用 TIP_TEXT,应为 RECALL
|
2026-04-25 11:42:34 +08:00 |
YunaiV
|
68d3ad10d4
|
✨ feat(im): 优化 im 前端的工具类
|
2026-04-24 21:36:09 +08:00 |