YunaiV
b3f916639a
fix(mall): 调整 Banner API 到 promotion 目录
2026-06-23 04:39:42 -07:00
YunaiV
2979bd99c1
feat(mall): 商品 tab 计数跟随筛选条件
...
getTabsCount 传入 queryParams,使 tab 数量与列表筛选口径一致;首页统计卡片仍用无参版(全局总数)。
2026-06-22 09:16:43 -07:00
YunaiV
8b2b93c92c
docs(ai): 修正 Midjourney base64Array 字段注释
...
将错误的 size 注释改为“参考图 base64 列表”,与字段语义一致。
2026-06-21 21:24:25 -07:00
YunaiV
1072541927
fix(ai): 会话 createTime 按契约必填
...
- ChatConversationVO.createTime 改为必填字段
- 排序和分组时间计算去掉 Number(... || 0) 兜底
- 避免用 0 掩盖异常响应数据
ts:check 保持 0
2026-06-21 08:51:21 -07:00
YunaiV
69444994ad
fix(ts): 收尾 IOT 物模型类型,ts:check 清零
...
- 去掉 ThingModelProperty/Event/Service 重复空接口,dataSpecs 建为通用联合类型
- dataSpecsList 支持结构体/枚举/布尔项,补齐枚举项 identifier/accessMode
- 物模型表单编辑态用类型断言;DataDefinition/ThingModelProperty 对动态 dataSpecs 安全访问
- 场景规则动态字段改用 Object.assign,规避 keyof 写入被推成 never
Co-Authored-By: Codex <codex@openai.com>
ts:check 26 → 0
2026-06-21 07:06:20 -07:00
YunaiV
983ac71559
fix(ts): 补全 ERP 订单 VO 并收敛 items 类型
...
- PurchaseOrderVO/SaleOrderVO 补齐详情/表单实际字段,新增 PurchaseOrderItemVO/SaleOrderItemVO
- 修正采购 VO 错字段:customerId→supplierId、outCount→inCount
- 采购/销售订单及入库/出库/退货表单 items 从 never[] 收敛到对应 item VO
- 订单选择弹窗选中行明确类型,提交用 !(对应按钮未选禁用约束)
- 财务付款/收款补 item 金额类型;价格计算对空值做 ?? 0
Co-Authored-By: Codex <codex@openai.com>
ts:check 85 → 26,ERP 错误清零,无新增类型错误
2026-06-21 06:32:17 -07:00
YunaiV
361f4d8d15
fix(ts): 收敛 CRM/BPM/IOT 局部类型
...
- CRM 商机状态 VO 合并:statuses 改为 BusinessStatusVO[],defaultStatus 改为 endStatus
- BPM form-create 对齐 v-model:api,用 @form-create/element-ui 的 Api 类型替代 ApiAttrs 并移除 @ts-ignore
- IOT OTA 任务 status 改可选、deviceScope 保持必填,详情页去掉假默认值
- 修复 SpuSelect expandRowKeys 类型,补 CRM 统计表格类型,移除 UserSignList 冗余 nickname 筛选
- 集合对比清理 vue-tsc 增量缓存后确认 0 新增错误
ts:check 133 → 85,无新增类型错误
2026-06-21 05:52:14 -07:00
YunaiV
08abd54ca0
fix(ts): 收敛局部类型并删除 XButton
...
- 删除 XButton/XTextButton,调用点改回 el-button
- ContextMenu 收窄 trigger,移除 Element Plus 不支持的 focus
- RewardActivityVO 三个商品范围数组改必填,表单创建/加载/重置均初始化为 []
- SpuShowcase 恢复直接 v-model,移除 computed 中转
- MES、Demo03、Codegen 等 VO 对齐表单场景,减少局部 Omit/unknown 断言
- MP 补 SimpleTagVO,修复用户标签 never[] 问题
- Redis 图表 option 在声明处定型,模板去除 EChartsOption cast
- 修复 member 统计页 fenToYuan 漏导入
ts:check 252 → 133,无新增类型错误
2026-06-21 04:44:53 -07:00
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