已取消工单在列表与详情展示取消原因来源操作人与时间
This commit is contained in:
@@ -114,6 +114,15 @@ export function mapWorkOrderSharingWorkers(shares: WorkOrderShareRow[]) {
|
||||
return [...workers.values()]
|
||||
}
|
||||
|
||||
/** 取消来源:由触发取消的事件类型推导,用于列表与详情展示。 */
|
||||
function resolveWorkOrderCancelSource(cancelEventType: string | null | undefined) {
|
||||
const eventType = String(cancelEventType || '').trim()
|
||||
if (eventType === 'cancelled_by_admin') return '后台撤单'
|
||||
if (eventType.startsWith('problem_')) return '问题单处置'
|
||||
if (eventType.startsWith('timeout_')) return '超时自动取消'
|
||||
return eventType || '未知来源'
|
||||
}
|
||||
|
||||
export function mapWorkOrderAdmin(workOrder: WorkOrderRow, shares?: WorkOrderShareRow[]) {
|
||||
const activeShareQuantity = Math.max(0, Number(workOrder.active_share_quantity || 0))
|
||||
const pendingShareCount = Math.max(0, Number(workOrder.pending_share_count || 0))
|
||||
@@ -232,6 +241,16 @@ export function mapWorkOrderAdmin(workOrder: WorkOrderRow, shares?: WorkOrderSha
|
||||
acceptance: mapAcceptanceForResponse(workOrder.acceptance_json),
|
||||
draftAcceptance: mapAcceptanceForResponse(workOrder.draft_acceptance_json),
|
||||
problemNote: workOrder.problem_note || '',
|
||||
cancel:
|
||||
workOrder.status === WORK_ORDER_STATUS.CANCELLED
|
||||
? {
|
||||
reason: String(workOrder.cancel_reason || ''),
|
||||
source: resolveWorkOrderCancelSource(workOrder.cancel_event_type),
|
||||
actorType: String(workOrder.cancel_actor_type || ''),
|
||||
actorName: String(workOrder.cancel_actor_id || ''),
|
||||
cancelledAt: workOrder.cancelled_at || null,
|
||||
}
|
||||
: null,
|
||||
worker: workOrder.assigned_worker_id
|
||||
? {
|
||||
workerId: Number(workOrder.assigned_worker_id),
|
||||
|
||||
Reference in New Issue
Block a user