refactor: 移除冗余注释和描述,优化管理员模块的代码结构

This commit is contained in:
2026-05-11 17:21:12 +08:00
parent 217ed7c02f
commit 76e318be8f
57 changed files with 163 additions and 382 deletions

View File

@@ -1,10 +1,10 @@
import { ModuleScaffold } from "@/components/admin/module-scaffold";
import { auditModuleMeta } from "@/modules/audit/meta";
import { auditLogsModuleMeta } from "@/modules/audit/meta";
import { AuditLogsConsole } from "@/modules/audit/audit-logs-console";
import type { Metadata } from "next";
export const metadata: Metadata = {
title: auditModuleMeta.title,
title: auditLogsModuleMeta.title,
};
export default function AdminAuditLogsPage() {

View File

@@ -1,12 +1,7 @@
import Link from "next/link";
import { ModuleScaffold } from "@/components/admin/module-scaffold";
import {
Card,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Card, CardHeader, CardTitle } from "@/components/ui/card";
import { configHubMeta } from "@/modules/config/meta";
import type { Metadata } from "next";
@@ -15,47 +10,27 @@ export const metadata: Metadata = {
};
const SECTIONS = [
{
href: "/admin/config/plays",
title: "玩法配置",
description: "§5.4:目录开关、显示名与排序、限额、规则说明(玩法配置版本)。",
},
{
href: "/admin/config/odds",
title: "赔率配置",
description: "§5.5:按维度 / 玩法编辑五档赔率、回水率、历史版本与回滚。",
},
{
href: "/admin/config/rebate",
title: "佣金 / 回水",
description: "§5.6:按 2D / 3D / 4D 批量写入 rebate_rate共用赔率版本。",
},
{
href: "/admin/config/risk-cap",
title: "风控封顶",
description: "§5.7:默认封顶、特殊号码封顶;占用列为占位,待注单汇总接入。",
},
{
href: "/admin/config/versions",
title: "配置版本历史",
description: "三套流水线的版本列表(玩法配置 / 赔率 / 风控封顶)。",
},
{ href: "/admin/config/plays", title: "玩法配置" },
{ href: "/admin/config/odds", title: "赔率配置" },
{ href: "/admin/config/rebate", title: "佣金 / 回水" },
{ href: "/admin/config/risk-cap", title: "风控封顶" },
{ href: "/admin/config/versions", title: "配置版本历史" },
] as const;
export default function AdminConfigHubPage() {
return (
<ModuleScaffold className="max-w-4xl">
<div className="mb-6 space-y-1">
<h1 className="text-xl font-semibold tracking-tight">{configHubMeta.title}</h1>
<p className="text-sm text-muted-foreground">{configHubMeta.description}</p>
</div>
<h1 className="mb-6 text-xl font-semibold tracking-tight">{configHubMeta.title}</h1>
<div className="grid gap-4 sm:grid-cols-2">
{SECTIONS.map((s) => (
<Link key={s.href} href={s.href} className="block rounded-lg outline-none ring-offset-background focus-visible:ring-2 focus-visible:ring-ring">
<Link
key={s.href}
href={s.href}
className="block rounded-lg outline-none ring-offset-background focus-visible:ring-2 focus-visible:ring-ring"
>
<Card className="h-full transition-colors hover:bg-muted/40">
<CardHeader>
<CardTitle className="text-base">{s.title}</CardTitle>
<CardDescription>{s.description}</CardDescription>
</CardHeader>
</Card>
</Link>

View File

@@ -5,7 +5,6 @@ export const metadata: Metadata = {
title: "开奖结果发布",
};
/** PRD §11.4:与 `POST /api/v1/admin/draws/{draw}/result-batches/{batch}/publish` 联调页 */
export default async function AdminDrawPublishBatchPage(props: {
params: Promise<{ drawId: string; batchId: string }>;
}) {

View File

@@ -11,7 +11,6 @@ export default function AdminJackpotPoolsPage() {
<>
<div className="mx-auto mb-6 max-w-5xl">
<h1 className="text-lg font-semibold tracking-tight">{jackpotModuleMeta.title}</h1>
<p className="text-muted-foreground mt-1 text-sm">{jackpotModuleMeta.description}</p>
</div>
<JackpotPoolsConsole />
</>

View File

@@ -1,5 +1,4 @@
import { ModuleScaffold } from "@/components/admin/module-scaffold";
import { getAdminPing } from "@/api";
import { DashboardConsole } from "@/modules/dashboard/dashboard-console";
import type { Metadata } from "next";
@@ -7,33 +6,10 @@ export const metadata: Metadata = {
title: "仪表盘",
};
export default async function AdminDashboardPage() {
const ping = await getAdminPing();
const apiReady = process.env.NEXT_PUBLIC_LOTTERY_API_BASE_URL?.trim() !== "";
export default function AdminDashboardPage() {
return (
<ModuleScaffold className="max-w-7xl">
<DashboardConsole />
<details className="mt-8 rounded-lg border border-border/80 bg-muted/30 px-4 py-3 text-sm">
<summary className="cursor-pointer font-medium text-muted-foreground">API </summary>
<div className="mt-3 grid gap-3 sm:grid-cols-2">
<p className="text-muted-foreground">
{apiReady ? (
<span className="ml-1 font-medium text-emerald-600 dark:text-emerald-400"></span>
) : (
<span className="ml-1 font-medium text-amber-600 dark:text-amber-400">
NEXT_PUBLIC_LOTTERY_API_BASE_URL
</span>
)}
</p>
<p className="font-mono text-xs text-foreground">
Admin ping Token
{!apiReady ? "—" : ping ? JSON.stringify(ping) : "未返回"}
</p>
</div>
</details>
</ModuleScaffold>
);
}

View File

@@ -10,7 +10,6 @@ export default async function AdminRiskHotPage(props: {
<RiskPoolsConsole
drawId={id}
title="热门号码监控"
description="按「已占用 / 封顶」比例与已占用额排序,便于发现集中下注号码(产品文档 §13.4)。"
soldOutOnly={false}
defaultSort="usage_desc"
/>

View File

@@ -10,7 +10,6 @@ export default async function AdminRiskPoolsPage(props: {
<RiskPoolsConsole
drawId={id}
title="全部风险池"
description="本期已出现的全部号码赔付池事实表;可排序,点击「查看」进入单号码详情页。"
soldOutOnly={false}
defaultSort="number_asc"
allowSortChange

View File

@@ -10,7 +10,6 @@ export default async function AdminRiskSoldOutPage(props: {
<RiskPoolsConsole
drawId={id}
title="售罄号码列表"
description="剩余赔付额度为 0 的 4D 号码;玩家侧将收到售罄拒单(产品文档 §6.4、§13.4)。"
soldOutOnly
defaultSort="number_asc"
/>

View File

@@ -10,11 +10,8 @@ export const metadata: Metadata = {
export default function AdminServiceDeskPage() {
return (
<ModuleScaffold className="w-full max-w-none">
<div className="mb-8 space-y-2">
<div className="mb-8">
<h1 className="text-2xl font-semibold tracking-tight">{serviceDeskModuleMeta.title}</h1>
<p className="text-muted-foreground max-w-3xl text-sm leading-relaxed">
{serviceDeskModuleMeta.description}
</p>
</div>
<ServiceDeskConsole />
</ModuleScaffold>