feat(frontend): 完成品牌 SVG 与后台 Phase 1 基础切片

This commit is contained in:
yml2213
2026-10-30 12:20:01 +08:00
parent 8d9481c251
commit 97167fa482
25 changed files with 2028 additions and 40 deletions
+86 -11
View File
@@ -1,22 +1,97 @@
import { lazy, Suspense } from 'react'
import { Route, Routes } from 'react-router-dom'
import { AdminPlaceholderPage } from '@/features/admin/AdminPlaceholderPage'
import { LoginPage } from '@/features/auth/LoginPage'
import { ListingListPage } from '@/features/listings/ListingListPage'
import { PageLoading } from '@/components/PageLoading'
import { NotFoundPage } from '@/features/NotFoundPage'
import { StorefrontLayout } from '@/layouts/StorefrontLayout'
const ListingListPage = lazy(() =>
import('@/features/listings/ListingListPage').then(module => ({ default: module.ListingListPage }))
)
const LoginPage = lazy(() =>
import('@/features/auth/LoginPage').then(module => ({ default: module.LoginPage }))
)
const AdminLoginPage = lazy(() =>
import('@/features/admin/AdminLoginPage').then(module => ({ default: module.AdminLoginPage }))
)
const AdminGuard = lazy(() =>
import('@/features/admin/AdminGuard').then(module => ({ default: module.AdminGuard }))
)
const AdminChangePasswordPage = lazy(() =>
import('@/features/admin/AdminChangePasswordPage').then(module => ({
default: module.AdminChangePasswordPage,
}))
)
const AdminDashboardPage = lazy(() =>
import('@/features/admin/AdminDashboardPage').then(module => ({
default: module.AdminDashboardPage,
}))
)
const AdminLayout = lazy(() =>
import('@/layouts/AdminLayout').then(module => ({ default: module.AdminLayout }))
)
const AdminSectionPlaceholder = lazy(() =>
import('@/layouts/AdminLayout').then(module => ({ default: module.AdminSectionPlaceholder }))
)
const adminSections: Array<{ path: string; title: string; description: string }> = [
{ path: 'orders', title: '订单管理', description: '查看全量订单、交接记录与结账状态。' },
{ path: 'orders/refund-review', title: '退款审核', description: '审核退款申请并核对资金影响。' },
{ path: 'disputes', title: '申诉仲裁', description: '处理订单争议、证据与仲裁结果。' },
{ path: 'listings', title: '商品管理', description: '查看商品、账号资产与上下架状态。' },
{ path: 'listings/review', title: '商品审核', description: '审核待上架商品与账号截图。' },
{ path: 'users', title: '用户管理', description: '查看用户、实名状态与交易记录。' },
{ path: 'finance', title: '财务看板', description: '查看收入、退款、结算与资金趋势。' },
{ path: 'withdrawals', title: '提现审核', description: '审核提现申请与打款确认。' },
{ path: 'distribution/sites', title: '分销站点', description: '管理分站、规则、结算与站点钱包。' },
{ path: 'announcements', title: '公告管理', description: '维护主站与分站公告。' },
{ path: 'system-configs', title: '系统配置', description: '维护首页、发布、订单与支付配置。' },
{ path: 'audit-logs', title: '审计日志', description: '查看高风险操作与变更记录。' },
]
export function AppRouter() {
const adminBase = import.meta.env.VITE_ADMIN_BASE_PATH || '/console-jy8k3m'
return (
<Routes>
<Route element={<StorefrontLayout />}>
<Route index element={<ListingListPage />} />
</Route>
<Route path="/login" element={<LoginPage />} />
<Route path={`${adminBase}/*`} element={<AdminPlaceholderPage />} />
<Route path="*" element={<NotFoundPage />} />
</Routes>
<Suspense fallback={<PageLoading />}>
<Routes>
<Route element={<StorefrontLayout />}>
<Route index element={<ListingListPage />} />
</Route>
<Route path="/login" element={<LoginPage />} />
<Route path={`${adminBase}/login`} element={<AdminLoginPage />} />
<Route path={adminBase} element={<AdminGuard />}>
<Route path="change-password" element={<AdminChangePasswordPage />} />
<Route element={<AdminLayout />}>
<Route index element={<AdminDashboardPage />} />
{adminSections.map(section => (
<Route
key={section.path}
path={section.path}
element={
<AdminSectionPlaceholder
title={section.title}
description={section.description}
/>
}
/>
))}
<Route
path="*"
element={
<AdminSectionPlaceholder
title="功能建设中"
description="这个后台页面还没有进入迁移批次。"
/>
}
/>
</Route>
</Route>
<Route path="*" element={<NotFoundPage />} />
</Routes>
</Suspense>
)
}