fastapi-demo/frontend/README.md

233 lines
6.5 KiB
Markdown
Raw Permalink Normal View History

# FastAPI Demo - 前端管理界面
基于 Vue 3 + Element Plus 构建的简易管理后台,为 FastAPI Demo 项目提供用户友好的管理界面。
## 🚀 快速开始
### 环境要求
- Node.js >= 16.0.0
- npm 或 yarn
- 后端 FastAPI 服务运行在 `http://localhost:8000`
### 安装依赖
```bash
# 进入前端目录
cd frontend
# 安装依赖
npm install
```
### 开发环境启动
```bash
# 启动开发服务器
npm run dev
# 访问地址http://localhost:3000
```
### 构建生产版本
```bash
# 构建生产版本
npm run build
# 预览构建结果
npm run preview
```
## 📋 功能特性
### 核心功能
- 🏠 **仪表板**: 系统概览和快速导航
- 👥 **用户管理**: 完整的用户 CRUD 操作
- 📦 **产品管理**: 完整的产品 CRUD 操作
- 🔗 **API 集成**: 与 FastAPI 后端无缝对接
### 技术特性
-**现代化界面**: Element Plus 组件库
- 📱 **响应式设计**: 支持桌面端和平板端
- 🛡️ **表单验证**: 完善的输入验证机制
- 💬 **用户反馈**: 统一的成功/错误消息提示
- 🔄 **错误处理**: 网络异常和业务错误处理
## 🏗️ 项目结构
```
frontend/
├── public/ # 静态资源
├── src/
│ ├── api/ # API 接口定义
│ │ ├── user.js # 用户相关API
│ │ └── product.js # 产品相关API
│ ├── components/ # 组件库
│ │ ├── AppHeader.vue # 头部组件
│ │ ├── AppSidebar.vue # 侧边栏组件
│ │ ├── DataTable.vue # 通用数据表格
│ │ ├── FormDialog.vue # 通用表单对话框
│ │ ├── UserForm.vue # 用户表单
│ │ └── ProductForm.vue # 产品表单
│ ├── layouts/ # 布局组件
│ │ └── AppLayout.vue # 主布局
│ ├── views/ # 页面组件
│ │ ├── Dashboard.vue # 仪表板
│ │ ├── UserManagement.vue # 用户管理
│ │ └── ProductManagement.vue # 产品管理
│ ├── router/ # 路由配置
│ │ └── index.js # 路由定义
│ ├── utils/ # 工具函数
│ │ └── request.js # Axios 配置
│ ├── App.vue # 根组件
│ └── main.js # 应用入口
├── index.html # HTML 模板
├── package.json # 项目配置
├── vite.config.js # 构建配置
└── README.md # 项目说明
```
## 🔌 API 接口
### 用户管理 API
- `GET /api/v1/users/` - 获取用户列表
- `GET /api/v1/users/{id}` - 获取单个用户
- `POST /api/v1/users/` - 创建用户
- `PUT /api/v1/users/{id}` - 更新用户
- `DELETE /api/v1/users/{id}` - 删除用户
### 产品管理 API
- `GET /api/v1/products/` - 获取产品列表
- `GET /api/v1/products/{id}` - 获取单个产品
- `POST /api/v1/products/` - 创建产品
- `PUT /api/v1/products/{id}` - 更新产品
- `DELETE /api/v1/products/{id}` - 删除产品
## 🛠️ 技术栈
### 核心框架
- **Vue 3**: 渐进式 JavaScript 框架
- **Vite**: 快速构建工具
- **Vue Router 4**: 官方路由管理器
### UI 组件库
- **Element Plus**: 基于 Vue 3 的组件库
- **Element Plus Icons**: 图标库
### HTTP 客户端
- **Axios**: Promise based HTTP 客户端
### 开发工具
- **Vite**: 开发服务器和构建工具
- **ES6+**: 现代 JavaScript 语法
## ⚙️ 配置说明
### Vite 配置 (`vite.config.js`)
```javascript
export default {
server: {
port: 3000, // 开发服务器端口
proxy: {
'/api': {
target: 'http://localhost:8000', // 后端 API 地址
changeOrigin: true
}
}
}
}
```
### API 配置 (`src/utils/request.js`)
- 基础 URL: `/api`
- 请求超时: 10 秒
- 自动错误处理和消息提示
## 🎯 使用指南
### 启动项目
1. 确保后端 FastAPI 服务已启动 (`http://localhost:8000`)
2. 安装前端依赖: `npm install`
3. 启动开发服务器: `npm run dev`
4. 浏览器访问: `http://localhost:3000`
### 功能操作
1. **仪表板**: 查看系统概览,快速导航到管理页面
2. **用户管理**:
- 查看用户列表
- 点击"新增用户"创建用户
- 点击"编辑"修改用户信息
- 点击"删除"删除用户(需确认)
3. **产品管理**:
- 查看产品列表
- 点击"新增产品"创建产品
- 点击"编辑"修改产品信息
- 点击"删除"删除产品(需确认)
### 表单验证
- **用户表单**:
- 用户名: 必填3-20 个字符
- 邮箱: 必填,邮箱格式验证
- 全名: 可选
- **产品表单**:
- 产品名称: 必填2-50 个字符
- 价格: 必填数字类型≥0
- 库存: 必填整数类型≥0
- 描述: 可选
## 🚨 注意事项
1. **后端依赖**: 前端需要后端 FastAPI 服务正常运行
2. **CORS 配置**: 后端已配置 CORS允许前端跨域访问
3. **数据持久化**: 数据通过后端 API 存储到 MySQL 数据库
4. **无认证系统**: 当前版本无需登录,直接访问管理功能
5. **错误处理**: 网络错误和服务器错误会自动显示错误消息
## 🔧 开发说明
### 添加新页面
1.`src/views/` 创建新的 Vue 组件
2.`src/router/index.js` 添加路由配置
3.`src/components/AppSidebar.vue` 添加导航菜单项
### 添加新 API
1.`src/api/` 创建对应的 API 服务文件
2. 使用 `src/utils/request.js` 的 axios 实例
3. 遵循 RESTful API 设计规范
### 组件复用
- `DataTable`: 通用数据表格组件
- `FormDialog`: 通用表单对话框组件
- 新增表单可参考 `UserForm.vue``ProductForm.vue`
## 📈 性能优化
- ✅ 路由懒加载
- ✅ 组件按需引入
- ✅ 代码分割
- ✅ 生产环境优化
## 🐛 常见问题
**Q: 页面显示"网络连接异常"**
A: 请确认后端 FastAPI 服务是否正常运行在 `http://localhost:8000`
**Q: 新增/编辑操作失败**
A: 检查表单输入是否符合验证规则,查看浏览器控制台错误信息
**Q: 页面样式异常**
A: 确认 Element Plus 样式文件是否正确加载
## 📞 技术支持
如有问题,请查看:
1. 浏览器开发者工具控制台错误信息
2. 后端 FastAPI 服务日志
3. 网络请求响应状态
---
**开发团队**: FastAPI Demo Project
**创建时间**: 2025-09-28
**技术栈**: Vue 3 + Element Plus + Vite