feat(web): 搭建 Web 壳层与 UI 包基线

React 19 + Vite 6 + Router 7 + TanStack Query + Zustand;Semi 二次封装与 Remix 图标统一出口;顶部模块 + 左侧功能菜单布局、Cloud Blue 主题、登录页与 401/403/404/500 页面;请求层含 token 注入、单飞刷新与统一错误提示。
This commit is contained in:
Stev_Wang committed 2026-11-02 17:21:16 +08:00
1 parent 23067edb8f
commit 073d210a92
51 files changed
+4452

No files matched your search

+39
View File
@@ -0,0 +1,39 @@
import '@douyinfe/semi-ui-19/react19-adapter';
import '@lingxi/ui/semi.css';
import '@lingxi/ui/theme/tokens.css';
import '@lingxi/ui/styles.css';
import '@/styles/global.css';
import '@/styles/layout.css';
import '@/styles/pages.css';
import { LocaleProvider } from '@douyinfe/semi-ui-19';
import { localeZhCN } from '@lingxi/ui';
import { QueryClientProvider } from '@tanstack/react-query';
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import { RouterProvider } from 'react-router';
import { setUnauthorizedHandler } from '@/api/client';
import { queryClient } from '@/api/query-client';
import { router } from '@/router';
import { ROUTES } from '@/routes';
setUnauthorizedHandler(() => {
void router.navigate(ROUTES.login, { replace: true });
});
const container = document.getElementById('root');
if (container === null) {
throw new Error('找不到应用根节点 #root');
}
createRoot(container).render(
<StrictMode>
<LocaleProvider locale={localeZhCN}>
<QueryClientProvider client={queryClient}>
<RouterProvider router={router} />
</QueryClientProvider>
</LocaleProvider>
</StrictMode>,
);