本项目是一个基于Next.js开发的虾皮电商平台专用ERP管理系统,提供订单管理、入库管理、物流管理等功能。
## 功能特点
- **入库管理**:管理产品入库流程,记录库存信息
- **订单管理**:处理订单,跟踪订单状态
- **待发货订单**:查看和处理待发货的订单
- **物流管理**:跟踪物流状态,管理物流信息
- **店铺管理**:管理多个店铺
- **系统设置**:配置系统参数
## 技术栈
- **前端**:Next.js 14, React 18, TailwindCSS
- **后端**:FastAPI (Python)
- **数据库**:MySQL
- **部署**:支持Docker容器部署
## 安装与启动
### 系统要求
- Node.js 18+
- PNPM (推荐) 或 NPM
- MySQL 8.0+
- Python 3.8+ (后端)
### 安装步骤
1. 克隆本仓库
```
git clone
cd erp-system
```
2. 安装前端依赖
```
pnpm install
```
3. 配置环境变量
创建`.env.local`文件并添加以下配置:
```
NODE_OPTIONS=--dns-result-order=ipv4first
HOSTNAME=127.0.0.1
HOST=127.0.0.1
NEXT_PUBLIC_HOST=127.0.0.1
NEXT_PUBLIC_API_BASE_URL=http://127.0.0.1:8000/api/v1
NEXT_TELEMETRY_DISABLED=1
NEXT_PRIVATE_HOST=127.0.0.1
```
4. 启动后端服务器
```
cd bak/backend
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
```
5. 启动前端开发服务器
```
pnpm dev
```
6. 访问系统
在浏览器中打开 [http://127.0.0.1:8090](http://127.0.0.1:8090)
### 使用快捷启动脚本
我们提供了多个批处理脚本,用于简化启动和修复过程:
- `修复并启动.bat`:修复Radix UI问题并启动前端
- `直接进入系统.bat`:跳过登录直接进入系统
- `直接进入系统完整版.bat`:同时启动前后端并跳过登录
## 项目结构
```
erp-system/
│
├── app/ # Next.js应用目录
│ ├── api/ # API路由和工具
│ ├── components/ # 公共组件
│ ├── context/ # 上下文管理
│ ├── inventory/ # 库存管理模块
│ ├── orders/ # 订单管理模块
│ ├── stocks/ # 入库管理模块(新)
│ ├── shipping/ # 物流管理模块
│ ├── stores/ # 店铺管理模块
│ └── settings/ # 系统设置模块
│
├── components/ # UI组件
│ ├── ui/ # UI基础组件
│ └── ... # 其他组件
│
├── lib/ # 工具库
│
├── bak/ # 备份和后端代码
│ └── backend/ # Python后端代码
│
├── public/ # 静态资源
│
└── ...
```
## API接口
系统主要使用以下API接口:
- `/api/v1/stocks/`:入库管理相关API
- `/api/v1/orders/`:订单管理相关API
- `/api/v1/stores/`:店铺管理相关API
- `/api/v1/shipping/`:物流管理相关API
## 常见问题解决
### React无限循环渲染问题
如遇到"Maximum update depth exceeded"错误,请运行以下修复脚本:
```
node fix-presence-issue.js
node fix-compose-refs.js
```
### 数据库连接问题
如遇到数据库连接问题,请运行:
```
修复数据库权限.bat
```
## 贡献指南
如果您想为项目贡献代码,请遵循以下步骤:
1. Fork本仓库
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 发起Pull Request