fastapi-demo/docs/frontend-ui/TASK_frontend-ui.md

8.7 KiB

TASK - 前端 UI 项目任务分解

📋 任务依赖关系图

graph TD
    T1[T1: 项目初始化] --> T2[T2: 基础配置]
    T2 --> T3[T3: 布局组件]
    T2 --> T4[T4: API服务层]
    T3 --> T5[T5: 路由配置]
    T4 --> T6[T6: 通用组件]
    T5 --> T7[T7: 用户管理页面]
    T5 --> T8[T8: 产品管理页面]
    T6 --> T7
    T6 --> T8
    T7 --> T9[T9: 功能测试]
    T8 --> T9
    T9 --> T10[T10: 项目文档]

    style T1 fill:#e1f5fe
    style T2 fill:#e1f5fe
    style T3 fill:#fff3e0
    style T4 fill:#fff3e0
    style T5 fill:#f3e5f5
    style T6 fill:#f3e5f5
    style T7 fill:#e8f5e8
    style T8 fill:#e8f5e8
    style T9 fill:#fff9c4
    style T10 fill:#ffebee

📝 原子任务详细分解

T1: 项目初始化

复杂度: 简单 | 预估时间: 10分钟

输入契约:

  • 前置依赖: Node.js 环境已安装
  • 输入数据: 项目目录名称 frontend
  • 环境依赖: npm 或 yarn 包管理器

输出契约:

  • 输出数据: Vue 3 + Vite 项目基础结构
  • 交付物: frontend/ 目录及基础文件
  • 验收标准:

实现约束:

  • 技术栈: Vue 3 + Vite
  • 接口规范: 使用 npm create vue@latest 脚手架
  • 质量要求: 项目结构符合 Vue 3 最佳实践

依赖关系:

  • 后置任务: T2
  • 并行任务: 无

T2: 基础配置

复杂度: 简单 | 预估时间: 15分钟

输入契约:

  • 前置依赖: T1 完成
  • 输入数据: Element Plus、Axios 依赖包
  • 环境依赖: npm 包管理器

输出契约:

  • 输出数据: 完整的依赖配置和基础设置
  • 交付物:
    • package.json 更新依赖
    • vite.config.js 配置代理
    • main.js 引入 Element Plus
  • 验收标准:
    • 所有依赖安装成功
    • Element Plus 组件可正常使用
    • API 代理配置生效

实现约束:

  • 技术栈: Element Plus, Axios, Vue Router
  • 接口规范: Vite 代理配置指向 localhost:8000
  • 质量要求: 无多余依赖,配置精简

依赖关系:

  • 后置任务: T3, T4
  • 并行任务: 无

T3: 布局组件

复杂度: 中等 | 预估时间: 30分钟

输入契约:

  • 前置依赖: T2 完成
  • 输入数据: Element Plus Layout 组件
  • 环境依赖: Vue 3 Composition API

输出契约:

  • 输出数据: 完整的应用布局结构
  • 交付物:
    • src/layouts/AppLayout.vue - 主布局
    • src/components/AppHeader.vue - 头部组件
    • src/components/AppSidebar.vue - 侧边栏组件
  • 验收标准:
    • 布局结构完整显示
    • 侧边栏导航可用
    • 响应式设计正常

实现约束:

  • 技术栈: Vue 3 + Element Plus Layout
  • 接口规范: 使用 el-container 系列组件
  • 质量要求: 代码组件化,样式美观

依赖关系:

  • 后置任务: T5
  • 并行任务: T4

T4: API服务层

复杂度: 中等 | 预估时间: 25分钟

输入契约:

  • 前置依赖: T2 完成
  • 输入数据: 后端 API 端点规范
  • 环境依赖: Axios HTTP 客户端

输出契约:

  • 输出数据: 统一的 API 服务接口
  • 交付物:
    • src/utils/request.js - Axios 配置
    • src/api/user.js - 用户 API 服务
    • src/api/product.js - 产品 API 服务
  • 验收标准:
    • API 请求拦截器配置正确
    • 错误处理统一处理
    • 所有 CRUD 接口封装完成

实现约束:

  • 技术栈: Axios
  • 接口规范: RESTful API 设计
  • 质量要求: 错误处理完善,接口统一

依赖关系:

  • 后置任务: T6
  • 并行任务: T3

T5: 路由配置

复杂度: 简单 | 预估时间: 15分钟

输入契约:

  • 前置依赖: T3 完成
  • 输入数据: 页面路由规划
  • 环境依赖: Vue Router 4

输出契约:

  • 输出数据: 完整的路由配置
  • 交付物:
    • src/router/index.js - 路由配置
    • 路由组件懒加载设置
  • 验收标准:
    • 所有页面路由正常跳转
    • 侧边栏导航与路由同步
    • 默认路由重定向正确

实现约束:

  • 技术栈: Vue Router 4
  • 接口规范: 路由懒加载
  • 质量要求: 路由结构清晰

依赖关系:

  • 后置任务: T7, T8
  • 并行任务: 无

T6: 通用组件

复杂度: 中等 | 预估时间: 40分钟

