diff --git a/src/app/(main)/coupon-data/page.tsx b/src/app/(main)/coupon-data/page.tsx index c58f01f..659b512 100644 --- a/src/app/(main)/coupon-data/page.tsx +++ b/src/app/(main)/coupon-data/page.tsx @@ -327,6 +327,8 @@ export default function CouponDataPage() { const [range, setRange] = useState<[Dayjs, Dayjs]>([dayjs().subtract(6, 'day'), dayjs()]); const [user, setUser] = useState(''); const [appEnv, setAppEnv] = useState('prod'); + // 领券状态多选(方案 A:整视图联动),默认全选四态(= 现状,不改口径)。 + const [statuses, setStatuses] = useState(['started', 'completed', 'failed', 'abandoned']); const [granularity, setGranularity] = useState<'day' | 'hour'>('day'); const [sortBy, setSortBy] = useState<'time' | 'elapsed'>('time'); const [limit, setLimit] = useState(100); @@ -362,11 +364,14 @@ export default function CouponDataPage() { date_to: to, user: user.trim() || undefined, app_env: appEnv, + status: statuses, granularity: gran, limit: targetLimit, offset: (targetPage - 1) * targetLimit, sort: targetSort, }, + // status 是数组:repeat 无方括号序列化(status=a&status=b),对齐 FastAPI list[str] Query + paramsSerializer: { indexes: null }, }); setData(res.data); // 并行拉「按券成功率」(独立端点,失败不影响主报表) @@ -386,7 +391,7 @@ export default function CouponDataPage() { setLoading(false); } }, - [range, user, appEnv, granularity, limit, sortBy, message], + [range, user, appEnv, statuses, granularity, limit, sortBy, message], ); useEffect(() => { @@ -581,6 +586,18 @@ export default function CouponDataPage() { ]} /> + + 状态 +