diff --git a/src/App.tsx b/src/App.tsx
index 1daf5cc..52850a1 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -8,6 +8,18 @@ import AuthGuard from './components/AuthGuard';
import './locales';
import './utils/request'
+import UserDataProvider from './components/Provider/UserDataProvider';
+
+/**
+ * 授权应用,包含路由守卫和用户数据提供器
+ */
+function AuthorizationApp() {
+ return (
+
+
+
+ );
+}
/**
* 封装MaterialUIApp,将主题、基础样式和路由包裹起来
@@ -19,9 +31,7 @@ function MaterialUIApp() {
-
-
-
+
diff --git a/src/components/AuthGuard.tsx b/src/components/AuthGuard.tsx
index 34ef344..4f72543 100644
--- a/src/components/AuthGuard.tsx
+++ b/src/components/AuthGuard.tsx
@@ -1,6 +1,7 @@
import React, { useEffect } from 'react';
import { useLocation, useNavigate } from 'react-router-dom';
import { CircularProgress, Box } from '@mui/material';
+import UserDataProvider from './Provider/UserDataProvider';
interface AuthGuardProps {
children: React.ReactNode;
@@ -46,7 +47,11 @@ const AuthGuard: React.FC = ({ children }) => {
}
// 已认证,渲染子组件
- return <>{children}>;
+ return (
+
+ {children}
+
+ );
};
export default AuthGuard;
\ No newline at end of file
diff --git a/src/components/Layout/Header.tsx b/src/components/Layout/Header.tsx
index 5b89112..f19b3bd 100644
--- a/src/components/Layout/Header.tsx
+++ b/src/components/Layout/Header.tsx
@@ -16,11 +16,13 @@ import LogoutIcon from '@mui/icons-material/Logout';
import PersonIcon from '@mui/icons-material/Person';
import LanguageSwitcher from '../LanguageSwitcher';
import { useAuth } from '@/hooks/login-hooks';
+import { useNavigate } from 'react-router-dom';
const Header = () => {
const { userInfo, logout } = useAuth();
const [anchorEl, setAnchorEl] = useState(null);
const open = Boolean(anchorEl);
+ const navigate = useNavigate();
const handleAvatarClick = (event: React.MouseEvent) => {
setAnchorEl(event.currentTarget);
@@ -30,6 +32,11 @@ const Header = () => {
setAnchorEl(null);
};
+ const handleProfileClick = () => {
+ navigate('/setting/profile');
+ setAnchorEl(null);
+ };
+
const handleLogout = () => {
logout();
handleClose();
@@ -179,7 +186,7 @@ const Header = () => {
{/* 菜单项 */}
-
+ );
+}
+export default MCPSetting;
diff --git a/src/pages/setting/models.tsx b/src/pages/setting/models.tsx
new file mode 100644
index 0000000..ead1a46
--- /dev/null
+++ b/src/pages/setting/models.tsx
@@ -0,0 +1,9 @@
+function ModelsSetting() {
+ return (
+
+
Model Setting
+
+ );
+}
+
+export default ModelsSetting;
\ No newline at end of file
diff --git a/src/pages/setting/profile.tsx b/src/pages/setting/profile.tsx
new file mode 100644
index 0000000..3563a10
--- /dev/null
+++ b/src/pages/setting/profile.tsx
@@ -0,0 +1,9 @@
+function ProfileSetting() {
+ return (
+
+
Profile Setting
+
+ );
+}
+
+export default ProfileSetting;
\ No newline at end of file
diff --git a/src/pages/setting/system.tsx b/src/pages/setting/system.tsx
new file mode 100644
index 0000000..ade871b
--- /dev/null
+++ b/src/pages/setting/system.tsx
@@ -0,0 +1,9 @@
+function SystemSetting() {
+ return (
+
+
System Setting
+
+ );
+}
+
+export default SystemSetting;
diff --git a/src/pages/setting/teams.tsx b/src/pages/setting/teams.tsx
new file mode 100644
index 0000000..143b1a2
--- /dev/null
+++ b/src/pages/setting/teams.tsx
@@ -0,0 +1,9 @@
+function TeamsSetting() {
+ return (
+
+
Teams Setting
+
+ );
+}
+
+export default TeamsSetting;
\ No newline at end of file
diff --git a/src/routes/index.tsx b/src/routes/index.tsx
index d2a051d..680e49f 100644
--- a/src/routes/index.tsx
+++ b/src/routes/index.tsx
@@ -1,15 +1,28 @@
import { Routes, Route, Navigate } from 'react-router-dom';
import MainLayout from '../components/Layout/MainLayout';
+import SettingLayout from '../components/Layout/SettingLayout';
import Login from '../pages/login/Login';
-import Home from '../pages/Home';
import PipelineConfig from '../pages/PipelineConfig';
import Dashboard from '../pages/Dashboard';
import ModelsResources from '../pages/ModelsResources';
-import { KnowledgeBaseList, KnowledgeBaseCreate, KnowledgeBaseDetail, KnowledgeBaseSetting, KnowledgeBaseTesting } from '../pages/knowledge';
+import {
+ KnowledgeBaseList,
+ KnowledgeBaseCreate,
+ KnowledgeBaseDetail,
+ KnowledgeBaseSetting,
+ KnowledgeBaseTesting
+} from '../pages/knowledge';
+import {
+ ModelsSetting,
+ SystemSetting,
+ TeamsSetting,
+ ProfileSetting,
+ MCPSetting,
+} from '../pages/setting';
import MCP from '../pages/MCP';
import FormFieldTest from '../pages/FormFieldTest';
-import ChunkParsedResult from '@/pages/chunk/parsed-result';
-import DocumentPreview from '@/pages/chunk/document-preview';
+import ChunkParsedResult from '../pages/chunk/parsed-result';
+import DocumentPreview from '../pages/chunk/document-preview';
const AppRoutes = () => {
return (
@@ -42,6 +55,15 @@ const AppRoutes = () => {
{/* 文档预览页面路由 */}
} />
+ {/* setting 相关路由 */}
+ }>
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+
{/* 处理未匹配的路由 */}
} />