duoqi-admin/src/App.tsx
Wang Zhuoxuan ccc32538a1 初始化项目骨架(Phase 1a)
- Vite + React + TypeScript 项目初始化
- Tailwind CSS v4 + shadcn/ui 配置(button, card, input, label)
- React Router v7 路由:登录页、数据看板、题库/分类/用户/设置占位页
- AdminLayout 布局:侧边栏导航 + 顶栏
- ky v2 HTTP 客户端,自动附加 Bearer token
- Zustand auth store + localStorage 持久化
- 认证保护:未登录自动重定向到 /login
- 数据看板骨架(4 统计卡片 + 图表占位)
- 类型定义:question, user, category, api
2026-04-07 10:51:22 +08:00

31 lines
884 B
TypeScript

import { createBrowserRouter, RouterProvider } from "react-router"
import RootLayout from "@/routes/__root"
import DashboardPage from "@/routes/dashboard"
import LoginPage from "@/routes/login"
import QuestionsPage from "@/routes/questions"
import CategoriesPage from "@/routes/categories"
import UsersPage from "@/routes/users"
import SettingsPage from "@/routes/settings"
const router = createBrowserRouter([
{
path: "/login",
Component: LoginPage,
},
{
path: "/",
Component: RootLayout,
children: [
{ index: true, Component: DashboardPage },
{ path: "questions", Component: QuestionsPage },
{ path: "categories", Component: CategoriesPage },
{ path: "users", Component: UsersPage },
{ path: "settings", Component: SettingsPage },
],
},
])
export default function App() {
return <RouterProvider router={router} />
}