修复链接 feifei 不展示
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user