diff --git a/apps/frontend/src/pages/admin/AdminOrderDetailPage.tsx b/apps/frontend/src/pages/admin/AdminOrderDetailPage.tsx index 61df3526..c9b377ed 100644 --- a/apps/frontend/src/pages/admin/AdminOrderDetailPage.tsx +++ b/apps/frontend/src/pages/admin/AdminOrderDetailPage.tsx @@ -147,6 +147,18 @@ export default function AdminOrderDetailPage() { }, ] + const allTasksCompleted = + detail.tasks.length > 0 && + detail.tasks.every( + (t) => + ['completed', 'redeemed', 'delivered', 'success'].includes(t.status) || + t.deliveryStatus === 'delivered', + ) + const isOrderFulfilled = detail.order.orderStatus === 'completed' || allTasksCompleted + const isOrderRefundedOrCancelled = + detail.order.payStatus === 'refunded' || detail.order.orderStatus === 'cancelled' + const canPauseOrClose = !isOrderFulfilled && !isOrderRefundedOrCancelled + return (
恢复启用 - ) : ( + ) : canPauseOrClose ? ( - )} - {detail.order.claimStatus !== 'closed' ? ( + ) : null} + {canPauseOrClose && detail.order.claimStatus !== 'closed' ? ( {orderId ? ( <> - {claimStatus !== 'paused' && ( + {canPauseOrClose && claimStatus !== 'paused' && (