输入契约:

  • 前置依赖: T4 完成
  • 输入数据: 通用组件需求规范
  • 环境依赖: Element Plus 组件库

输出契约:

  • 输出数据: 可复用的通用组件
  • 交付物:
    • src/components/DataTable.vue - 数据表格
    • src/components/FormDialog.vue - 表单对话框
    • src/components/ConfirmDialog.vue - 确认对话框
  • 验收标准:
    • 组件支持 props 传入配置
    • 组件事件定义完整
    • 组件样式美观统一

实现约束:

  • 技术栈: Vue 3 + Element Plus
  • 接口规范: Props/Emit 接口设计
  • 质量要求: 高复用性,低耦合

依赖关系:

  • 后置任务: T7, T8
  • 并行任务: 无

T7: 用户管理页面

复杂度: 复杂 | 预估时间: 45分钟

输入契约:

  • 前置依赖: T5, T6 完成
  • 输入数据: 用户数据模型和 API 接口
  • 环境依赖: 通用组件和 API 服务

输出契约:

  • 输出数据: 完整的用户管理功能
  • 交付物:
    • src/views/UserManagement.vue - 用户管理页面
    • src/components/UserForm.vue - 用户表单组件
    • src/components/UserList.vue - 用户列表组件
  • 验收标准:
    • 用户列表正常显示
    • 新增用户功能正常
    • 编辑用户功能正常
    • 删除用户功能正常
    • 表单验证完整

实现约束:

  • 技术栈: Vue 3 + Element Plus
  • 接口规范: 使用封装的 API 服务
  • 质量要求: 用户体验流畅,错误处理完善

依赖关系:

  • 后置任务: T9
  • 并行任务: T8

T8: 产品管理页面

复杂度: 复杂 | 预估时间: 45分钟

输入契约:

  • 前置依赖: T5, T6 完成
  • 输入数据: 产品数据模型和 API 接口
  • 环境依赖: 通用组件和 API 服务

输出契约:

  • 输出数据: 完整的产品管理功能
  • 交付物:
    • src/views/ProductManagement.vue - 产品管理页面
    • src/components/ProductForm.vue - 产品表单组件
    • src/components/ProductList.vue - 产品列表组件
  • 验收标准:
    • 产品列表正常显示
    • 新增产品功能正常
    • 编辑产品功能正常
    • 删除产品功能正常
    • 表单验证完整

实现约束:

  • 技术栈: Vue 3 + Element Plus
  • 接口规范: 使用封装的 API 服务
  • 质量要求: 用户体验流畅,错误处理完善

依赖关系:

  • 后置任务: T9
  • 并行任务: T7

T9: 功能测试

复杂度: 中等 | 预估时间: 20分钟

输入契约:

  • 前置依赖: T7, T8 完成
  • 输入数据: 完整的应用功能
  • 环境依赖: 前后端应用运行环境

输出契约:

  • 输出数据: 测试结果报告
  • 交付物: 功能测试验证清单
  • 验收标准:
    • 所有 CRUD 操作正常
    • 错误场景处理正确
    • 界面交互流畅
    • 跨浏览器兼容性验证

实现约束:

  • 技术栈: 手动功能测试
  • 接口规范: 覆盖所有用户操作场景
  • 质量要求: 无明显 bug 和用户体验问题

依赖关系:

  • 后置任务: T10
  • 并行任务: 无

T10: 项目文档

复杂度: 简单 | 预估时间: 15分钟

输入契约:

  • 前置依赖: T9 完成
  • 输入数据: 完整的项目代码和功能
  • 环境依赖: 项目运行环境

输出契约:

  • 输出数据: 完整的项目文档
  • 交付物:
    • frontend/README.md - 项目说明文档
    • 启动和部署指南
    • 项目结构说明
  • 验收标准:
    • 文档内容完整准确
    • 启动步骤可执行
    • 部署说明清晰

实现约束:

  • 技术栈: Markdown 文档
  • 接口规范: 清晰的文档结构
  • 质量要求: 信息准确,易于理解

依赖关系:

  • 后置任务: 无
  • 并行任务: 无

📊 任务复杂度统计

复杂度 任务数量 预估时间
简单 4个 55分钟
中等 4个 130分钟
复杂 2个 90分钟
总计 10个 275分钟

🔄 并行执行策略

阶段1: 基础设施 (顺序执行)

  • T1 → T2

阶段2: 核心组件 (并行执行)

  • T3 ‖ T4

阶段3: 功能开发 (顺序执行)

  • T5 → T6

阶段4: 页面开发 (并行执行)

  • T7 ‖ T8

阶段5: 测试交付 (顺序执行)

  • T9 → T10

⚠️ 风险点识别

  1. T1 风险: Node.js 环境配置问题

    • 缓解策略: 提前确认环境版本
  2. T4 风险: 后端 API 连接问题

    • 缓解策略: 优先测试简单 API 调用
  3. T7/T8 风险: 复杂表单验证逻辑

    • 缓解策略: 分步实现,优先核心功能
  4. T9 风险: 跨浏览器兼容性问题

    • 缓解策略: 重点测试主流浏览器