refactor: 移除冗余注释和描述,优化管理员模块的代码结构
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }>;
|
||||
}) {
|
||||
|
||||
@@ -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 />
|
||||
</>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ export default async function AdminRiskHotPage(props: {
|
||||
<RiskPoolsConsole
|
||||
drawId={id}
|
||||
title="热门号码监控"
|
||||
description="按「已占用 / 封顶」比例与已占用额排序,便于发现集中下注号码(产品文档 §13.4)。"
|
||||
soldOutOnly={false}
|
||||
defaultSort="usage_desc"
|
||||
/>
|
||||
|
||||
@@ -10,7 +10,6 @@ export default async function AdminRiskPoolsPage(props: {
|
||||
<RiskPoolsConsole
|
||||
drawId={id}
|
||||
title="全部风险池"
|
||||
description="本期已出现的全部号码赔付池事实表;可排序,点击「查看」进入单号码详情页。"
|
||||
soldOutOnly={false}
|
||||
defaultSort="number_asc"
|
||||
allowSortChange
|
||||
|
||||
@@ -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"
|
||||
/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user