feat: 更新管理员导航,添加结算和奖池模块,并优化活动匹配逻辑
This commit is contained in:
10
src/app/admin/(shell)/jackpot/layout.tsx
Normal file
10
src/app/admin/(shell)/jackpot/layout.tsx
Normal file
@@ -0,0 +1,10 @@
|
||||
import { JackpotSubNav } from "@/modules/jackpot/jackpot-subnav";
|
||||
|
||||
export default function AdminJackpotLayout({ children }: { children: React.ReactNode }) {
|
||||
return (
|
||||
<div className="w-full max-w-none px-1">
|
||||
<JackpotSubNav />
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
19
src/app/admin/(shell)/jackpot/pools/page.tsx
Normal file
19
src/app/admin/(shell)/jackpot/pools/page.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import { JackpotPoolsConsole } from "@/modules/jackpot/jackpot-pools-console";
|
||||
import { jackpotModuleMeta } from "@/modules/jackpot/meta";
|
||||
import type { Metadata } from "next";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: `奖池配置 · ${jackpotModuleMeta.title}`,
|
||||
};
|
||||
|
||||
export default function AdminJackpotPoolsPage() {
|
||||
return (
|
||||
<>
|
||||
<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 />
|
||||
</>
|
||||
);
|
||||
}
|
||||
19
src/app/admin/(shell)/jackpot/records/page.tsx
Normal file
19
src/app/admin/(shell)/jackpot/records/page.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import { JackpotRecordsConsole } from "@/modules/jackpot/jackpot-records-console";
|
||||
import { jackpotModuleMeta } from "@/modules/jackpot/meta";
|
||||
import type { Metadata } from "next";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: `Jackpot 记录 · ${jackpotModuleMeta.title}`,
|
||||
};
|
||||
|
||||
export default function AdminJackpotRecordsPage() {
|
||||
return (
|
||||
<>
|
||||
<div className="mx-auto mb-6 max-w-5xl">
|
||||
<h1 className="text-lg font-semibold tracking-tight">Jackpot 记录</h1>
|
||||
<p className="text-muted-foreground mt-1 text-sm">派彩与蓄水流水</p>
|
||||
</div>
|
||||
<JackpotRecordsConsole />
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import { SettlementBatchDetailsConsole } from "@/modules/settlement/settlement-batch-details-console";
|
||||
import { settlementModuleMeta } from "@/modules/settlement/meta";
|
||||
import type { Metadata } from "next";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: `结算明细 · ${settlementModuleMeta.title}`,
|
||||
};
|
||||
|
||||
export default async function AdminSettlementBatchDetailsPage(props: {
|
||||
params: Promise<{ batchId: string }>;
|
||||
}) {
|
||||
const { batchId } = await props.params;
|
||||
const id = Number.parseInt(batchId, 10);
|
||||
if (!Number.isFinite(id) || id < 1) {
|
||||
return <p className="text-destructive text-sm">无效的批次 ID</p>;
|
||||
}
|
||||
|
||||
return <SettlementBatchDetailsConsole batchId={id} />;
|
||||
}
|
||||
11
src/app/admin/(shell)/settlement-batches/page.tsx
Normal file
11
src/app/admin/(shell)/settlement-batches/page.tsx
Normal file
@@ -0,0 +1,11 @@
|
||||
import { SettlementBatchesConsole } from "@/modules/settlement/settlement-batches-console";
|
||||
import { settlementModuleMeta } from "@/modules/settlement/meta";
|
||||
import type { Metadata } from "next";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: settlementModuleMeta.title,
|
||||
};
|
||||
|
||||
export default function AdminSettlementBatchesPage() {
|
||||
return <SettlementBatchesConsole />;
|
||||
}
|
||||
Reference in New Issue
Block a user