YunaiV
|
9a4e79e4ef
|
🐛 fix(im): conversation.messages 入 IDB 前用 toRaw 解 Proxy,否则 structuredClone 抛 DataCloneError 静默丢消息
|
2026-04-26 17:57:50 +08:00 |
YunaiV
|
f1d44c8267
|
✨ feat(im): 优化 UserAvatar.vue 通用用户头像组件
|
2026-04-26 17:52:32 +08:00 |
YunaiV
|
969d8237ce
|
✨ feat(im): 增加 UserAvatar.vue 通用用户头像组件
|
2026-04-26 17:32:47 +08:00 |
YunaiV
|
f929ebc184
|
✨ feat(im): 增加 conversationStore.ts 未来的优化 todo;
|
2026-04-26 16:13:58 +08:00 |
YunaiV
|
2c1ff59286
|
✨ feat(im): 初始化 useMessageSender.ts
|
2026-04-26 15:56:24 +08:00 |
YunaiV
|
e573462cb7
|
✨ feat(im): 增加 useMessagePuller 用于首次消息的拉取
|
2026-04-26 10:38:14 +08:00 |
YunaiV
|
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 计算合并到调用前。
|
2026-04-26 09:46:09 +08:00 |
YunaiV
|
a35698fc07
|
🐛 fix(im): 群聊离线拉取看不到撤回提示,pull 路径接入 recallMessage
pullByType 之前对 RECALL 信号一律 skip、只靠原消息 status=RECALL 走 OR 兜底渲染。
当 pull 的 minId 卡在原消息处、回拉只返回信号时,本地缓存里的老消息没人翻成
RECALL,会一直停在原态——配合后端群聊 mapper 过滤掉 status=RECALL 的原消息,群聊
离线撤回完全不可见。
改成 pull / WS 走同一套 dispatch:
- pullByType 信号转 conversationStore.recallMessage(),跟 WS 路径一致
- recallMessage 把 parseRecallMessageId 收敛进内部,第 3 个参数从
messageId: number 改成 recallSignalContent: string,4 个调用点都缩成一行
- MessageItem.isRecall 只判 type=RECALL,去掉 status=RECALL OR 分支
(conversationStore 里跳未读 / 跳已读那两处对 status 的判断是业务逻辑保留)
|
2026-04-26 00:28:43 +08:00 |
YunaiV
|
66514fc597
|
♻️ refactor(im): conversationStore 存储改为 IndexedDB 按会话分桶 + 命名统一
- 持久化迁到 localforage(IndexedDB),meta 索引与单会话 messages 分 key 存,消除写放大
- saveConversations 支持 不传 / 单个 / 数组 三种粒度;签名改为 sync void(fire-and-forget)
- 修复 sortConversations 仅刷 meta 不刷 messages 导致离线消息重启丢失的 bug
- 方法重命名:saveToStorage→saveConversations、updateMessageState→ackMessage、applyRecall→recallMessage、refreshConversations→sortConversations、removeLocalMessage→removeMessage、_removeMessagesStorage→removeConversationMessages
- 删除 dead field Conversation.lastReadCount;TIP_TIME clientMessageId 改用 uuid
|
2026-04-25 22:52:00 +08:00 |
YunaiV
|
2785e2bea6
|
✨ feat(im): 重构优化 store 方案
|
2026-04-25 16:45:31 +08:00 |
YunaiV
|
e30e30ea51
|
🐛 fix(im): 撤回信号错用 TIP_TEXT,应为 RECALL
|
2026-04-25 11:42:34 +08:00 |
YunaiV
|
505b3b5953
|
✨ feat(im): 重构部分老代码。
|
2026-04-24 22:55:58 +08:00 |
YunaiV
|
a28694074e
|
🔧 chore(deps): 添加 localforage 依赖:https://localforage.docschina.org/
|
2026-04-24 22:12:54 +08:00 |
YunaiV
|
d6f96a56a2
|
✨ feat(im): 优化 ConversationItem.vue 逻辑
|
2026-04-24 21:54:20 +08:00 |
YunaiV
|
68d3ad10d4
|
✨ feat(im): 优化 im 前端的工具类
|
2026-04-24 21:36:09 +08:00 |
YunaiV
|
5f16cd74e0
|
✨ feat(im): 优化 im 前端的枚举类
|
2026-04-24 00:50:09 +08:00 |
YunaiV
|
6664afb851
|
♻️ refactor(im): 重命名 IM 模块中的多个类和文件以简化结构
|
2026-04-23 20:38:27 +08:00 |
YunaiV
|
6d6515c06d
|
♻️ refactor(im): 用户查询接口迁移到 system/user
- /api/im/user:移除 getSelfInfo/getUserListByName,改用 /system/user/get-simple、/system/user/list-by-nickname
- AddFriendDialog:切换为 getSimpleUserListByNickname,去掉已废弃的 userName 展示
|
2026-04-23 01:36:45 +08:00 |
YunaiV
|
76be404c69
|
🎨 style(Message): 修复铃铛对齐问题,调整样式为 flex-center
|
2026-04-19 00:30:34 +08:00 |
YunaiV
|
9fb796194e
|
✨ feat(im): 前端的 IM 增加 Layout 整体布局
|
2026-04-19 00:30:07 +08:00 |
YunaiV
|
518851ce74
|
merge: 合并 master 分支到 im
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-11 09:38:25 +08:00 |
YunaiV
|
2cb3b5b492
|
feat(iot): IoT 产品和设备分页默认改为 12 条
|
2026-03-08 12:27:47 +08:00 |
芋道源码
|
f29a384904
|
!862 fix: 完成 review c153ff93 的所有 TODO 修复
Merge pull request !862 from puhui999/master-dev
|
2026-03-07 03:56:34 +00:00 |
芋道源码
|
d3f008eb33
|
!863 !854 feat:【iot】接入 modbus 协议,重构所有协议的配置
Merge pull request !863 from 芋道源码/feature/iot
|
2026-02-14 03:10:48 +00:00 |
芋道源码
|
bb10760137
|
!854 feat:【iot】modbus-tcp 协议接入 100%:完整实现,修复 todo
Merge pull request !854 from 芋道源码/feature/iot-modbus
|
2026-02-14 03:09:03 +00:00 |
YunaiV
|
ab8de6ea83
|
Merge branch 'master' of https://gitee.com/yudaocode/yudao-ui-admin-vue3 into feature/iot
|
2026-02-13 15:40:15 +08:00 |
YunaiV
|
deed7eaff2
|
feat(iot):Modbus 支持 Master/Slave 双模式,配置表单和详情按协议类型区分展示
|
2026-02-13 15:35:41 +08:00 |
puhui999
|
e54c2b3e7a
|
fix: 完成 review c153ff93 的所有 TODO 修复
|
2026-02-11 17:37:58 +08:00 |
puhui999
|
572c14a41a
|
fix: 完成 review c153ff93 的所有 TODO 修复
- AreaSelect.vue: 删除未使用的 handleTree 导入
- AreaSelect.vue: 使用 AreaLevelEnum 枚举类型替代硬编码数字
- IframeComponent.vue: 已使用全局 isUrl 方法
- useAreaSelectRule.ts: 恢复代码格式空行,使用枚举常量
- useIframeRule.ts: 恢复代码格式空行
|
2026-02-11 17:27:07 +08:00 |
YunaiV
|
155edc41a9
|
feat(iot):Modbus 支持 Master/Slave 双模式,配置表单和详情按协议类型区分展示
1. ProtocolTypeEnum 拆分:MODBUS_TCP → MODBUS_TCP_MASTER + MODBUS_TCP_SLAVE
2. Slave 模式新增 mode(工作模式)、frameFormat(帧格式)字段,使用字典管理
3. 配置表单和详情页按 Master/Slave 模式条件展示不同字段,表单校验规则动态适配
4. 新增 DICT_TYPE:IOT_MODBUS_MODE、IOT_MODBUS_FRAME_FORMAT
5. 修复设备卡片 deviceName 过长溢出问题,添加文本截断
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-08 23:33:10 +08:00 |
YunaiV
|
c153ff93c7
|
review:“新增 iframe 和省市区选择器组件”
|
2026-02-08 14:37:55 +08:00 |
芋道源码
|
c119040307
|
!861 feat(form-create): 新增 iframe 和省市区选择器组件
Merge pull request !861 from puhui999/master-dev
|
2026-02-08 06:32:21 +00:00 |
puhui999
|
99b1e6da2c
|
Merge remote-tracking branch 'yudao/master' into master-dev
|
2026-02-08 11:56:45 +08:00 |
puhui999
|
a62251f900
|
feat(form-create): 新增 iframe 和省市区选择器组件
- 新增 iframe 网页嵌入组件,支持 URL 配置和实时预览
- 新增省市区三级联动选择器组件
|
2026-02-08 11:56:18 +08:00 |
YunaiV
|
5f211558fb
|
Merge branch 'feature/iot-protocol' of https://gitee.com/yudaocode/yudao-ui-admin-vue3 into feature/iot-modbus
# Conflicts:
# src/views/iot/device/device/detail/index.vue
|
2026-02-07 21:24:36 +08:00 |
YunaiV
|
91fb07971e
|
fix(crm): 修复线索详情页转化状态按钮误显示,对应 https://t.zsxq.com/wq7ix
|
2026-02-07 21:07:31 +08:00 |
YunaiV
|
3aeb719ec2
|
fix(mall):OrderDetail detailData 为 null 的情况
|
2026-02-07 19:45:27 +08:00 |
YunaiV
|
1678bf6e57
|
fix: 忘记密码页面未开启验证码时,隐藏 Verify 组件,避免请求 captcha/get 接口
|
2026-02-07 16:42:23 +08:00 |
YunaiV
|
57a77b2ba9
|
feat(iot):【协议改造】移除 codecType,使用 protocolType 替代
|
2026-02-04 22:05:03 +08:00 |
YunaiV
|
04a6987211
|
(〃'▽'〃) v2026.01 发布:大大大大完善 vben5 的 antd、vben 版本的功能,新增 IoT 各种接入协议
|
2026-01-29 23:49:33 +08:00 |
YunaiV
|
0ee0065c6a
|
feat: update default selection settings for current user and department
|
2026-01-29 20:18:00 +08:00 |
芋道源码
|
a10d564f9b
|
!860 表单设计器 UserSelect/DeptSelect 支持默认选中当前用户/部门、修复商品 SKU 名称校验失败的问题
Merge pull request !860 from puhui999/master-dev
|
2026-01-29 12:13:04 +00:00 |
YunaiV
|
4c5825389e
|
feat(iot): refactor TimerConditionGroupConfig and PropertySelector for improved readability
|
2026-01-29 19:39:19 +08:00 |
puhui999
|
c656f87575
|
fix(mall): 修复商品 SKU 名称校验失败的问题
|
2026-01-28 11:06:59 +08:00 |
puhui999
|
7a7228aed8
|
feat(bpm): 表单设计器 UserSelect/DeptSelect 支持默认选中当前用户/部门
1. UserSelect 新增 defaultCurrentUser 配置,默认选中当前登录用户
2. DeptSelect 新增 defaultCurrentDept 配置,默认选中当前用户所属部门
3. DeptSelect 改用 el-tree-select 实现树形层级显示
4. 支持单选/多选模式,预设值优先级高于默认值
|
2026-01-27 19:03:10 +08:00 |
芋道源码
|
da969d3be7
|
!859 feat(iot):【场景联动】定时触发,增加条件组
Merge pull request !859 from puhui999/feature/iot
|
2026-01-25 13:39:46 +00:00 |
芋道源码
|
859d493513
|
!858 feat(iot):【网关设备:80%】动态注册的初步实现(已测试)
Merge pull request !858 from 芋道源码/feature/iot-sub
|
2026-01-25 10:52:34 +00:00 |
puhui999
|
38e9298fa6
|
feat(iot):【场景联动】定时触发,增加条件组
|
2026-01-25 17:41:47 +08:00 |
芋道源码
|
244f4efd0e
|
!857 解决登陆过期后加密接口数据二次加密问题
Merge pull request !857 from 倘若/master
|
2026-01-25 09:08:31 +00:00 |
YunaiV
|
2a0ce1fb66
|
feat(iot):【网关设备:80%】动态注册的初步实现(已测试)
|
2026-01-25 16:58:05 +08:00 |