feat(frontend): add frontend-v2 modular architecture (Task 17)

- React 19 + TypeScript + Vite
- Module registration mechanism with dynamic loading
- Permission management system (basic/advanced/premium)
- Route guards for access control
- Error boundaries for module isolation
- 6 business module placeholders (AIA/ASL/PKB/DC/SSA/ST)
- Top navigation layout
- Tailwind CSS 3 + Ant Design 5
This commit is contained in:
2025-11-16 15:43:17 +08:00
parent 5579ffa78e
commit 11325f88a7
39 changed files with 8051 additions and 0 deletions

59
frontend-v2/src/App.tsx Normal file
View File

@@ -0,0 +1,59 @@
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
import { ConfigProvider } from 'antd'
import zhCN from 'antd/locale/zh_CN'
import { PermissionProvider } from './framework/permission'
import { RouteGuard } from './framework/router'
import MainLayout from './framework/layout/MainLayout'
import HomePage from './pages/HomePage'
import { MODULES } from './framework/modules/moduleRegistry'
/**
* 应用根组件
*
* @description
* - ConfigProvider: Ant Design国际化配置
* - PermissionProvider: 权限管理系统Week 2 Day 7新增
* - RouteGuard: 路由守卫保护Week 2 Day 7新增
* - BrowserRouter: 前端路由
*
* @version Week 2 Day 7 - 任务17完整版权限系统
*/
function App() {
return (
<ConfigProvider locale={zhCN}>
{/* 权限提供者:提供全局权限状态 */}
<PermissionProvider>
<BrowserRouter>
<Routes>
<Route path="/" element={<MainLayout />}>
{/* 首页 */}
<Route index element={<HomePage />} />
{/* 动态加载模块路由 - 应用路由守卫保护 ⭐ */}
{MODULES.map(module => (
<Route
key={module.id}
path={`${module.path}/*`}
element={
// 为每个模块添加路由守卫
<RouteGuard
requiredVersion={module.requiredVersion}
moduleName={module.name}
>
<module.component />
</RouteGuard>
}
/>
))}
{/* 404重定向 */}
<Route path="*" element={<Navigate to="/" replace />} />
</Route>
</Routes>
</BrowserRouter>
</PermissionProvider>
</ConfigProvider>
)
}
export default App