feat: 支持充值商品配置和档位首充

This commit is contained in:
2026-05-15 06:11:57 +08:00
parent 9c33cc565c
commit c7fe793a9e
36 changed files with 2096 additions and 72 deletions

View File

@@ -9,6 +9,7 @@ import {
import type {
AdminSessionPayload,
ProfileInviteCodeAdminResponse,
ProfileRechargeProductConfigAdminResponse,
ProfileRedeemCodeAdminResponse,
ProfileTaskConfigAdminResponse,
} from '../api/adminApiTypes';
@@ -23,6 +24,7 @@ import {AdminDatabaseTablesPage} from '../pages/AdminDatabaseTablesPage';
import {AdminInviteCodePage} from '../pages/AdminInviteCodePage';
import {AdminLoginPage} from '../pages/AdminLoginPage';
import {AdminOverviewPage} from '../pages/AdminOverviewPage';
import {AdminRechargeProductPage} from '../pages/AdminRechargeProductPage';
import {AdminRedeemCodePage} from '../pages/AdminRedeemCodePage';
import {AdminTaskConfigPage} from '../pages/AdminTaskConfigPage';
import {AdminTrackingEventsPage} from '../pages/AdminTrackingEventsPage';
@@ -47,6 +49,8 @@ export function AdminApp() {
useState<ProfileInviteCodeAdminResponse | null>(null);
const [taskConfigResult, setTaskConfigResult] =
useState<ProfileTaskConfigAdminResponse | null>(null);
const [rechargeProductResult, setRechargeProductResult] =
useState<ProfileRechargeProductConfigAdminResponse | null>(null);
const clearSession = useCallback((message = '') => {
clearStoredAdminToken();
@@ -55,6 +59,7 @@ export function AdminApp() {
setRedeemResult(null);
setInviteResult(null);
setTaskConfigResult(null);
setRechargeProductResult(null);
setStatus('guest');
setLoginNotice(message);
}, []);
@@ -124,6 +129,7 @@ export function AdminApp() {
setRedeemResult(null);
setInviteResult(null);
setTaskConfigResult(null);
setRechargeProductResult(null);
setLoginNotice('');
setStatus('authenticated');
}, []);
@@ -207,6 +213,14 @@ export function AdminApp() {
onResultChange={setTaskConfigResult}
/>
) : null}
{routeId === 'recharge-products' ? (
<AdminRechargeProductPage
result={rechargeProductResult}
token={token}
onUnauthorized={handleUnauthorized}
onResultChange={setRechargeProductResult}
/>
) : null}
</AdminShell>
);
}

View File

@@ -1,5 +1,6 @@
import {
Bug,
BadgeDollarSign,
LayoutDashboard,
LogOut,
ShieldCheck,
@@ -32,6 +33,7 @@ const routeIcons = {
redeem: TicketPercent,
invite: TicketCheck,
tasks: ListChecks,
'recharge-products': BadgeDollarSign,
'creation-entry': SlidersHorizontal,
} satisfies Record<AdminRouteId, typeof LayoutDashboard>;

View File

@@ -6,6 +6,7 @@ export type AdminRouteId =
| 'redeem'
| 'invite'
| 'tasks'
| 'recharge-products'
| 'creation-entry';
export interface AdminRouteDefinition {
@@ -22,6 +23,7 @@ export const adminRoutes: AdminRouteDefinition[] = [
{id: 'redeem', label: '兑换码', hash: '#redeem'},
{id: 'invite', label: '邀请码', hash: '#invite'},
{id: 'tasks', label: '任务配置', hash: '#tasks'},
{id: 'recharge-products', label: '充值商品', hash: '#recharge-products'},
{id: 'creation-entry', label: '入口开关', hash: '#creation-entry'},
];