5.1 KiB
5.1 KiB
CONSENSUS - 前端 UI 项目共识文档
📋 需求描述
项目目标
在现有 FastAPI 项目根目录下创建一个独立的前端 UI 项目,为后端 API 提供简易的管理界面。
核心需求
- 无认证管理界面: 直接访问,无需登录注册
- 用户管理功能: 完整的用户 CRUD 操作界面
- 产品管理功能: 完整的产品 CRUD 操作界面
- 现代化 UI: 使用 Vue 3 + Element Plus 构建
🏗️ 技术实现方案
前端技术栈
- 框架: Vue 3 (Composition API)
- 构建工具: Vite
- UI 组件库: Element Plus
- HTTP 客户端: Axios
- 路由管理: Vue Router 4
- 开发语言: JavaScript (可后续升级 TypeScript)
后端集成
- API 基础地址:
http://localhost:8000/api/v1 - 跨域配置: 后端已启用 CORS,支持前端访问
- 数据格式: JSON
- 错误处理: 基于 HTTP 状态码
🏗️ 技术约束
环境要求
- Node.js >= 16.0.0
- npm 或 yarn 包管理器
- 现代浏览器支持 (Chrome/Firefox/Safari/Edge)
集成约束
- 前端开发服务器:
http://localhost:3000 - 后端 API 服务器:
http://localhost:8000 - 无需修改后端代码,纯前端项目
性能约束
- 首次加载时间 < 3秒
- 界面响应时间 < 500ms
- 支持现代浏览器,无需 IE 兼容
📐 任务边界
包含功能
✅ 项目初始化
- Vue 3 + Vite 项目搭建
- Element Plus UI 框架集成
- 基础路由配置
- Axios HTTP 客户端配置
✅ 用户管理模块
- 用户列表展示 (表格)
- 新增用户表单
- 编辑用户功能
- 删除用户功能
- 基础表单验证
✅ 产品管理模块
- 产品列表展示 (表格)
- 新增产品表单
- 编辑产品功能
- 删除产品功能
- 基础表单验证
✅ 界面布局
- 响应式侧边栏导航
- 顶部导航栏
- 内容主区域
- 基础页面样式
✅ 用户体验
- 操作成功/失败提示
- 加载状态指示
- 表单验证提示
- 确认删除对话框
不包含功能
❌ 用户认证和权限管理 ❌ 数据搜索和过滤 ❌ 分页处理 ❌ 批量操作 ❌ 数据导出功能 ❌ 实时数据更新 ❌ 复杂数据可视化 ❌ 移动端优化 ❌ 国际化支持
✅ 验收标准
功能验收
- 项目启动:
npm run dev成功启动,访问 http://localhost:3000 - 用户管理: 能够查看、新增、编辑、删除用户
- 产品管理: 能够查看、新增、编辑、删除产品
- API 集成: 所有操作能够正确调用后端 API
- 错误处理: 网络错误和业务错误有适当提示
- 界面美观: 使用 Element Plus 组件,界面整洁美观
技术验收
- 代码规范: 遵循 Vue 3 最佳实践
- 组件化: 合理的组件拆分和复用
- 响应式: 支持桌面端和平板端访问
- 性能: 页面加载和操作响应流畅
- 兼容性: 支持主流现代浏览器
质量验收
- 代码质量: 结构清晰,注释适当
- 错误处理: 完善的异常处理机制
- 用户体验: 操作流畅,反馈及时
- 可维护性: 代码模块化,易于扩展
📊 数据模型接口
用户 API
// 用户数据结构
interface User {
id: number
username: string
email: string
full_name?: string
is_active: boolean
}
// 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
// 产品数据结构
interface Product {
id: number
name: string
description?: string
price: number
stock: number
is_available: boolean
}
// API 端点
GET /api/v1/products/ // 获取产品列表
GET /api/v1/products/{id} // 获取单个产品
POST /api/v1/products/ // 创建产品
PUT /api/v1/products/{id} // 更新产品
DELETE /api/v1/products/{id} // 删除产品
🔧 开发约定
目录结构
frontend/
├── src/
│ ├── components/ # 通用组件
│ ├── views/ # 页面组件
│ ├── api/ # API 接口定义
│ ├── utils/ # 工具函数
│ ├── router/ # 路由配置
│ ├── styles/ # 全局样式
│ └── main.js # 应用入口
├── public/ # 静态资源
├── package.json # 项目配置
└── vite.config.js # 构建配置
代码规范
- 使用 Vue 3 Composition API
- 组件名使用 PascalCase
- 文件名使用 kebab-case
- 接口调用统一使用 async/await
- 错误处理使用 try-catch
提交规范
- 功能开发完成后进行提交
- 提交信息使用中文,描述清晰
- 不提交 node_modules 和构建产物
🚀 项目交付物
- 前端项目代码: 完整的 Vue 3 项目
- 开发文档: README.md 包含启动和开发说明
- 依赖配置: package.json 包含所有必要依赖
- 构建配置: vite.config.js 开发和构建配置
- 部署说明: 简单的部署指导