Commit Graph

5521 Commits (f4b2cc4569f2750c576123616bb987b545129701)

Author SHA1 Message Date
YunaiV f4b2cc4569 chore(ts): 为类型检查增加增量缓存
- ts:check 增加 --incremental 和 tsBuildInfoFile

- 缓存写入 node_modules/.cache/vue-tsc,避免污染仓库

- 热缓存耗时约 46.5s → 15.3s
2026-06-21 01:17:23 -07:00
YunaiV ba6ac7a420 fix(ts): 批量收敛类型问题并支持 Dialog loading
- Dialog 增加 loading prop,支付详情弹窗改用统一加载态
- 对齐支付/会员/商城等 API VO 类型,修复 dall3 尺寸入参转换
- 复用 VO/ReqVO 简化表单和查询参数类型
- 必填字段使用非空断言,减少过度防御
- 忽略 .playwright-cli 自动化测试产物

ts:check 478 → 252,无新增类型错误
2026-06-21 01:10:09 -07:00
YunaiV bc25430fa5 fix(ts): 低风险类型修复并修复预览交互问题
- formatDate 入参放宽为 dayjs.ConfigType,删除冗余 formatDateByConfig
- 多处 ref([]) 补精确数组类型(BPM/AI workflow/SMS log/DiyEditor 等)
- 路由参数/模板 index 显式 Number(),Upload 响应补局部类型
- LeaveCreateData 局部扩展 startUserSelectAssignees,不污染共享 VO
- 修复 mall 订单详情 formatDate.deliveryTime typo(发货时间行此前不显示)
- 修复 FloatingActionButton 缺失 handleActive,预览态点击仅收起面板

ts:check 542 → 478,无新增类型错误
2026-06-20 21:46:59 -07:00
YunaiV 3f779091be fix(ts): 修复 BPMN 设计器类型错误
- 设计器/预览补 DOM 空值保护与局部 service 类型(canvas/elementRegistry)
- UserTaskCustomConfig/ElementForm/ElementMultiInstance 等补 ref/数组/element 类型
- ProcessListener/Expression Dialog 补声明实际已 emit 的 select 事件
- UserTask 删除 return 后不可达旧代码
- ElementMultiInstance:loopCharacteristics 按需写入,不影响 ApproveMethod 扩展保存
- 运行时:keyboard 配置 { bindTo: document } → { bind: true },适配 diagram-js 15
2026-06-20 19:43:55 -07:00
YunaiV cb9400e93d fix(ts): 批量精确补全 CRM/ERP/MES 表单字段类型
- 各业务域表单状态按需标注 number/string | undefined,不使用 Partial,不改共享 VO
- FollowUpRecordForm 补全模板已绑定但缺失的字段
- RoleAssignMenuForm 修正 reactive 误用 .value,恢复菜单加载和重置逻辑
- BPMN 设计器组件保留不动

ts:check 748 → 590,无新增类型错误
2026-06-20 11:40:07 -07:00
YunaiV 9c95bebc26 fix(ts): 精确补全 Mall 表单字段类型,修复 TS2322
- 表单状态字段按需标注 number/string | undefined(不使用 Partial,不改共享 VO)
- UploadImgs 用 computed 兜底 [],避免传入 undefined
- spu 路由 categoryId 从 query 读取转 Number
- 必填字符串字段用 || '' 收口;skuData 改 ref<Sku>() 并由模板 v-if 兜底

ts:check 768 → 748,无新增类型错误
2026-06-20 10:46:50 -07:00
芋道源码 e566d9f60a
!885 Merge remote-tracking branch 'origin/master' into master-bpm-bug-fix
Merge pull request !885 from Jason/master-bpm-bug-fix
2026-06-20 17:44:33 +00:00
YunaiV e58fe91a29 fix(ts): 修复 delete/联合类型/ECharts 等低风险类型错误
- delete 操作符改为解构 rest(afterSale/UserAftersale/OrderUpdatePrice 提交参数)
- v-for 索引、createTime 等联合类型用 Number() 收敛
- ECharts axisLabel.textStyle → axisLabel.color(顺带让标签颜色真正生效)
- AlipayChannelForm 证书上传抽取 readCertFile 并补 UploadRequestHandler 类型
- ExpressForm reset 对齐 DeliveryExpressVO(移除 picUrl、补 code/logo/sort)
ts:check 795 → 768,无新增类型错误
2026-06-20 10:25:11 -07:00
YunaiV 0970806dca fix(ts): 补全音乐播放器进度交互并修复低风险类型错误
- 音乐列表改用 typed provide/inject + MusicSong,audioBar 接真实 audio 状态(进度/时长/seek/换源重载)
- 修复 SocialLogin 验证码因布尔误判而从不显示
- getBoolDictOptions 返回类型收窄为 boolean,:key 统一 String()
- CRM/售后 tab.paneName 判空 + String() 后写入查询参数
- demo03 子表入参字段名对齐接口(demo03courses/demo03grade)等单点修复

ts:check 829 → 795,无新增类型错误
2026-06-20 09:56:29 -07:00
YunaiV a57df0b2de fix(ts): 修复树表分页遗留与搜索失效,清理低风险类型错误
- 移除 erp 产品分类 / demo02 树表残留的 Pagination(/list + handleTree 不应分页)
- list API 增加可选 params 并转发,修复搜索条件被静默丢弃
- 修复 el-option value、coupon formatter、导入后缀、事件参数等低风险类型问题

ts:check 855 → 829,无新增类型错误
2026-06-20 09:08:05 -07:00
jason 2c4b6a65c8 Merge remote-tracking branch 'origin/master' into master-bpm-bug-fix 2026-06-20 23:56:36 +08:00
jason 950850529d fix: [bpm] simple 设计器导入问题修复 2026-06-20 23:38:05 +08:00
YunaiV 63dfc5e2c3 refactor(ts): 清理未使用代码并修复低风险类型错误
- 移除未使用的 import/变量/参数及死代码(TS6133/6192/6196)
- Element Plus size="mini" → "small"
- 补充 DICT_TYPE.PAY_TRANSFER_TYPE
- RTC 媒体元素改用 callback ref,卸载时清理 srcObject

ts:check 错误 1003 → 855,无新增类型错误
2026-06-20 08:29:55 -07:00
jason 4aba1f9ddb Merge remote-tracking branch 'origin/master' into master-bpm-bug-fix 2026-06-20 22:22:50 +08:00
jason 026f7e9b10 fix: [bpm] 并行分支后的审批人自选问题修复,https://t.zsxq.com/daxv1 2026-06-20 22:22:16 +08:00
YunaiV 18ed1cdfed style: 使用 Prettier 格式化源码 2026-06-20 07:01:34 -07:00
YunaiV 3208a76868 chore(lint): 调整 lint 配置并修复规则问题 2026-06-20 07:01:20 -07:00
jason e55613edc6 fix :[bpm] 超时时间为天时格式问题修复 2026-06-20 21:57:40 +08:00
YunaiV 2ea2d9b18f perf(build): 继续优化构建和 lint 执行效率
- 关闭构建 gzip size 统计并调整 chunk 警告阈值
- 移除 Vite dev/build 链路中的 ESLint 和 progress 插件
- 删除未使用的 legacy、terser、ejs、eslint、progress 构建依赖
- 为 ESLint、Stylelint、Prettier 增加缓存脚本
- 新增 lint-staged 配置,仅处理变更文件

perf(lint): 将 ESLint 热缓存耗时从约 16.3s 降到约 1.3s
2026-06-20 04:57:48 -07:00
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