Commit Graph

5502 Commits (3d37515cfc3ae5e252b74b6a26246c34b97be185)

Author SHA1 Message Date
YunaiV 3d37515cfc perf(build): 将生产构建从约 41.6s 优化到约 21.6s
- 使用 oxc 替换 terser 作为生产压缩器
- 生产构建跳过 ESLint、progress 和 auto d.ts 生成
- gzip/brotli 产物改为通过 VITE_COMPRESS 按需生成
- 移除无用的 EJS 和 top-level-await 构建插件
- 删除 vite-plugin-top-level-await 依赖
2026-06-20 04:31:53 -07:00
芋道源码 fb94d37f5f
!883 feat(im): 配置项增加IM即时通讯图标显示与隐藏
Merge pull request !883 from 梧桐听雨/master
2026-06-20 10:50:36 +00:00
YunaiV fe69fd7d94 fix: 移除未使用的 vue i18n 插件依赖
在移除 Vite 插件使用后,同步删除 @intlify/unplugin-vue-i18n。
保持 package.json 与 pnpm-lock.yaml 一致,避免继续保留可能触发
vue-i18n optimizer 问题的 esm-bundler alias 依赖路径。
2026-06-20 03:31:38 -07:00
芋道源码 774a9f24fc
Merge pull request #231 from DevDengChao/fix/vue-i18n-dep-optimizer
fix: remove @intlify/unplugin-vue-i18n to resolve init_runtime_dom_esm_bundler ReferenceError
2026-06-20 03:06:05 -07:00
YunaiV b0dcc7c840 feat(im): 优化免打扰会话未读展示
- 免打扰会话保留头像小红点提示
- 会话预览行展示免打扰未读条数
- 总未读统计继续排除免打扰会话
- 同步 Vue3 + Vben 三端会话项展示
2026-06-19 18:29:31 -07:00
YunaiV a5299ef2e8 fix(im):修复已读补上报字段与群通话竞态
- 将会话已上报读位置字段改为 reportedReadMessageId,避免旧 readMessageId 本地缓存污染跳过判断
- read API 跳过逻辑继续基于已上报读位置,失败后可重新进入会话补上报
- RTC_CALL_END 按 room 移除群通话胶囊,避免旧房间结束事件误删新房间通话
- participantsLoaded 仅在同 room 下继承,避免新房间误跳过参与者补齐
2026-06-19 11:16:42 -07:00
YunaiV b6e13c59c7 feat(im):优化已读上报补偿与群通话探测缓存
- 会话新增 readMessageId,记录已上报到服务端的最大已读消息编号
- readActive 与 WebSocket 自动已读改为基于服务端已上报读位置判断是否跳过接口
- read 接口成功后同步 readMessageId,失败时保留本端已读体验并允许后续重新进入补上报
- 拉取服务端 read 进度时同步更新会话 readMessageId,同时保持本地读位置单调合并
- 群信息新增 activeCallLoaded / activeCallExpired,首登与重连时失效群通话探测缓存
- 群通话胶囊在本地无通话且探测过期时懒加载 getActiveCall,避免离线错过通话后无法发现
- 群通话写入或移除时标记探测已加载,并避免通话探测状态写入 IndexedDB
- 为 IndexedDB DO 类型补充存储结构注释
2026-06-19 11:05:06 -07:00
YunaiV 2172415cad feat(im):优化已读上报、群详情缓存与 RTC 通话状态
- 已读上报增加本地读位置覆盖判断,避免切换会话和当前会话自动已读时重复调用 read 接口
- 标记会话已读时同步推进本地 read 游标并写入 IndexedDB,接口失败仅记录日志
- 缓存私聊对方 maxReadMessageId,并在状态补拉、回执更新和退出 IM 时维护缓存
- 增加群详情 infoLoaded 内存标记,减少切群时重复拉取群详情,手动刷新和关键通知仍强制刷新
- 同步 GROUP_INFO_UPDATE 的 joinApproval,避免群审批配置在前端缓存中陈旧
- 优化群通话胶囊条状态,记录 participantsLoaded,按需补齐参与者并在通话无人时移除胶囊
- RTC_CALL_START 生成群通话最小胶囊条,后续由参与者事件和 getActiveCall 补齐
- 退出 IM 时清理 RTC 状态和群通话缓存
- Vben antd/antd-next 调整媒体元素为函数 ref,修复 MediaStream 与元素挂载时序问题
- 修复 Vben 消息历史弹窗回调类型标注
2026-06-19 10:05:37 -07:00
YunaiV dcafe6efdc fix(im): 将频道消息的 pull 改成 pullChannelMessageList 2026-06-18 19:58:41 -07:00
YunaiV 61c9e1acf2 fix(im): 修复群备注首屏展示和聊天列表名称覆盖
- 后端群 VO 返回当前用户维度的 groupRemark 和 silent
- 群列表构建时通过成员关系回填个人群设置,并继续仅对有效成员回填置顶消息
- Vue3 群列表同步时以接口返回的个人群设置为准,只保留成员缓存
- 会话名写入入口统一使用 getGroupDisplayName,避免群备注被原群名覆盖
- 空群头像且成员未加载时异步预拉群成员,用于合成群头像
- 启用 IM Maven 模块和 yudao-server 对 IM 模块的依赖
2026-06-18 08:59:04 -07:00
YunaiV ab2fa4e6b8 fix(im):群昵称修改改为静默同步
- 后端将 GROUP_MEMBER_NICKNAME_UPDATE 改为非持久化事件,避免写入群聊历史消息
- 保留群昵称变更的 WebSocket 在线同步,继续更新成员 displayUserName
- Vue3 聊天侧栏从当前群成员的 displayUserName 回填「我在本群的昵称」
- Vue3 WebSocket 收到 GROUP_MEMBER_NICKNAME_UPDATE 时只同步 groupStore,不再插入消息列表
- 补充后端单测,覆盖群昵称变更事件不入库但仍推送
2026-06-18 06:57:05 -07:00
YunaiV fc7cd7bc07 fix(home): 统一首页项目卡片底部对齐
- 使用 UnoCSS 调整项目卡片等高布局
- 将项目描述和日期贴到底部,避免短内容卡片提前显示
- 限制长文本换行并保持日期不换行
2026-06-17 17:46:56 -07:00
YunaiV e5bba07dec fix(im): 补回录音格式探测和 IM 初始化门控
- 录音前按浏览器能力选择 MIME 类型,并按实际格式生成语音文件后缀
- 频道消息发送表单改用 UserSelectV2 多选接收人
- IM 外层壳完成本地库和缓存恢复后再挂载子路由
2026-06-17 19:51:59 +08:00
芋道源码 68c5f3fc4b
!884 Merge remote-tracking branch 'origin/master'
Merge pull request !884 from 芋道源码/master
2026-06-17 08:32:32 +00:00
YunaiV 07c8f143ea fix(im): 修复重新登录会话未读闪烁
- 新增会话读位置本地存储,独立维护 conversationReads
- 启动时先恢复本地读位置,并在会话列表渲染前修正未读状态
- 消息入库时基于读位置过滤已读历史消息,避免重新累计未读
- READ 同步与主动已读统一走 conversationStore,保证读位置单调推进
- 兼容旧会话 readMessageId 数据迁移
2026-06-17 13:30:16 +08:00
YunaiV 8ba76813ae fix(im): 收敛离线拉取的实时副作用
- 离线 pull 只还原历史好友、群聊事件气泡,不再重放实时通知副作用
- 好友详情请求增加 in-flight 去重,有效好友已存在时跳过重复拉取
- 修复软删好友重新添加时被本地缓存误跳过的问题
- 群创建通知只拉群详情,群成员改为进入会话后懒加载
- 避免群基础信息缺失或退群时兜底拉取整群成员
2026-06-17 09:20:29 +08:00
YunaiV ddafacf64d fix(im): 修复历史退群群未读和成员加载问题
- 已读上报使用会话末条消息编号兜底
- 历史退群群不再请求群成员列表
- 群聊 read 放开当前成员校验,保留可见性校验
- Vben 群详情补齐 joinStatus
- 补充退群群已读边界测试
2026-06-17 01:38:52 +08:00
YunaiV cb625d11bb fix(im): 修复点击未读会话后重新登录未读回潮
点击会话时,消息列表可能尚未加载完成,导致已读上报只能从空列表算出 messageId = 0,并跳过服务端已读接口。此时本地未读已清零,但服务端读位置未推进,重新登录后会按服务端状态恢复未读。

