将 AdminRiskPage 改名为 AdminRiskIndexPage,并接入 RiskIndexConsole 组件。

This commit is contained in:
2026-05-11 11:52:53 +08:00
parent 78045de9a3
commit 0103d25426
16 changed files with 1033 additions and 15 deletions

View File

@@ -0,0 +1,18 @@
import { RiskPoolsConsole } from "@/modules/risk/risk-pools-console";
export default async function AdminRiskHotPage(props: {
params: Promise<{ drawId: string }>;
}) {
const { drawId } = await props.params;
const id = Number(drawId);
return (
<RiskPoolsConsole
drawId={id}
title="热门号码监控"
description="按「已占用 / 封顶」比例与已占用额排序,便于发现集中下注号码(产品文档 §13.4)。"
soldOutOnly={false}
defaultSort="usage_desc"
/>
);
}

View File

@@ -0,0 +1,20 @@
import { ModuleScaffold } from "@/components/admin/module-scaffold";
import { RiskDrawHeader } from "@/modules/risk/risk-draw-header";
import { RiskSubnav } from "@/modules/risk/risk-subnav";
export default async function AdminRiskDrawLayout(props: {
children: React.ReactNode;
params: Promise<{ drawId: string }>;
}) {
const { drawId } = await props.params;
const id = Number(drawId);
const safeId = Number.isFinite(id) ? id : 0;
return (
<ModuleScaffold className="w-full max-w-none">
<RiskDrawHeader drawId={safeId} />
<RiskSubnav drawId={drawId} />
{props.children}
</ModuleScaffold>
);
}

View File

@@ -0,0 +1,10 @@
import { RiskLockLogsConsole } from "@/modules/risk/risk-lock-logs-console";
export default async function AdminRiskOccupancyPage(props: {
params: Promise<{ drawId: string }>;
}) {
const { drawId } = await props.params;
const id = Number(drawId);
return <RiskLockLogsConsole drawId={id} />;
}

View File

@@ -0,0 +1,10 @@
import { RiskPoolDetailConsole } from "@/modules/risk/risk-pool-detail-console";
export default async function AdminRiskPoolDetailPage(props: {
params: Promise<{ drawId: string; number: string }>;
}) {
const { drawId, number } = await props.params;
const id = Number(drawId);
return <RiskPoolDetailConsole drawId={id} number4d={number} />;
}

View File

@@ -0,0 +1,19 @@
import { RiskPoolsConsole } from "@/modules/risk/risk-pools-console";
export default async function AdminRiskPoolsPage(props: {
params: Promise<{ drawId: string }>;
}) {
const { drawId } = await props.params;
const id = Number(drawId);
return (
<RiskPoolsConsole
drawId={id}
title="全部风险池"
description="本期已出现的全部号码赔付池事实表;可排序,点击「查看」进入单号码详情页。"
soldOutOnly={false}
defaultSort="number_asc"
allowSortChange
/>
);
}

View File

@@ -0,0 +1,18 @@
import { RiskPoolsConsole } from "@/modules/risk/risk-pools-console";
export default async function AdminRiskSoldOutPage(props: {
params: Promise<{ drawId: string }>;
}) {
const { drawId } = await props.params;
const id = Number(drawId);
return (
<RiskPoolsConsole
drawId={id}
title="售罄号码列表"
description="剩余赔付额度为 0 的 4D 号码;玩家侧将收到售罄拒单(产品文档 §6.4、§13.4)。"
soldOutOnly
defaultSort="number_asc"
/>
);
}

View File

@@ -1,21 +1,10 @@
import { ModuleScaffold } from "@/components/admin/module-scaffold";
import { riskModuleMeta } from "@/modules/risk/meta";
import type { Metadata } from "next";
import { RiskIndexConsole } from "@/modules/risk/risk-index-console";
export const metadata: Metadata = {
title: riskModuleMeta.title,
};
export default function AdminRiskPage() {
export default function AdminRiskIndexPage() {
return (
<ModuleScaffold>
<p className="text-sm text-zinc-500 dark:text-zinc-400">
{" "}
<code className="rounded bg-zinc-100 px-1 py-0.5 font-mono text-xs dark:bg-zinc-800">
src/modules/risk
</code>{" "}
</p>
<ModuleScaffold className="w-full max-w-none">
<RiskIndexConsole />
</ModuleScaffold>
);
}