接单工单支持任务时限,超时自动判定失败并处置

This commit is contained in:
yml2213
2026-08-01 19:02:57 +08:00
parent 66193c5d59
commit 23ad60a1ef
18 changed files with 681 additions and 61 deletions
@@ -0,0 +1,34 @@
import { Tag } from 'antd'
import { useEffect, useState } from 'react'
export function DeadlineCountdown({
deadlineAt,
showExpired = false,
}: {
deadlineAt: string
showExpired?: boolean
}) {
const [now, setNow] = useState(() => Date.now())
useEffect(() => {
const timer = window.setInterval(() => setNow(Date.now()), 1000)
return () => window.clearInterval(timer)
}, [])
const remainingMs = new Date(deadlineAt).getTime() - now
if (remainingMs <= 0) {
return <Tag color="red"></Tag>
}
const totalSeconds = Math.floor(remainingMs / 1000)
const minutes = Math.floor(totalSeconds / 60)
const seconds = totalSeconds % 60
const label = minutes > 0 ? `${minutes}${seconds}` : `${seconds}`
const color = remainingMs < 10 * 60 * 1000 ? 'orange' : 'blue'
return <Tag color={color}> {label}</Tag>
}
export function formatTimeoutPolicyLabel(policy?: string) {
if (policy === 'cancel_release') return '超时取消退押金'
if (policy === 'cancel_deduct') return '超时取消扣押金'
return '超时退回大厅'
}