已读上报时改为取已加载消息最大编号和会话末条服务端消息编号的较大值,确保消息列表尚未加载时也能使用 lastMessageId 推进服务端读位置。
2026-06-17 00:48:44 +08:00
YunaiV 4879c4705f refactor: 扁平化 IM WebSocket 通知推送 API
- 将 WebSocket 推送入口统一为 userId/userIds + conversationType + contentType + payload
- 移除业务侧 ImNotificationWebSocketDTO 构造和无会话专用发送入口
- 收敛私聊、群聊、频道、好友、加群申请、RTC 通知调用路径
- 精简 ImNotificationWebSocketDTO,仅保留统一外壳字段
- 保留群消息 payload 的 receiptStatus、readCount、receiverUserIds
- 更新相关单元测试,覆盖群消息通知 payload 字段
2026-06-16 11:38:56 +08:00
liguangni 37e964dc91 feat(im): 配置项增加IM即时通讯图标显示与隐藏 2026-06-16 09:12:34 +08:00
DevDengChao 9552a3cd2e fix: remove @intlify/unplugin-vue-i18n to resolve ReferenceError
The plugin forces vue-i18n to use esm-bundler.js entry via resolve alias,
which contains esbuild/rolldown internal module init function references
(init_runtime_dom_esm_bundler, etc.). When the bundler splits code into
chunks, these cross-chunk references become orphaned, causing ReferenceError.

