yml2213
f4c405d51a
fix(worker): 打手端实时补丁不再误删"按工单号搜到的行",并同步分页总数
这是后台那个"搜工单号搜不到、必须刷新整页"在打手端的同源副本:
WorkerLayout 的 operation = event.operation === 'remove' || !matches ? 'remove' : 'upsert'
只要前端判"不匹配"就删行,而前端关键词匹配器**没有比对工单号**——
后端搜索表达式的第一项恰恰就是 work_order_no(还有 material_json 里更多前端不知道的字段)。
于是按工单号搜索时,该单一旦有实时变更,行就被从缓存删掉、列表变空。
修法与后台侧对齐:
1. 抽出 utils/worker-realtime-work-orders.ts(可单测、无运行时依赖),关键词匹配补上
workOrderNo,并改成三态判定——状态/分类等可证伪维度不符才删行;关键词能找到=match
(允许插入),找不到=unknown(不删不插,只就地更新)。
2. patchWorkerWorkOrderListEnvelope 增删行时同步 data.pagination.total,
修掉"列表空了、分页器还显示有 N 条"。
3. 大厅无限下拉只在第 1 页允许插入,其余页只就地更新。
验证:前端 86 项单测全绿(新增 6 项,覆盖"按工单号搜索+实时变更不得删行"、
unknown 只就地更新、删/插同步总数、无限下拉页边界)。
2026-10-01 13:48:05 +08:00
..
2026-10-01 12:35:59 +08:00
2026-09-17 10:57:57 +08:00
2026-09-17 11:22:59 +08:00
2026-09-21 12:04:30 +08:00
2026-10-01 12:17:00 +08:00
2026-09-16 20:39:52 +08:00
2026-09-17 13:01:59 +08:00
2026-09-21 14:23:00 +08:00
2026-09-21 12:04:30 +08:00
2026-09-13 11:14:16 +08:00
2026-09-16 21:02:50 +08:00
2026-08-21 12:39:24 +08:00
2026-09-21 15:48:23 +08:00
2026-08-30 17:32:34 +08:00
2026-08-21 12:29:19 +08:00
2026-08-20 16:19:44 +08:00
2026-08-28 21:36:54 +08:00
2026-10-01 13:48:05 +08:00
2026-08-16 17:27:12 +08:00