diff --git a/AGENTS.md b/AGENTS.md index 240fdcf..e006961 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -48,4 +48,4 @@ This version has breaking changes — APIs, conventions, and file structure may - Docs 侧栏粘性定位用 CSS 变量 `--docs-sticky-top`(含顶栏/header 偏移)。 - Tanumo 联调/生产默认:H5 `https://front.tanumo.com`、API `https://lotterylaravel.tanumo.com`、管理端/文档 `https://lotteryadmin.tanumo.com`。 - 接入文档 SSO:无「登录换票」;主站 JWT 直传 H5/iframe,`GET /api/v1/player/me` 自动建档;iframe 约定 token 在顶层 `data.token`;勿引用 main-site/monorepo 等内部仓库路径。 -- 风控页默认:占用流水按注单聚合;风险池仅显示有占用/高风险;组合明细放注单详情二级页。 +- 风控页默认:风险池仅显示有占用/高风险;单号详情可看占用来源;组合明细在注单详情页。 diff --git a/public/docs/admin-manual/01-draw-lifecycle.png b/public/docs/admin-manual/01-draw-lifecycle.png new file mode 100644 index 0000000..bc2f73d Binary files /dev/null and b/public/docs/admin-manual/01-draw-lifecycle.png differ diff --git a/public/docs/admin-manual/02-wallet-vs-credit.png b/public/docs/admin-manual/02-wallet-vs-credit.png new file mode 100644 index 0000000..c581990 Binary files /dev/null and b/public/docs/admin-manual/02-wallet-vs-credit.png differ diff --git a/public/docs/admin-manual/03-settlement-dual.png b/public/docs/admin-manual/03-settlement-dual.png new file mode 100644 index 0000000..61b1e47 Binary files /dev/null and b/public/docs/admin-manual/03-settlement-dual.png differ diff --git a/public/docs/admin-manual/04-review-payout.png b/public/docs/admin-manual/04-review-payout.png new file mode 100644 index 0000000..917fc5e Binary files /dev/null and b/public/docs/admin-manual/04-review-payout.png differ diff --git a/public/docs/admin-manual/05-agent-tree.png b/public/docs/admin-manual/05-agent-tree.png new file mode 100644 index 0000000..c85d8f3 Binary files /dev/null and b/public/docs/admin-manual/05-agent-tree.png differ diff --git a/public/docs/admin-manual/06-integration-site.png b/public/docs/admin-manual/06-integration-site.png new file mode 100644 index 0000000..22e1901 Binary files /dev/null and b/public/docs/admin-manual/06-integration-site.png differ diff --git a/public/docs/admin-manual/cover.png b/public/docs/admin-manual/cover.png new file mode 100644 index 0000000..1731341 Binary files /dev/null and b/public/docs/admin-manual/cover.png differ diff --git a/src/api/admin-risk.ts b/src/api/admin-risk.ts index b329bad..d4e1d70 100644 --- a/src/api/admin-risk.ts +++ b/src/api/admin-risk.ts @@ -2,7 +2,6 @@ import { adminRequest } from "@/lib/admin-http"; import type { - AdminRiskLockLogListData, AdminRiskPoolListData, AdminRiskPoolRow, AdminRiskPoolShowData, @@ -57,34 +56,6 @@ export async function postAdminRiskPoolRecover( ); } -export type AdminRiskLockLogQuery = { - page?: number; - per_page?: number; - group_by?: "ticket" | "entry"; - action_type?: "lock" | "release"; - normalized_number?: string; - ticket_item_id?: number; -}; - -export async function getAdminRiskPoolLockLogs( - drawId: number, - q: AdminRiskLockLogQuery = {}, -): Promise { - return adminRequest.get( - `${A}/draws/${drawId}/risk-pool-lock-logs`, - { - params: { - page: q.page, - per_page: q.per_page, - group_by: q.group_by ?? "ticket", - action_type: q.action_type, - normalized_number: q.normalized_number, - ticket_item_id: q.ticket_item_id, - }, - }, - ); -} - export type AdminRiskPoolShowQuery = { page?: number; per_page?: number; diff --git a/src/app/admin/(shell)/draws/[drawId]/risk/occupancy/page.tsx b/src/app/admin/(shell)/draws/[drawId]/risk/occupancy/page.tsx index 54d6ab8..a96c943 100644 --- a/src/app/admin/(shell)/draws/[drawId]/risk/occupancy/page.tsx +++ b/src/app/admin/(shell)/draws/[drawId]/risk/occupancy/page.tsx @@ -1,10 +1,8 @@ -import { RiskLockLogsConsole } from "@/modules/risk/risk-lock-logs-console"; +import { redirect } from "next/navigation"; -export default async function AdminDrawRiskOccupancyPage(props: { +export default async function AdminDrawRiskOccupancyRedirectPage(props: { params: Promise<{ drawId: string }>; }) { const { drawId } = await props.params; - const id = Number(drawId); - - return ; + redirect(`/admin/draws/${drawId}/risk/pools`); } diff --git a/src/app/admin/(shell)/draws/[drawId]/risk/page.tsx b/src/app/admin/(shell)/draws/[drawId]/risk/page.tsx index 165b0c7..6ea7b59 100644 --- a/src/app/admin/(shell)/draws/[drawId]/risk/page.tsx +++ b/src/app/admin/(shell)/draws/[drawId]/risk/page.tsx @@ -5,5 +5,5 @@ export default async function AdminDrawRiskIndexPage(props: { }) { const { drawId } = await props.params; - redirect(`/admin/draws/${drawId}/risk/occupancy`); + redirect(`/admin/draws/${drawId}/risk/pools`); } diff --git a/src/app/admin/(shell)/reports/page.tsx b/src/app/admin/(shell)/reports/page.tsx index 9657258..32a6a26 100644 --- a/src/app/admin/(shell)/reports/page.tsx +++ b/src/app/admin/(shell)/reports/page.tsx @@ -1,11 +1,15 @@ import { AdminPermissionGate } from "@/components/admin/admin-permission-gate"; +import { AdminLoadingState } from "@/components/admin/admin-loading-state"; import { PRD_REPORTS_VIEW_ACCESS_ANY } from "@/lib/admin-prd"; import { ReportsConsole } from "@/modules/reports/reports-console"; +import { Suspense } from "react"; export default function AdminReportsPage() { return ( - + }> + + ); } diff --git a/src/app/admin/(shell)/risk/draws/[drawId]/occupancy/page.tsx b/src/app/admin/(shell)/risk/draws/[drawId]/occupancy/page.tsx index 21fabc5..6a1bfe5 100644 --- a/src/app/admin/(shell)/risk/draws/[drawId]/occupancy/page.tsx +++ b/src/app/admin/(shell)/risk/draws/[drawId]/occupancy/page.tsx @@ -4,5 +4,5 @@ export default async function AdminRiskOccupancyPage(props: { params: Promise<{ drawId: string }>; }) { const { drawId } = await props.params; - redirect(`/admin/draws/${drawId}/risk/occupancy`); + redirect(`/admin/draws/${drawId}/risk/pools`); } diff --git a/src/components/docs/doc-ui.tsx b/src/components/docs/doc-ui.tsx index 0cb46eb..58353ab 100644 --- a/src/components/docs/doc-ui.tsx +++ b/src/components/docs/doc-ui.tsx @@ -55,6 +55,21 @@ export function DocParagraph({ children }: { children: ReactNode }): React.React return

{children}

; } +export function DocFigure({ + src, + alt, +}: { + src: string; + alt: string; +}): React.ReactElement { + return ( +
+ {/* eslint-disable-next-line @next/next/no-img-element */} + {alt} +
+ ); +} + export function DocNote({ children }: { children: ReactNode }): React.ReactElement { return (