修复链接 feifei 不展示

This commit is contained in:
yml2213
2026-07-09 18:57:52 +08:00
parent 82a763b313
commit 32eb442b72
2 changed files with 19 additions and 6 deletions
@@ -29,6 +29,7 @@ const STATUS_LABELS: Record<string, string> = {
disabled: '已停用',
dispatched_pending_return: '待退还号码',
expired: '已过期',
external: '外部链接',
failed: '失败',
invalid: '已作废',
link_generated: '已生成链接',
@@ -90,6 +91,7 @@ const STATUS_COLORS: Record<string, string> = {
customer_processing: 'blue',
delivered: 'green',
disabled: 'red',
external: 'cyan',
failed: 'red',
invalid: 'orange',
link_generated: 'cyan',
@@ -88,11 +88,13 @@ export default function AdminTaskDetailPage() {
const detail = query.data?.data
const canManageTaskLifecycle = hasAdminRole('operator')
const canCloseTasks = hasAdminRole('support')
const claimTokenStatus = String(detail?.claimToken?.status || '').trim()
const isExternalClaimLink = claimTokenStatus.toLowerCase() === 'external'
const claimUrl = useMemo(() => {
const tokenStatus = String(detail?.claimToken?.status || '').trim()
const taskStatus = String(detail?.task.status || '').trim()
if (tokenStatus !== 'active' || ['closed', 'expired'].includes(taskStatus)) {
if (!isUsableClaimLinkStatus(tokenStatus) || ['closed', 'expired'].includes(taskStatus)) {
return ''
}
@@ -100,8 +102,8 @@ export default function AdminTaskDetailPage() {
}, [detail?.claimToken?.claimUrl, detail?.claimToken?.status, detail?.task.status, lastClaimUrl])
const claimLinkInvalid = Boolean(
detail?.claimToken?.claimUrl &&
String(detail.claimToken.status || '').trim() &&
String(detail.claimToken.status || '').trim() !== 'active',
claimTokenStatus &&
!isUsableClaimLinkStatus(claimTokenStatus),
)
useEffect(() => {
@@ -383,9 +385,13 @@ export default function AdminTaskDetailPage() {
)}
<Space wrap>
<StatusTag value={resolvedDetail.claimToken.status} />
<Typography.Text type="secondary">
{formatAdminDateTime(resolvedDetail.claimToken.expiredAt)}
</Typography.Text>
{isExternalClaimLink ? (
<Typography.Text type="secondary"></Typography.Text>
) : (
<Typography.Text type="secondary">
{formatAdminDateTime(resolvedDetail.claimToken.expiredAt)}
</Typography.Text>
)}
<Button icon={<CopyOutlined />} disabled={!claimUrl} onClick={copyClaimUrl}>
</Button>
@@ -655,6 +661,11 @@ function TaskActionPanel({
)
}
function isUsableClaimLinkStatus(value: unknown) {
const normalized = String(value || '').trim().toLowerCase()
return normalized === 'active' || normalized === 'external'
}
function FulfillmentOverviewPanel({
detail,
claimUrl,