YunaiV
|
b52ad0c34b
|
refactor: 前端 IM API 移除 src/api/im/home 中间目录,face / friend / group / message / rtc 直接放在 src/api/im 下
|
2026-05-18 13:20:43 +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
|
312df4c73d
|
refactor(im): 抽象 IM 选择类弹窗为 PickerPanel 体系,对齐微信 PC
- 拆「业务壳 + 纯 PickerPanel」两层;13 个 dialog 统一 ref + open(opts) 接口
- 新增 FriendPickerPanel / ConversationPickerPanel / GroupMemberPickerPanel
- 抽 useFriendBuckets / useSelectedItems composable + buildDefaultGroupName / picker-dialog.scss mixin
- conversationStore 加 recentForwardConversationKeys 系列 action(持久化到 IDB)
- 三态语义固化:hide > locked > disabled
- 圆形勾选用微信绿;主按钮跟随项目主题色;最近转发横向头像 + 移除模式
- 删 GroupMemberSelector(由 GroupMemberPickerPanel 替代)/ FriendLite.deleted 死字段
- 配套:project_duibiao/im/dialog-picker-{contract,wechat-compare}.md
|
2026-05-08 14:06:48 +08:00 |
YunaiV
|
0b07091e79
|
🐛 fix(im): 修复切会话 watch 仅监听 targetId 导致私聊与群聊 id 同号时不触发
home/index.vue 已读 watch、MessagePanel 滚动 / 侧栏 / 群资料预拉 watch 都只看 targetId,
私聊 1 切群 1 时不会触发,会把侧栏 / 新消息浮窗 / 滚动状态 / 已读上报漏掉,且不跑 ensureGroupData。
对齐多选 + 语音那两条 watch,统一改成监听 [type, targetId]。
|
2026-05-07 21:26:40 +08:00 |
YunaiV
|
0323566878
|
✨ feat(im): 初始化消息转发 v0.3:第三次评审(语音播放全局互斥)
新点的语音停掉旧的,对齐微信 PC 语义;一次只播一条,主面板 / 历史抽屉 / 合并详情共享同一播放态,避免多窗口同时出声。
- 新增 useVoicePlayer composable:模块级单例 currentTask + play / stop;ended / error / play().catch 全部 once: true 收尾,避免 listener 泄漏;play(key, url) / stop(key?) / isPlaying(key) 以 Symbol 当播放身份
- MessageBubble setup 里 Symbol('im-message-bubble-voice') 生成实例级 voiceKey;voicePlaying 改成派生 computed,移除本地 currentAudio
- MessageBubble 卸载兜底:调 voicePlayer.stop(voiceKey) 仅停自己;防止删除消息 / 历史抽屉切筛选导致气泡消失但 audio 仍在响;不会误伤别处仍可见的同 url 气泡
- MessagePanel 切会话 watch 追加 voicePlayer.stop()
- MessageHistory 关闭抽屉 watch 追加 voicePlayer.stop()
- MessageMergeDetailDialog handleClose 追加 voicePlayer.stop()
|
2026-05-07 21:26:12 +08:00 |
YunaiV
|
82d065c270
|
✨ feat(im): 初始化消息转发 v0.2:第二次优化部分代码(一些工具类等)
|
2026-05-07 20:34:09 +08:00 |
YunaiV
|
cf01143632
|
✨ feat(im): 初始化消息转发 v0.1:第一次评审
|
2026-05-07 19:47:27 +08:00 |
YunaiV
|
2f513f7b8f
|
✨ feat(im): 初始化群申请 v0.2:第三把 review
|
2026-05-06 20:51:45 +08:00 |
YunaiV
|
390b66aee8
|
feat(im): 群禁言/封禁 UI 交互 + 群主解散群聊
一、群禁言交互
- MessageItem 右键菜单新增「禁言/解除禁言/移除」(权限校验)
- 新增 GroupMuteMemberDialog 禁言时长选择弹窗
- ConversationGroupSide 新增「全群禁言」开关
- MessageInput 新增禁言/封禁覆盖层,拦截所有发送入口
- canManageSender 目标角色未知时不展示管理菜单
- 全群禁言群主按 ownerUserId 直接豁免,不依赖成员列表
二、群封禁(GROUP_BANNED 1533)
- constants 激活 GROUP_BANNED 常量,扩展 isGroupNotification 范围
- groupStore 处理 1533 事件,实时更新 banned 字段
- MessageInput 覆盖层最高优先级判断 banned(红底)
- Group 类型、convertGroup 映射 banned 字段
三、禁言事件(1512-1515)
- constants 激活 GROUP_MEMBER_MUTED / CANCEL_MUTED / MUTED / CANCEL_MUTED
- groupStore 处理 1512-1515 事件,更新 muteEndTime / mutedAll
- user.ts 新增 4 条禁言 + 2 条封禁通知文案
- GroupNotificationPayload 扩展 mutedUserId / muteEndTime / banned
四、群主解散群聊
- ConversationGroupSide 底部按钮:群主显示「解散群聊」,非群主显示「退出群聊」
- 新增 handleDissolve 实现(二次确认 → dissolveGroup API → 清本地数据)
|
2026-05-05 18:41:28 +08:00 |
YunaiV
|
dd75c702db
|
✨ feat(im):删好友「同时清空聊天记录」弹窗 + 顶部「对方还不是你的朋友」胶囊(点击弹 UserInfoCard)+ fetchFriends 不动 DISABLE 尊重用户选择
|
2026-05-05 00:57:58 +08:00 |
YunaiV
|
2a55748296
|
✨ feat(im):增加好友删除时,增加是否删除本地聊天的选项
|
2026-05-05 00:33:06 +08:00 |
YunaiV
|
1b51926b19
|
refactor(im): 移除 TIP_TIME 消息类型,时间分隔条改为渲染时按 prevMessage.sendTime 计算
顺带修复 Bug-Y(删除最后一条消息后孤立时间分隔条)
|
2026-05-04 16:05:23 +08:00 |
YunaiV
|
5b9acb4813
|
fix(im):从群聊,点击好友聊天时,关闭之前的群聊面板
|
2026-05-04 10:31:02 +08:00 |
YunaiV
|
01e0e8e37b
|
✨ feat(im): 增加群消息的置顶
|
2026-05-03 12:15:39 +08:00 |
YunaiV
|
fa27c27831
|
✨ feat(im): 增加群角色(管理员)
|
2026-05-02 14:31:42 +08:00 |
YunaiV
|
52fdf0bcab
|
✨ feat(im): 消息右键菜单优化 + 修复图片场景滚不到底
- MessageItem:「回复」→「引用」并加图标;撤回 / 删除互斥(自己消息 2 分钟内显示撤回,超出 / 对方消息显示删除),均加分割线 + 红色样式对齐微信;MENU_KEYS 抽 const 防 typo;引用块从气泡上方移到下方,selfSend 时竖线镜像到右侧
- MessagePanel:scrollToBottom 改 async + waitMediaSettled 等图片 / 视频元数据加载;用 expectedScrollTop drift 替代 distanceFromBottom,修复「图片加载完底部上移、误判用户已滚走」导致到不了底
- ReplyPreview:删等价的 filePayload / voicePayload alias,直接复用 parsedPayload
- uiStore:ContextMenuItem 加 icon? 字段,支持菜单项前置图标
|
2026-05-01 23:04:56 +08:00 |
YunaiV
|
1dfab43b8a
|
✨ feat(im): 增加【消息引用】的功能
|
2026-05-01 18:03:05 +08:00 |
YunaiV
|
8564788b11
|
✨ feat(im): 对齐微信的图标展示
|
2026-05-01 08:17:24 +08:00 |
YunaiV
|
238862b572
|
✨ feat(im): 增加发送草稿,切换对话的时候,不丢失。对齐微信
|
2026-05-01 07:52:18 +08:00 |
YunaiV
|
dfbae06afa
|
✨ feat(im): 优化输入框的样式
|
2026-05-01 06:59:14 +08:00 |
YunaiV
|
9f1fc9ef78
|
reviewed
|
2026-04-30 21:38:17 +08:00 |
YunaiV
|
4b4c4fab11
|
✨ feat(im): 优化群聊的功能界面
|
2026-04-30 16:59:56 +08:00 |
YunaiV
|
a762dfff84
|
✨ feat(im): 优化整体包结构,将 friend、group 通用组件抽过去。
|
2026-04-30 10:11:20 +08:00 |
YunaiV
|
4b64153044
|
✨ feat(im): 完善 friend、group 相关的本地存储(疯狂优化)
|
2026-04-29 22:03:54 +08:00 |
YunaiV
|
e90f9e5237
|
✨ feat(im): 增加 friend、group 相关的本地存储
|
2026-04-29 15:50:49 +08:00 |
YunaiV
|
de39bc7fc1
|
✨ feat(im): 优化代码,移除 message 里的 name 存储,避免更新困难。(为 friend、group 独立存储做准备)
|
2026-04-28 23:32:40 +08:00 |
YunaiV
|
29a03ef03d
|
✨ feat(im): 优化整体 message 包结构
|
2026-04-28 09:29:40 +08:00 |