import React from 'react'; import { Routes, Route, Navigate } from 'react-router-dom'; import PagePermissionGuard from './components/PagePermissionGuard'; import { usePagePermissions } from './hooks/usePagePermissions'; import Layout from './components/Layout'; import Dashboard from './pages/Dashboard'; import Overview from './pages/Overview'; import Operations from './pages/Operations'; import Monitoring from './pages/Monitoring'; import Finance from './pages/Finance'; import FinanceTransactionLogs from './pages/FinanceTransactionLogs'; import TokenHistoryPage from './pages/TokenHistory'; import TokenAnalytics from './pages/TokenAnalytics'; import SystemHealth from './pages/SystemHealth'; import UserProjectQuotaWrapper from './pages/UserProjectQuota'; import UserManagement from './pages/UserManagement'; import RoleManagement from './pages/RoleManagement'; import GoalfyMaxUsers from './pages/GoalfyMaxUsers'; import UserFeedback from './pages/UserFeedback'; import MessagePush from './pages/MessagePush'; import VendorModelPricing from './pages/VendorModelPricing'; import MCPProviderPricing from './pages/MCPProviderPricing'; import VmPricing from './pages/VmPricing'; import SystemConfigs from './pages/SystemConfigs'; import UserLevelConfigs from './pages/UserLevelConfigs'; import AuditLogs from './pages/AuditLogs'; import InviteCodes from './pages/InviteCodes'; import NoPermission from './pages/NoPermission'; import FinanceSandboxCosts from './pages/FinanceSandboxCosts'; import FinanceTokenUsage from './pages/FinanceTokenUsage'; import FinanceMcpUsage from './pages/FinanceMcpUsage'; import FinancePaymentRecords from './pages/FinancePaymentRecords'; import FinanceMcpAccountRechargeRecords from './pages/FinanceMcpAccountRechargeRecords'; import FinanceModelAccountRechargeRecords from './pages/FinanceModelAccountRechargeRecords'; function App() { const FirstAllowedRedirect: React.FC = () => { const { getAccessiblePages } = usePagePermissions(); const pages = getAccessiblePages(); const target = pages[0] || '/no-permission'; console.log('↪️ [Router] default redirect to:', target, 'pages=', pages); return ; }; return ( {/* 默认落地:首个可访问页面或无权限页 */} } /> {/* 仪表盘(受页面权限控制) */} }> } /> {/* 总览页面(受页面权限控制) */} }> } /> {/* 运营页面 - 嵌套路由(父路径受控) */} } /> }> } /> }> } /> }> } /> }> } /> }> } /> }> } /> {/* 监控页面 - 嵌套路由(父路径受控) */} } /> }> } /> }> } /> }> } /> {/* 财务页面(父路由重定向到子页面:用户流水) */} } /> }> } /> }> } /> }> } /> }> } /> }> } /> }> } /> }> } /> {/* 系统管理页面 - 嵌套路由 */} } /> }> } /> }> } /> }> } /> }> } /> }> } /> }> } /> }> } /> {/* 无权限页面 */} } /> {/* 404页面 */} } /> ); } export default App;