Removing the plugin lets vue-i18n use its standard .mjs entry, which
does not have these problematic references. Locale messages are then
compiled at runtime instead of build time, but functionality is unchanged.

Fixes #230
See https://github.com/rolldown/rolldown/issues/9515
2026-06-15 23:04:13 +08:00
YunaiV 2685bc357f feat(im): 增强消息拉取与状态补偿可靠性
- 新增会话读位置持久化接口与前端同步逻辑
- 增加好友、好友申请、加群申请的增量拉取补偿
- 统一前端 pull 编排,增加回扫窗口、落库等待和账号切换守卫
- 调整群成员为按群懒加载缓存,并移除全局成员增量链路
- 修复消息落库、读位置补偿、READ 事件乱序下的未读状态一致性
- 完善群申请红点快照刷新和管理员角色变化补偿
- 更新消息存储设计与修复记录文档
2026-06-15 08:26:32 +08:00
YunaiV cf85fd4c86 feat(im): 统一消息读位置和回执状态模型
- 新增 im_conversation_read 会话读位置表,并补充消息存储推拉相关索引
- 群消息固化 receiver_user_ids 快照,按可见成员快照拉取和统计回执
- 统一消息 status 为 NORMAL/RECALL,新增私聊 receipt_status 并复用统一回执状态
- 前端改用 receiptStatus 展示私聊已读、群回执和频道已读态
- 补齐私聊、群聊、频道 WebSocket 已读同步和离线补偿逻辑
- 更新 IM 消息状态、回执状态字典和管理后台展示
- 调整相关单测和测试建表脚本
2026-06-14 09:34:16 +08:00
YunaiV 9b416c722c Merge remote-tracking branch 'origin/master' 2026-06-14 02:48:19 +08:00
YunaiV 44136d310b feat(bpm): 支持审批任务附件上传与展示
- 审批通过、审批拒绝弹窗新增附件/图片上传
- 审批提交时携带 attachments 字段
- 审批完成或关闭弹窗后清理附件表单状态
- 审批流时间线支持展示审批附件
- 图片附件支持预览,非图片附件支持链接打开
- 统一附件上传目录、文件类型白名单和 5MB 大小限制
- ApprovalTaskInfo 增加 attachments 字段
2026-06-14 02:48:10 +08:00
YunaiV 8c796950f9 feat: 完善 IM 群历史消息拉取与历史群前端门控
- 后端群列表返回历史群成员状态 joinStatus,用于区分当前群和历史退群群
- 群消息拉取支持基于 receiver_user_ids 快照过滤可见消息
- 补充群消息 pull、群成员候选、私聊 pull 相关索引与 SQL 脚本
- 前端接入 joinStatus,并封装历史退群群判断
- 历史退群群禁发、隐藏群操作入口,并从通讯录、转发、推荐名片候选中排除
- 保留历史群会话展示能力,用于查看退群前历史消息
2026-06-14 02:01:09 +08:00
YunaiV 8b2dcc2b99 Merge remote-tracking branch 'origin/master' 2026-06-14 01:24:00 +08:00
YunaiV e61581eef2 fix(vite): 使用相对路径注入 SCSS 变量
对应知识星球问题:https://wx.zsxq.com/group/88858522214142/topic/82255281581554842

