67 lines
2.1 KiB
TypeScript
67 lines
2.1 KiB
TypeScript
import Link from "next/link";
|
||
|
||
import { ModuleScaffold } from "@/components/admin/module-scaffold";
|
||
import {
|
||
Card,
|
||
CardDescription,
|
||
CardHeader,
|
||
CardTitle,
|
||
} from "@/components/ui/card";
|
||
import { configHubMeta } from "@/modules/config/meta";
|
||
import type { Metadata } from "next";
|
||
|
||
export const metadata: Metadata = {
|
||
title: configHubMeta.title,
|
||
};
|
||
|
||
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: "三套流水线的版本列表(玩法配置 / 赔率 / 风控封顶)。",
|
||
},
|
||
] 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>
|
||
<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">
|
||
<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>
|
||
))}
|
||
</div>
|
||
</ModuleScaffold>
|
||
);
|
||
}
|