diff --git a/apps/frontend/src/pages/admin/AdminTaskDetailPage.tsx b/apps/frontend/src/pages/admin/AdminTaskDetailPage.tsx index 978472dc..4168067f 100644 --- a/apps/frontend/src/pages/admin/AdminTaskDetailPage.tsx +++ b/apps/frontend/src/pages/admin/AdminTaskDetailPage.tsx @@ -86,6 +86,24 @@ export default function AdminTaskDetailPage() { enabled: Boolean(taskId), }) const detail = query.data?.data + const orderId = detail?.order?.orderId ? String(detail.order.orderId) : '' + + const statusMutation = useMutation({ + mutationFn: (data: { status: 'active' | 'paused' | 'closed'; reason?: string }) => { + if (!orderId) throw new Error('当前任务无关联订单信息') + return updateAdminOrderClaimStatus(orderId, data) + }, + onSuccess: () => { + message.success('订单兑换状态已更新') + setStatusModalVisible(false) + setStatusReason('') + void query.refetch() + }, + onError: (err: unknown) => { + message.error(err instanceof Error ? err.message : '更新状态失败') + }, + }) + const canManageTaskLifecycle = hasAdminRole('operator') const canOperateIndustryVoucher = hasAdminRole('support') const canCloseTasks = hasAdminRole('support') @@ -241,7 +259,6 @@ export default function AdminTaskDetailPage() { ) } - const orderId = resolvedDetail.order?.orderId ? String(resolvedDetail.order.orderId) : '' const platformOrderId = resolvedDetail.order?.platformOrderId || resolvedDetail.task.platformOrderId || '' const h5ClaimUrl = platformOrderId @@ -250,22 +267,6 @@ export default function AdminTaskDetailPage() { const claimStatus = resolvedDetail.order?.claimStatus || 'active' const claimStatusReason = resolvedDetail.order?.claimStatusReason || '' - const statusMutation = useMutation({ - mutationFn: (data: { status: 'active' | 'paused' | 'closed'; reason?: string }) => { - if (!orderId) throw new Error('当前任务无关联订单信息') - return updateAdminOrderClaimStatus(orderId, data) - }, - onSuccess: () => { - message.success('订单兑换状态已更新') - setStatusModalVisible(false) - setStatusReason('') - void query.refetch() - }, - onError: (err: unknown) => { - message.error(err instanceof Error ? err.message : '更新状态失败') - }, - }) - const handleCopyH5Link = () => { if (!h5ClaimUrl) return navigator.clipboard