将 variables.scss 的注入路径从项目绝对路径改为相对当前 SCSS 文件的路径,避免 Windows 中文目录下 Sass 解析 @use 失败。
2026-06-14 01:23:54 +08:00
YunaiV 61c71b9a0e feat(infra): 增加定时任务同步入口
- 为 vue3 同步任务按钮补充 infra:job:create 权限
- 为 vben antd、antdv-next、ele 增加 syncJob API
- 为 vben 定时任务列表增加同步任务按钮和确认/loading 流程
2026-06-14 01:21:36 +08:00
YunaiV 067c99aec8 Merge branch 'dev' of https://github.com/yudaocode/yudao-ui-admin-vue3
# Conflicts:
#	src/views/bpm/model/index_new.vue
2026-06-14 01:11:15 +08:00
芋道源码 827665dd50
Merge pull request #229 from HmEJ/patch-1
feat(infra): 定时任务添加同步按钮
2026-06-14 01:06:25 +08:00
YunaiV 17428e9867 fix(mes): 修复 SN 码查看条码缺少 bizType
- 新增 SN 码条码业务类型与配置
- 支持按 SN 明细查询对应条码
- 抽离 SN 码明细弹窗组件
- 同步 vben antd/ele 的条码入口

Refs: https://t.zsxq.com/1YCqD
2026-06-13 18:51:45 +08:00
YunaiV 05d6196780 fix(vue3): 修复混合布局顶级菜单点击失效
rootOnly 顶部菜单改为优先查找可见根路由,避免命中 remaining.ts 中同 path 的隐藏静态父路由。

