Compare commits

..

1 Commits

Author SHA1 Message Date
linkeyu af0e6eefda fix(admin): show zero revenue for incomplete reward videos 2026-07-22 17:09:21 +08:00
3 changed files with 9 additions and 19 deletions
+2 -2
View File
@@ -76,7 +76,7 @@ const REWARD_STATUS_HINT: Record<string, string> = {
const PLAYBACK_STATUS_TAG: Record<string, { color: string; label: string }> = {
completed: { color: 'green', label: '已完成' },
too_short: { color: 'gold', label: '观看时长不足' },
too_short: { color: 'gold', label: '未满10秒' },
closed_early: { color: 'default', label: '提前关闭' },
unknown: { color: 'default', label: '未知' },
};
@@ -159,7 +159,7 @@ function playbackStatusTag(row: AdRevenueRow) {
const hint = entries
.map(([status, count]) => `${PLAYBACK_STATUS_TAG[status].label} ${count}`)
.join('');
return { color: 'purple', label: '部分完成', hint: `${hint}` };
return { color: 'purple', label: '混合状态', hint: `${hint}` };
}
const fmtFactorRange = (a: number | null, b: number | null) => {
+3 -6
View File
@@ -149,9 +149,6 @@ function PointScorePopover({ row }: { row: CouponDataRow }) {
return <Typography.Text type="secondary">-</Typography.Text>;
}
const score = `${row.point_success_count}/${row.point_total_count}`;
const scoreWithRate = `${score}${(
row.point_success_count / row.point_total_count * 100
).toFixed(1)}%`;
const scoreColor =
row.point_success_count === row.point_total_count
? STATUS_TAG.completed.color
@@ -223,7 +220,7 @@ function PointScorePopover({ row }: { row: CouponDataRow }) {
)}
>
<Button type="link" size="small" style={{ height: 'auto', padding: 0, color: scoreColor }}>
{scoreWithRate}
{score}
</Button>
</Popover>
);
@@ -605,9 +602,9 @@ export default function CouponDataPage() {
render: (v: number | null) => fmtSec(v),
},
{
title: '单券成功率',
title: '百分比',
key: 'point_success_rate',
width: 150,
width: 110,
render: (_: unknown, r: CouponDataRow) => <PointScorePopover row={r} />,
},
{
+4 -11
View File
@@ -67,6 +67,8 @@ const NAV_GROUPS: NavGroup[] = [
{ key: '/comparison-records', icon: <ProfileOutlined />, label: '比价记录' },
{ key: '/coupon-data', icon: <GiftOutlined />, label: '领券记录' },
{ key: '/cps', icon: <ShareAltOutlined />, label: 'CPS收益' },
{ key: '/device-liveness', icon: <HeartOutlined />, label: '设备存活' },
{ key: '/analytics-health', icon: <LineChartOutlined />, label: '埋点成功率' },
],
},
{
@@ -90,18 +92,9 @@ const NAV_GROUPS: NavGroup[] = [
{ key: '/users', icon: <UserOutlined />, label: '用户管理' },
],
},
{
key: 'monitoring-audit',
icon: <FileSearchOutlined />,
label: '监控审计',
children: [
{ key: '/device-liveness', icon: <HeartOutlined />, label: '设备存活' },
{ key: '/analytics-health', icon: <LineChartOutlined />, label: '埋点成功率' },
{ key: '/event-logs', icon: <DatabaseOutlined />, label: '埋点日志' },
{ key: '/audit-logs', icon: <FileSearchOutlined />, label: '审计日志' },
],
},
{ key: '/admins', icon: <TeamOutlined />, label: '权限管理' },
{ key: '/event-logs', icon: <DatabaseOutlined />, label: '埋点日志' },
{ key: '/audit-logs', icon: <FileSearchOutlined />, label: '审计日志' },
];
// 导航项 key(/dashboard)→ 权限页 key(dashboard),与后端 permissions.py 目录对齐