diff --git a/apps/frontend/src/pages/admin/AdminOrderDetailPage.tsx b/apps/frontend/src/pages/admin/AdminOrderDetailPage.tsx
index c9b377ed..d9b33543 100644
--- a/apps/frontend/src/pages/admin/AdminOrderDetailPage.tsx
+++ b/apps/frontend/src/pages/admin/AdminOrderDetailPage.tsx
@@ -7,6 +7,7 @@ import {
} from '@ant-design/icons'
import {
Alert,
+ App,
Button,
Card,
Descriptions,
@@ -17,7 +18,6 @@ import {
Table,
Tag,
Typography,
- message,
} from 'antd'
import type { TableColumnsType } from 'antd'
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
@@ -34,6 +34,7 @@ import { formatAdminDateTime } from '@/utils/admin-time'
export default function AdminOrderDetailPage() {
const navigate = useNavigate()
const queryClient = useQueryClient()
+ const { message, modal } = App.useApp()
const { orderId = '' } = useParams()
const [statusModalVisible, setStatusModalVisible] = useState(false)
const [targetStatus, setTargetStatus] = useState<'active' | 'paused' | 'closed'>('active')
@@ -47,8 +48,11 @@ export default function AdminOrderDetailPage() {
const detail = query.data?.data
const statusMutation = useMutation({
- mutationFn: (data: { status: 'active' | 'paused' | 'closed'; reason?: string }) =>
- updateAdminOrderClaimStatus(orderId, data),
+ mutationFn: async (data: { status: 'active' | 'paused' | 'closed'; reason?: string }) => {
+ const targetOrderId = orderId || detail?.order?.orderId
+ if (!targetOrderId) throw new Error('订单 ID 缺失')
+ return updateAdminOrderClaimStatus(targetOrderId, data)
+ },
onSuccess: () => {
message.success('订单兑换状态已更新')
setStatusModalVisible(false)
@@ -71,10 +75,12 @@ export default function AdminOrderDetailPage() {
const openStatusModal = (status: 'active' | 'paused' | 'closed') => {
if (status === 'active') {
- Modal.confirm({
+ modal.confirm({
title: '恢复启用订单兑换',
content: '恢复后,买家可正常进入 H5 页面提交 UID 领取,确认恢复吗?',
- onOk: () => statusMutation.mutateAsync({ status: 'active', reason: '管理员恢复启用' }),
+ onOk: async () => {
+ await statusMutation.mutateAsync({ status: 'active', reason: '管理员恢复启用' })
+ },
})
return
}
diff --git a/apps/frontend/src/pages/admin/AdminTaskDetailPage.tsx b/apps/frontend/src/pages/admin/AdminTaskDetailPage.tsx
index d1bcaa6d..10c1c917 100644
--- a/apps/frontend/src/pages/admin/AdminTaskDetailPage.tsx
+++ b/apps/frontend/src/pages/admin/AdminTaskDetailPage.tsx
@@ -89,9 +89,10 @@ export default function AdminTaskDetailPage() {
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)
+ mutationFn: async (data: { status: 'active' | 'paused' | 'closed'; reason?: string }) => {
+ const resolvedOrderId = query.data?.data?.order?.orderId || detail?.order?.orderId
+ if (!resolvedOrderId) throw new Error('当前任务无关联订单信息')
+ return updateAdminOrderClaimStatus(resolvedOrderId, data)
},
onSuccess: () => {
message.success('订单兑换状态已更新')
diff --git a/apps/frontend/src/pages/claim/ClaimPage.tsx b/apps/frontend/src/pages/claim/ClaimPage.tsx
index f052de01..0b391c9a 100644
--- a/apps/frontend/src/pages/claim/ClaimPage.tsx
+++ b/apps/frontend/src/pages/claim/ClaimPage.tsx
@@ -1,10 +1,11 @@
import {
ExclamationCircleOutlined,
LoadingOutlined,
+ ReloadOutlined,
StopOutlined,
WarningOutlined,
} from '@ant-design/icons'
-import { Card, Empty, Spin } from 'antd'
+import { Button, Card, Empty, Spin } from 'antd'
import QRCode from 'qrcode'
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { useParams } from 'react-router'
@@ -255,17 +256,39 @@ export default function ClaimPage() {
{errorMessage}
+ } + style={{ marginTop: 16 }} + onClick={() => void loadDetail()} + > + 重新检测状态 + > ) : errorMessage.includes('关闭') || errorMessage.includes('退款') ? ( <>{errorMessage}
+ } + style={{ marginTop: 16 }} + onClick={() => void loadDetail()} + > + 重新检测状态 + > ) : ( <>{errorMessage}
+ } + style={{ marginTop: 16 }} + onClick={() => void loadDetail()} + > + 重新加载 + > )}