diff --git a/src/app/(main)/coupon-data/page.tsx b/src/app/(main)/coupon-data/page.tsx index 659b512..7811e16 100644 --- a/src/app/(main)/coupon-data/page.tsx +++ b/src/app/(main)/coupon-data/page.tsx @@ -19,7 +19,7 @@ import { Tooltip, Typography, } from 'antd'; -import { InfoCircleOutlined } from '@ant-design/icons'; +import { DownOutlined, InfoCircleOutlined } from '@ant-design/icons'; import dayjs, { type Dayjs } from 'dayjs'; import { api, errMsg } from '@/lib/api'; import { formatUtcTime } from '@/lib/format'; @@ -137,6 +137,13 @@ const SLOT_PLATFORM: Record = { }; const slotPlatformLabel = (p: string | null): string => (p ? SLOT_PLATFORM[p] ?? p : '其他'); +// 三平台品牌色(平台名前小圆点用):美团黄 / 淘宝闪购橙 / 京东红。 +const SLOT_PLATFORM_COLOR: Record = { + 'meituan-waimai': '#FFB300', + 'taobao-shanguang': '#FF6A00', + 'jd-waimai': '#E1251B', +}; + // 点手机号弹出的「该用户全部领券」抽屉列(精简版:单用户,不含用户/手机号列)。 const RECORD_COLUMNS: ColumnsType = [ { title: '时间', dataIndex: 'started_at', width: 160, render: (v: string) => formatUtcTime(v) }, @@ -704,51 +711,82 @@ export default function CouponDataPage() { - {( - [ - ['meituan-waimai', '美团点位成功率'], - ['taobao-shanguang', '淘宝点位成功率'], - ['jd-waimai', '京东点位成功率'], - ] as const - ).map(([pid, title]) => { + {(['meituan-waimai', 'taobao-shanguang', 'jd-waimai'] as const).map((pid) => { const active = selectedSlotPlatform === pid; + const rate = summary.per_platform?.[pid]; + // 平台名(前置品牌色圆点) | 大数字成功率 | 「查看明细」按钮;仅按钮可展开表格。 return (
setSelectedSlotPlatform(active ? null : pid)} - title="点击查看该平台各券成功率" style={{ - cursor: 'pointer', - padding: '4px 8px', - borderRadius: 6, - border: active ? '1px solid #1677ff' : '1px solid transparent', - background: active ? '#e6f4ff' : undefined, + border: `1px solid ${active ? '#91caff' : '#f0f0f0'}`, + borderRadius: 8, + background: active ? '#f0f7ff' : '#fff', transition: 'all .2s', + padding: '10px 14px', }} > - + {/* 平台名前放小品牌色圆点(取代原左侧竖条),克制地标记平台身份,不打破页面灰度。 */} +
+ + {`${SLOT_PLATFORM[pid]}点位成功率`} +
+
+ {fmtPct(rate)} +
+
); })}
- - )} - - {selectedSlotPlatform && ( - setSelectedSlotPlatform(null)}>收起} - style={{ marginBottom: 16 }} - > - - rowKey="coupon_id" - size="small" - pagination={false} - dataSource={couponSlots.filter((r) => r.platform === selectedSlotPlatform)} - columns={slotColumns} - /> + {selectedSlotPlatform && ( + // 表格区域:浅灰底 + 内边距,和上方指标卡主体分层区分。 +
+
+ {`${slotPlatformLabel(selectedSlotPlatform)} · 按券成功率`} + setSelectedSlotPlatform(null)}>收起 +
+ + rowKey="coupon_id" + size="small" + pagination={false} + dataSource={couponSlots.filter((r) => r.platform === selectedSlotPlatform)} + columns={slotColumns} + /> +
+ )}
)}