+ {/* Desktop Sidebar */}
+ {!isMobile && (
+
)}
- avatarProps={{
- src: undefined,
- title: account?.display_name || account?.username || 'Admin',
- size: 'small',
- render: (_, dom) => (
-
,
- label: '退出登录',
- onClick: handleLogout,
- },
- ],
- }}
- >
- {dom}
-
- ),
- }}
- suppressSiderWhenMenuEmpty
- contentStyle={{ padding: 24 }}
- >
-
-
+
+ {/* Mobile Drawer */}
+ {isMobile && (
+
setMobileOpen(false)}
+ onNavigate={handleNavigate}
+ activePath={location.pathname}
+ />
+ )}
+
+ {/* Main Area */}
+
+ {/* Header */}
+
+
+ {/* Mobile menu button */}
+ {isMobile && (
+
+ )}
+
+ {/* Collapse toggle (desktop) */}
+ {!isMobile && (
+
+ )}
+
+ {/* Breadcrumb */}
+
+ ZCLAW
+ /
+
+ {currentPage}
+
+
+
+
+ {/* Right actions */}
+
+ {/* Theme toggle */}
+
+
+
+
+ {/* User avatar */}
+
,
+ label: '退出登录',
+ onClick: handleLogout,
+ },
+ ],
+ }}
+ >
+
+
+
+
+
+ {/* Content */}
+
+
+
+
+
)
}
diff --git a/admin-v2/src/main.tsx b/admin-v2/src/main.tsx
index 20210ff..ba494e2 100644
--- a/admin-v2/src/main.tsx
+++ b/admin-v2/src/main.tsx
@@ -1,10 +1,12 @@
import { createRoot } from 'react-dom/client'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { RouterProvider } from 'react-router-dom'
-import { ConfigProvider, App as AntApp } from 'antd'
+import { ConfigProvider, App as AntApp, theme } from 'antd'
import zhCN from 'antd/locale/zh_CN'
import { router } from './router'
import { ErrorBoundary } from './components/ErrorBoundary'
+import { useThemeStore } from './stores/themeStore'
+import './styles/globals.css'
const queryClient = new QueryClient({
defaultOptions: {
@@ -16,14 +18,71 @@ const queryClient = new QueryClient({
},
})
-createRoot(document.getElementById('root')!).render(
-