fastapi-demo/frontend/README.md

233 lines
6.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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