Commit Graph

  • 8564788b11 feat(im): 对齐微信的图标展示 YunaiV 2026-05-01 08:17:24 +0800
  • 92b1466597 feat(im): 增加群管理的 code review YunaiV 2026-05-01 07:52:31 +0800
  • 238862b572 feat(im): 增加发送草稿,切换对话的时候,不丢失。对齐微信 YunaiV 2026-05-01 07:52:18 +0800
  • be654bce50 feat(im): 增加私聊消息的管理 YunaiV 2026-05-01 07:46:19 +0800
  • d64a695673 feat(im): 增加群聊消息的管理 YunaiV 2026-05-01 07:08:05 +0800
  • dfbae06afa feat(im): 优化输入框的样式 YunaiV 2026-05-01 06:59:14 +0800
  • 384a0c134a feat(im): 完成敏感词的管理 YunaiV 2026-04-30 22:25:25 +0800
  • 9f1fc9ef78 reviewed YunaiV 2026-04-30 21:38:17 +0800
  • fd1ba30bdb feat(im): 优化好友列表的管理 YunaiV 2026-04-30 21:09:03 +0800
  • 01fff53aaf feat(im): 增加 im 的管理界面 YunaiV 2026-04-30 19:04:31 +0800
  • 4b4c4fab11 feat(im): 优化群聊的功能界面 YunaiV 2026-04-30 16:59:56 +0800
  • 368b385267 feat(im): 增加群邀请的功能 YunaiV 2026-04-30 15:47:32 +0800
  • 0ab8b292f2 feat(im): 增加 pinyin 功能 YunaiV 2026-04-30 15:22:35 +0800
  • d19bdd42d5 feat(im): 优化添加好友界面 YunaiV 2026-04-30 14:53:41 +0800
  • 0c7d1f0df6 feat(im): 新增通讯录界面 YunaiV 2026-04-30 14:07:03 +0800
  • a762dfff84 feat(im): 优化整体包结构,将 friend、group 通用组件抽过去。 YunaiV 2026-04-30 10:11:20 +0800
  • 4b64153044 feat(im): 完善 friend、group 相关的本地存储(疯狂优化) YunaiV 2026-04-29 22:03:54 +0800
  • e90f9e5237 feat(im): 增加 friend、group 相关的本地存储 YunaiV 2026-04-29 15:50:49 +0800
  • de39bc7fc1 feat(im): 优化代码,移除 message 里的 name 存储,避免更新困难。(为 friend、group 独立存储做准备) YunaiV 2026-04-28 23:32:40 +0800
  • f0fc144e8a feat(im): 调整代码结构,优化 side 样式 YunaiV 2026-04-28 20:14:24 +0800
  • 431a0bfb93 feat(im): 调整代码结构,优化 side 样式 YunaiV 2026-04-28 20:13:01 +0800
  • ba34e4adc0 feat(im): 优化整体 message 包结构 YunaiV 2026-04-28 09:30:12 +0800
  • 29a03ef03d feat(im): 优化整体 message 包结构 YunaiV 2026-04-28 09:29:40 +0800
  • 122b1ba748 feat(im): 优化 message 的导入 YunaiV 2026-04-28 08:48:38 +0800
  • 56b0630847 feat(im): 优化 icon 的导入 YunaiV 2026-04-28 08:15:29 +0800
  • 6ead932813 feat(im): 优化 icon 的导入 YunaiV 2026-04-28 08:15:10 +0800
  • 9fc10b304c feat(im): 增加 ChatPanel.vue 组件 YunaiV 2026-04-28 01:15:04 +0800
  • 4c8898b6f5 🐛 fix(im): 上传 URL 取错字段,粘贴图片 / 文件 / 语音消息加载失败 YunaiV 2026-04-28 01:14:24 +0800
  • 9c5b11e551 feat(im): 支持历史消息的加载 YunaiV 2026-04-28 01:08:45 +0800
  • e9be6ef8b3 feat(im): 增加群消息的回执开关,通过向下箭头 YunaiV 2026-04-27 23:56:50 +0800
  • 29695b649a feat(im): 增加群消息的回执开关,通过向下箭头 YunaiV 2026-04-27 23:54:41 +0800
  • 8847cdb79f feat(im): 新增 MessageReadStatus.vue YunaiV 2026-04-27 22:36:47 +0800
  • bfa267120a ♻️ refactor(im): MessageItem 头像顶右 + MentionPicker/MessageInput 命名清理 YunaiV 2026-04-27 21:48:34 +0800
  • 8fd21da555 🐛 fix(im): TIP_TEXT 系统提示不再显示空白 YunaiV 2026-04-27 19:59:56 +0800
  • 9e8d04249c 🐛 fix(im): TIP_TEXT 系统提示不再显示空白 YunaiV 2026-04-27 19:56:54 +0800
  • cb5d30e327 feat(im): 新增 MessageItem.vue YunaiV 2026-04-27 19:11:31 +0800
  • ccc9aca21c feat(im): MessageInput 工具栏挪到底部 + 4 图标统一 Iconify + 聊天历史挪到右上角 YunaiV 2026-04-27 15:46:13 +0800
  • fc82ed3d7e ♻️ refactor(input): 优化粘贴文件处理逻辑,简化代码结构 YunaiV 2026-04-27 14:30:38 +0800
  • cba5c15604 feat(im): MessageInput / MentionPicker / ChatPanel 三连修——粘贴文件、切群清空、命名规范 【ChatPanel.vue】 - 加 messageInputKey computed(type-targetId)+ MessageInput :key 绑它, 切会话强制 unmount + remount editor / mention range / 草稿全归零, 避免 A 群打了一半的字 / @ token 漏到 B 群被发出去 (早先用 inline template literal 做 :key,Vue SFC 编译没把表达式接到 vnode.key 上,hmr / 完整 reload 都看到 key=null;改 computed 后正常) 【MessageInput.vue】 - onPaste 加 clipboardData.items 扫一轮:image/* → uploadAndSendImage, 其它 file → uploadAndSendFile,纯文本兜底走 nativeExec('insertText'); 截图 / 拖入图片 / 拖入文件不再被默默吞掉 - 抽 uploadAndSendImage / uploadAndSendFile 两个共用函数, onImagePicked / onFilePicked 改成薄包装走它们,避免上传逻辑双份 - 删 nativeExec 里的 // eslint-disable-next-line @typescript-eslint/no-deprecated: 项目当前 @typescript-eslint v7 没有这条规则,加了会让 lint 报"规则不存在", 反而把 lint 拖红;改用单纯 JSDoc 解释为什么留着 execCommand - 重命名 mentionPos → mentionPosition(prop / ref 一致),按"变量不缩写" - 7 个方法补 JSDoc:onSelectionChange / insertText / onPaste / onInput / onKeydown / onImagePicked / onFilePicked / onVoiceSend;复杂的 collectFromEditor 和 handleSend 加分步 1./2./3. 内联注释 - data-empty 改用属性"存在 / 缺失"模拟(template 里 data-empty="",JS 里 raw 为空就 set ''、否则 delete),CSS 选择器同步改 [data-empty], 比 [data-empty='true'] 直观 【MentionPicker.vue】 - prop pos → position(不缩写);ref / 内部解构 / 默认值都跟着改 - <el-icon><UserFilled /></el-icon> → <Icon icon="ep:user-filled">: 用全局 Icon 组件走 Iconify,少一个 EP 图标 import - scrollToTop / scrollToActive 局部变量 wrap → scrollWrap、 itemH → itemHeight、activeTop → activeOffsetTop; v-for 与 handleSelect 的 (m) → (member) YunaiV 2026-04-27 13:57:18 +0800
  • 678c2d6834 feat(im): MessageInput 切 contenteditable + MentionPicker 对齐微信,修一堆 @ 浮层 bug YunaiV 2026-04-27 13:21:27 +0800
  • 3ea04663f2 feat(im): IM 5 个 store 补 HMR + 抽 atAll 常量 + 全面补齐 JSDoc YunaiV 2026-04-27 13:10:15 +0800
  • a0ed0d800c feat(im): 群聊免打扰接入后端,完善免打扰失败回滚 + ContextMenu 微调 - groupStore.setMuted 改 async,调 /im/group-member/update 推后端 - GroupMember.muted 在类型层补齐;convertGroupMember 保留 muted; loadGroupMembers 拉完成员后用当前用户那条 member.muted 回填 group.muted 与 conversation.muted,避免冷启动后服务端已免打扰的群在会话列表里仍显示为 未免打扰 - ConversationItem.handleMuted 失败回滚:catch 后 ElMessage.error 并反向 setMuted 把 conversationStore(已 saveConversations 落盘)拽回正确状态 - ContextMenu 分割线改用 h-[1px] + bg(UnoCSS 不带 border-style preflight, border-t 在空内容 div 上不显形),文案 text-center → text-left 贴近微信 - groupStore.setMuted 改 async 后,ConversationItem 里两路 setMuted 调用 都用 void 显式 fire-and-forget,风格统一 YunaiV 2026-04-27 09:29:49 +0800
  • 45a530e8c7 feat(im): 新增 MentionPicker.vue、MessageInput.vue、VoiceRecorder.vue 三个组件,vibe~ YunaiV 2026-04-27 09:20:10 +0800
  • 6add0b0600 feat(im): 群聊免打扰接入后端,完善免打扰失败回滚 + ContextMenu 微调 - groupStore.setMuted 改 async,调 /im/group-member/update 推后端 - GroupMember.muted 在类型层补齐;convertGroupMember 保留 muted; loadGroupMembers 拉完成员后用当前用户那条 member.muted 回填 group.muted 与 conversation.muted,避免冷启动后服务端已免打扰的群在会话列表里仍显示为 未免打扰 - ConversationItem.handleMuted 失败回滚:catch 后 ElMessage.error 并反向 setMuted 把 conversationStore(已 saveConversations 落盘)拽回正确状态 - ContextMenu 分割线改用 h-[1px] + bg(UnoCSS 不带 border-style preflight, border-t 在空内容 div 上不显形),文案 text-center → text-left 贴近微信 - groupStore.setMuted 改 async 后,ConversationItem 里两路 setMuted 调用 都用 void 显式 fire-and-forget,风格统一 YunaiV 2026-04-27 09:03:18 +0800
  • 7f84c428a5 feat(im): 优化 ConversationItem.vue,对齐微信的时间展示。 YunaiV 2026-04-27 08:51:35 +0800
  • e85f8edcaa feat(im): 优化 ConversationItem.vue,对齐微信交互 YunaiV 2026-04-27 08:42:39 +0800
  • 115e0482db feat(im): 优化 ConversationItem.vue 增加相关评审 YunaiV 2026-04-27 08:22:14 +0800
  • a1a9053aaa feat(im): 优化 MessagePage.vue 页面,对齐微信交互 YunaiV 2026-04-27 00:51:31 +0800
  • 1a0c11f685 feat(im): 优化 MessagePage.vue 页面,对齐微信交互 YunaiV 2026-04-27 00:51:15 +0800
  • e1b52be8ea feat(im): 新增 MessagePage.vue 页面 + 部分 review YunaiV 2026-04-27 00:01:43 +0800
  • 8790d6b128 feat(im): 优化 ToolBar.vue 组件 YunaiV 2026-04-26 23:45:27 +0800
  • 3a77001b42 🐛 fix(im): 修复主壳初始化期间消息漏拉 / 缓冲回放失效 YunaiV 2026-04-26 23:32:55 +0800
  • 8a7991261f 🐛 fix(im): 主动断开 WS 后不再自动重连,同步复位 isConnected disconnect() 之前调用 socket.close() 是异步触发 onclose,回调里会 无条件走 reconnect,导致离开 IM 主壳后 3 秒又会在后台重新打开 WebSocket。 修复: - close 前先解绑 onclose / onerror handler,主动关闭路径不再走自动重连 - onclose 已被解绑后没人帮我们设 isConnected=false,disconnect 内手动复位, 避免 socket=null 但 isConnected=true 的状态不一致 YunaiV 2026-04-26 23:08:23 +0800
  • 1e02a40ec4 feat(im): 添加 IM 聊天模块的全屏容器组件,并添加相关 review 注释 YunaiV 2026-04-26 22:02:02 +0800
  • 9570f25cdc feat(im): 优化 ToolBar.vue 组件 YunaiV 2026-04-26 21:51:09 +0800
  • d37af6d959 feat(im): 优化 PagedScroller.vue 组件 YunaiV 2026-04-26 21:46:13 +0800
  • 802a10cf85 feat(im): 优化 ResizableAside.vue 组件 YunaiV 2026-04-26 21:35:27 +0800
  • a973406b2a feat(im): 优化 ContextMenu.vue 组件 YunaiV 2026-04-26 20:19:19 +0800
  • 43771b0f47 feat(im): 优化 EmojiPicker.vue 组件 YunaiV 2026-04-26 19:49:44 +0800
  • 20c6631e7a feat(im): 新增 UserInfoCard.vue YunaiV 2026-04-26 19:08:02 +0800
  • 9a4e79e4ef 🐛 fix(im): conversation.messages 入 IDB 前用 toRaw 解 Proxy,否则 structuredClone 抛 DataCloneError 静默丢消息 YunaiV 2026-04-26 17:57:50 +0800
  • f1d44c8267 feat(im): 优化 UserAvatar.vue 通用用户头像组件 YunaiV 2026-04-26 17:52:32 +0800
  • 969d8237ce feat(im): 增加 UserAvatar.vue 通用用户头像组件 YunaiV 2026-04-26 17:32:47 +0800
  • f929ebc184 feat(im): 增加 conversationStore.ts 未来的优化 todo; YunaiV 2026-04-26 16:13:58 +0800
  • 2c1ff59286 feat(im): 初始化 useMessageSender.ts YunaiV 2026-04-26 15:56:24 +0800
  • e573462cb7 feat(im): 增加 useMessagePuller 用于首次消息的拉取 YunaiV 2026-04-26 10:38:14 +0800
  • 8c1f17f5a6 🐛 fix(im): 私聊已读消费端卡 maxReadId + 上报 messageId 与后端对齐 handlePrivateReceipt 收到对方 RECEIPT 时丢弃了后端编码在 DTO id 字段 的 maxReadId,applyReadReceipt 把会话里所有 selfSend 未撤回消息一刀切 标 READ;回执在路上时刚发的消息会被误标已读。 - applyReadReceipt 的 markPrivateRead 改为 privateReadMaxId,按 id <= maxReadId 卡边界,超过 maxReadId 的自发消息保留原状态; - handlePrivateReceipt 透传 websocketMessage.id 作为 privateReadMaxId; - apiReadPrivateMessages 增加 messageId 形参,与后端新接口对齐; - websocketStore 私聊自动已读用刚到的消息 id;useMessageSender.readActive 把私聊 / 群聊的 maxMessageId 计算合并到调用前。 YunaiV 2026-04-26 09:46:09 +0800
  • a35698fc07 🐛 fix(im): 群聊离线拉取看不到撤回提示,pull 路径接入 recallMessage YunaiV 2026-04-26 00:28:43 +0800
  • 66514fc597 ♻️ refactor(im): conversationStore 存储改为 IndexedDB 按会话分桶 + 命名统一 YunaiV 2026-04-25 22:52:00 +0800
  • 2785e2bea6 feat(im): 重构优化 store 方案 YunaiV 2026-04-25 16:45:31 +0800
  • e30e30ea51 🐛 fix(im): 撤回信号错用 TIP_TEXT,应为 RECALL YunaiV 2026-04-25 11:42:34 +0800
  • 505b3b5953 feat(im): 重构部分老代码。 YunaiV 2026-04-24 22:55:58 +0800
  • a28694074e 🔧 chore(deps): 添加 localforage 依赖:https://localforage.docschina.org/ YunaiV 2026-04-24 22:12:54 +0800
  • d6f96a56a2 feat(im): 优化 ConversationItem.vue 逻辑 YunaiV 2026-04-24 21:54:20 +0800
  • 68d3ad10d4 feat(im): 优化 im 前端的工具类 YunaiV 2026-04-24 21:36:09 +0800
  • 5f16cd74e0 feat(im): 优化 im 前端的枚举类 YunaiV 2026-04-24 00:50:09 +0800
  • 6664afb851 ♻️ refactor(im): 重命名 IM 模块中的多个类和文件以简化结构 YunaiV 2026-04-23 20:38:27 +0800
  • 6d6515c06d ♻️ refactor(im): 用户查询接口迁移到 system/user - /api/im/user:移除 getSelfInfo/getUserListByName,改用 /system/user/get-simple、/system/user/list-by-nickname - AddFriendDialog:切换为 getSimpleUserListByNickname,去掉已废弃的 userName 展示 YunaiV 2026-04-23 01:36:45 +0800
  • 11495a64f5 fix(bpm):修复流程网关分支问题 guoanhao 2026-04-22 17:37:30 +0800
  • 76be404c69 🎨 style(Message): 修复铃铛对齐问题,调整样式为 flex-center YunaiV 2026-04-19 00:30:34 +0800
  • 9fb796194e feat(im): 前端的 IM 增加 Layout 整体布局 YunaiV 2026-04-19 00:30:07 +0800
  • 9e6dd4db55 首页默认通知 cxh16 2026-04-18 14:48:52 +0800
  • 377010b02c
    Pre Merge pull request !871 from zhulh/fix/code-0-bug zhulh 2026-04-18 05:29:52 +0000
  • 064b657294 (〃'▽'〃)_v2026_03_发布:新增 MES 制造执行系统,IoT 接入 Modbus 协议 v2026.03 YunaiV 2026-04-18 13:29:43 +0800
  • bc9c67ad3b (〃'▽'〃)_v2026_03_发布:新增 MES 制造执行系统,IoT 接入 Modbus 协议 YunaiV 2026-04-18 13:25:10 +0800
  • bf81e6f617 Merge branch 'feat/mes' of https://gitee.com/yudaocode/yudao-ui-admin-vue3 YunaiV 2026-04-18 13:23:29 +0800
  • 8e7d2e96d1
    Pre Merge pull request !872 from james008/trace-dev james008 2026-04-18 01:33:56 +0000
  • a839dd6fa5 feat(mes): 更新 MES 状态常量和相关枚举 YunaiV 2026-04-17 22:10:14 +0800
  • 1bd98e2f95 feat: 完成管理后台冗余菜单、路由及无用页面的清理 Trace 2026-04-17 21:54:12 +0800
  • 0a96738cfb feat(mes): 更新 MES 状态常量和相关枚举 YunaiV 2026-04-16 19:27:01 +0800
  • 378965d82f 🎨 style(mes): 优化模板格式和属性排列 YunaiV 2026-04-15 19:22:14 +0800
  • 05f43f91ab feat(mes): 添加计量单位名称到生产任务响应对象 YunaiV 2026-04-15 14:29:24 +0800
  • 51f798d64e 首页默认通知 cxh16 2026-04-14 15:23:22 +0800
  • c63a5f87a4 ♻️ refactor(mes): 重构 approveFeedback 方法,移除用户 ID 参数 YunaiV 2026-04-14 13:53:42 +0800
  • 76b2d5caf3 Merge branch 'feat/mes' of https://gitee.com/yudaocode/yudao-ui-admin-vue3 YunaiV 2026-04-13 22:42:48 +0800
  • d63d4eee27 feat:增加 iot 模块 YunaiV 2026-04-13 22:42:37 +0800
  • cd300bded7 ♻️ refactor(mes): 修改字段名称以提高代码可读性 YunaiV 2026-04-13 19:57:35 +0800
  • 7d419c4869 首页默认通知 cxh16 2026-04-13 17:19:48 +0800
  • 230b51fd25 修改默认系统租户 cxh16 2026-04-13 16:57:28 +0800
  • 2a94d5f6a9 修改系统标题 cxh16 2026-04-13 15:42:34 +0800