src/
├── assets/ # 静态资源
│ └── react.svg
├── components/ # 通用组件
│ └── common/
│ ├── PermissionButton.tsx # 权限按钮
│ └── PermissionWrapper.tsx # 权限包装器
├── config/ # 配置文件
│ ├── api.ts # API 配置(前缀、超时等)
│ └── menuIds.ts # 菜单 ID 常量
├── contexts/ # React Context
│ └── AuthContext.tsx # 权限上下文
├── hooks/ # 自定义 Hooks
│ └── usePermission.ts # 权限检查 Hook
├── layouts/ # 布局组件
│ ├── Header.tsx # 顶部导航
│ ├── MainLayout.tsx # 主布局
│ └── Sidebar.tsx # 侧边栏
├── pages/ # 页面组件
│ └── ContentPage.tsx # 内容页面
├── services/ # API 服务层
│ ├── api.ts # API 统一导出
│ ├── BaseService.ts # 基础服务类
│ ├── index.ts # 服务总导出
│ └── modules/ # 业务模块
│ ├── content.ts # 内容管理
│ ├── role.ts # 角色管理
│ ├── system.ts # 系统管理
│ └── user.ts # 用户管理
├── types/ # 类型定义
│ ├── axios.d.ts # Axios 类型
│ └── menu.ts # 菜单类型
├── utils/ # 工具函数
│ ├── http/ # HTTP 请求封装
│ │ ├── Axios.ts # Axios 封装类
│ │ ├── axiosTransform.ts # 转换器接口
│ │ ├── checkStatus.ts # 状态码检查
│ │ ├── helper.ts # 辅助函数
│ │ └── index.ts # 主入口
│ ├── message.ts # 消息提示
│ ├── sign.ts # 请求签名
│ └── tenant.ts # 多租户管理
├── App.css
├── App.tsx # 应用根组件
├── index.css
└── main.tsx # 应用入口
docs/ # 文档目录
├── API_GUIDE.md # API 使用指南
├── AXIOS_MIGRATION.md # Axios 迁移说明
├── HTTP_COMPARISON.md # HTTP 封装对比
├── PERMISSION_GUIDE.md # 权限系统指南
├── PROJECT_STRUCTURE.md # 项目结构说明(本文件)
├── PROXY_GUIDE.md # 代理配置指南
└── QUICK_START.md # 快速开始
public/ # 公共资源
└── vite.svg
.env.example # 环境变量示例
.env.development # 开发环境配置
.env.production # 生产环境配置
vite.config.ts # Vite 配置
tsconfig.json # TypeScript 配置
package.json # 项目依赖
src/utils/http/)完整复刻 JeecgBoot 的 axios 封装:
src/services/)按业务模块组织的 API 服务:
src/contexts/, src/hooks/, src/components/common/)完整的权限管理方案:
src/layouts/)三栏布局结构:
src/utils/)src/config/)layouts/ - 布局组件pages/ - 页面组件components/common/ - 通用组件services/api.ts - 系统级 APIservices/modules/ - 按业务模块组织UserList.tsx)userService.ts)API_PREFIX)src/types/ 目录# .env.development
VITE_API_BASE_URL=http://localhost:8080
# .env.production
VITE_API_BASE_URL=https://api.example.com
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
# 构建生产版本
pnpm build
# 预览生产版本
pnpm preview
# 代码检查
pnpm lint