修复混合垂直、混合双列布局下支付管理、会员中心、CRM、MES 等顶级菜单点击无反应的问题。
2026-06-12 21:23:58 +08:00
YunaiV 74aaa6605e feat(layout): 对齐 Vben 5 布局与菜单路由行为
- 补齐六种 Vben 布局模式及设置面板入口
- 支持顶部根菜单、侧边 split 菜单、混合布局与双列菜单联动
- 支持菜单路由 query/hash/params、动态路径与登录重定向保参
- 外链路由唯一化,并支持 iframe 外链页面
- 调整设置入口、面包屑与折叠按钮展示逻辑
- 修复水平菜单更多弹层,仅展示溢出根菜单并避免原生弹层重复
- 新增布局路由与交互自测脚本
2026-06-12 15:11:13 +08:00
GGbond 7ea5cf5589
feat(infra): 定时任务添加同步按钮 2026-06-11 14:56:30 +08:00
YunaiV 394a3d075a feat(bpm): 支持流程打印渲染业务表单
- 在 vue3、vben antd、vben ele 打印弹窗中动态加载业务表单组件
- 未启用自定义打印模板且流程表单字段为空时,使用 formCustomViewPath 渲染业务详情
- 业务表单独立于打印表格渲染,避免表格单元格内嵌页面导致布局和分页问题
- 保留 readonly、print-mode 作为业务详情组件打印态适配约定
2026-06-11 01:21:56 +08:00
YunaiV caa6fa9be3 fix: 修复头像裁剪容器高度异常
- 穿透设置 cropperjs 动态插入的 cropper-canvas 高度
- 解决头像上传裁剪区域只显示 100px 的问题
2026-06-07 18:29:02 +08:00
YunaiV 849f33c5a1 Merge remote-tracking branch 'origin/master' 2026-06-07 18:10:32 +08:00
YunaiV a08bdab7eb fix: 修复 ContentWrap 搜索栏异常滚动条
- 覆盖 Element Plus 新版 el-card body 默认 overflow:auto
- 避免搜索栏 ContentWrap 出现多余内部滚动条
2026-06-07 18:10:22 +08:00
芋道源码 5f5702ab17
!881 fix: 修复 IM 用户项 API 引用路径大小写错误
Merge pull request !881 from 久我山八重很不高兴w/master
2026-06-07 06:22:59 +00:00
芋道源码 70f683fda2
!882 fix: 修复场景联动列表页最近触发未能正确显示最后触发时间
Merge pull request !882 from 熊猫大侠/master-iotscene
2026-06-07 06:21:46 +00:00
YunaiV a4f8760415 refactor(mes): 移除冗余农历插件依赖
- 移除节假日页面未使用的 dayjs-plugin-lunar 扩展
- 统一使用 tyme4ts 计算农历、节日和节气信息
- 清理 package.json 和 pnpm-lock.yaml 中的冗余依赖
2026-06-07 01:46:01 +08:00
YunaiV 9bcffb8b38 fix(router): 修复父子同名路由导致子菜单丢失
- 收窄同名子路由折叠条件
- 仅在父级只有一个同名默认页时折叠
- 修复商城装修下装修模板菜单不显示的问题
2026-06-07 01:30:47 +08:00
YunaiV 8f24a79444 Merge remote-tracking branch 'origin/master' 2026-06-06 23:40:27 +08:00
YunaiV 0e46f09779 fix(mall): 修复首页账户充值金额单位显示错误
- 首页运营数据的账户充值金额从分转换为元后展示
- 同步修复 Vue3 与 Vben 的 antd、ele、antdv-next 三端
2026-06-06 23:40:11 +08:00
panda 69cd0b7875 fix: 修复场景联动列表页最近触发未能正确显示最后触发时间 2026-06-02 11:26:19 +08:00
久我山八重很不高兴w ba5c378a00
update src/views/im/manager/face/userItem/index.vue.
Signed-off-by: 久我山八重很不高兴w <479067860@qq.com>
2026-06-01 14:00:10 +00:00
YunaiV d1cb99c74a feat(im):增加 im 的功能说明 2026-06-01 08:16:37 +08:00
YunaiV b46b1647eb feat(im):合并 im 最新版本到 master 分支 2026-05-31 22:56:55 +08:00
YunaiV 2f7ec5b78f Merge branch 'im' of https://gitee.com/yudaocode/yudao-ui-admin-vue3
# Conflicts:
#	package.json
#	pnpm-lock.yaml
#	src/api/system/user/index.ts
2026-05-31 22:40:16 +08:00