fix:优化再拼一次bug,优化打手端移动端拼单列表显示
This commit is contained in:
@@ -36,6 +36,7 @@ import {
|
||||
pickWorkerRepresentativeShare,
|
||||
resolveWorkerOrderStatusTabs,
|
||||
resolveWorkerPermissions,
|
||||
stripWorkerPersonalShareFields,
|
||||
} from '../worker-platform/mappers.js'
|
||||
import { invalidateWorkerMyOrderCaches } from '../worker-platform/worker-my-order-cache.js'
|
||||
|
||||
@@ -347,21 +348,27 @@ async function publishWorkOrderSnapshots(input: {
|
||||
Number(workOrder.sharing_total_quantity || 1),
|
||||
joinedQuantity,
|
||||
)
|
||||
publishRealtimeEvent({
|
||||
type: 'work_order.changed',
|
||||
entityId: workOrderId,
|
||||
scopes: ['worker_hall'],
|
||||
operation: hallVisible ? 'upsert' : 'remove',
|
||||
data: hallVisible
|
||||
? mapWorkOrderForHall(
|
||||
// 大厅广播是「所有打手通用」的快照:myShare/myShares 是每个打手自己的份额,
|
||||
// 必须整键剔除,不能带 null/[] 过去。前端补丁对广播行做浅合并,带空值的
|
||||
// 个人字段会把刚拼单成功写进缓存的份额冲掉,按钮从「再拼一次」变回「拼单」。
|
||||
const hallSnapshot = hallVisible
|
||||
? stripWorkerPersonalShareFields(
|
||||
mapWorkOrderForHall(
|
||||
workOrder,
|
||||
{ depositFreeAmount: 0 },
|
||||
{
|
||||
// 广播无法按打手等级过滤可见延迟,携带入厅时间由客户端按各自延迟推迟展示。
|
||||
sharingProgress: { joinedQuantity, pendingSubmissionCount },
|
||||
},
|
||||
)
|
||||
: { workOrderId },
|
||||
),
|
||||
)
|
||||
: null
|
||||
publishRealtimeEvent({
|
||||
type: 'work_order.changed',
|
||||
entityId: workOrderId,
|
||||
scopes: ['worker_hall'],
|
||||
operation: hallVisible ? 'upsert' : 'remove',
|
||||
data: hallSnapshot || { workOrderId },
|
||||
broadcastWorkers: true,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user