# 开发计划与任务拆分 ## 1. 开发阶段概览 ``` Phase 1: 基础框架搭建 (2天) ↓ Phase 2: 首页核心功能 (3天) ★ 优先保证首页体验 ↓ Phase 3: 记录与历史 (2天) ↓ Phase 4: 统计与图表 (2天) ↓ Phase 5: AI助手与个人中心 (3天) ↓ Phase 6: 优化与测试 (2天) ``` --- ## 2. Phase 1: 基础框架搭建 (2天) ### 2.1 项目初始化 - [ ] 创建 uni-app 项目 (Vue3 + JavaScript) - [ ] 配置路径别名 (@/) - [ ] 创建目录结构 ### 2.2 基础配置 - [ ] 配置 pages.json (页面路由 + TabBar) - [ ] 配置全局样式 (暗色主题变量) - [ ] 配置环境变量 (开发/生产 API 地址) ### 2.3 核心模块 - [ ] 封装 request.js (请求拦截、Token管理、错误处理) - [ ] 封装 storage.js (本地存储工具) - [ ] 配置 Pinia stores 结构 - [ ] 实现登录流程 (wx.login + 后端认证) ### 2.4 公共组件 - [ ] 创建 Loading 组件 - [ ] 创建 Skeleton 骨架屏组件 - [ ] 创建 Button 组件 (主按钮/次按钮样式) - [ ] 创建 Card 组件 (卡片容器) **交付物**:可运行的空白项目,登录功能正常 --- ## 3. Phase 2: 首页核心功能 (3天) ★ > ⚠️ 首页是用户最常访问的页面,必须保证 < 500ms 首屏渲染 ### 3.1 Day 1: 页面结构 + 数据层 #### API 封装 - [ ] `api/smoke.js`: getDashboard() - [ ] `api/smoke.js`: getNextSmokeTime() - [ ] `api/profile.js`: getProfile() #### Store 设计 - [ ] `stores/dashboard.js`: 看板数据 + 缓存逻辑 - [ ] `stores/user.js`: 用户信息 + 登录状态 #### 页面结构 - [ ] 首页骨架屏 - [ ] 页面布局 (header + timer + cards + buttons) ### 3.2 Day 2: 核心组件 #### 计时器组件 (TimerRing) - [ ] Canvas 绘制进度环 - [ ] 时间格式化 (HH:MM:SS) - [ ] requestAnimationFrame 优化 - [ ] 页面可见性处理 (切后台暂停) #### 统计卡片 - [ ] 今日已抽卡片 (X/目标, 较昨日±N) - [ ] 烟瘾发作已抵抗卡片 #### 快捷按钮 - [ ] 记录抽烟按钮 → 弹出记录表单 - [ ] 想抽忍住了按钮 → 快速提交 ### 3.3 Day 3: 交互 + 优化 #### AI 提示卡片 - [ ] 延迟加载 (300ms后) - [ ] 可关闭 (本地存储关闭状态) - [ ] 下次建议时间显示 #### 性能优化 - [ ] 并行请求优化 - [ ] 骨架屏过渡动画 - [ ] 首屏性能埋点 #### 新用户引导 - [ ] 检测 profile.exists - [ ] 跳转引导页逻辑 **交付物**:完整可用的首页,首屏 < 500ms --- ## 4. Phase 3: 记录与历史 (2天) ### 4.1 Day 1: 记录表单 #### 记录弹窗组件 - [ ] 时间选择 (默认当前时间) - [ ] 原因标签选择 (压力大/无聊/社交/习惯等) - [ ] 备注输入 - [ ] 支数选择 (默认1) #### API 集成 - [ ] `POST /logs` 新增记录 - [ ] `POST /logs/resisted` 忍住记录 - [ ] 提交后刷新首页数据 ### 4.2 Day 2: 历史记录页 #### 列表页面 - [ ] 筛选 Tabs (全部/已抽烟/已忍住) - [ ] 时间线布局 - [ ] 按日期分组 - [ ] 下拉刷新 + 上拉加载 #### 记录卡片 - [ ] 类型图标 (抽烟/忍住) - [ ] 时间 + 原因标签 - [ ] 间隔时间显示 - [ ] 左滑操作 (编辑/删除) #### 编辑/删除 - [ ] 编辑弹窗 - [ ] 删除确认 - [ ] `PUT/DELETE /logs/:id` **交付物**:完整的记录流程,历史记录页可用 --- ## 5. Phase 4: 统计与图表 (2天) ### 5.1 Day 1: 统计页基础 #### 时间范围切换 - [ ] 周/月/年 Tabs - [ ] 日期范围计算 - [ ] 数据请求 (`GET /dashboard?start=&end=`) #### 吸烟趋势图 - [ ] 集成 uCharts / ECharts - [ ] 柱状图组件封装 - [ ] 数据格式转换 #### 每周洞察卡片 - [ ] AI 分析展示 (异步加载) ### 5.2 Day 2: 详细指标 #### 健康与储蓄卡片 - [ ] 节省金额计算 + 环形进度 - [ ] 肺部功能恢复 + 环形进度 #### 成就卡片 - [ ] 连续记录天数 - [ ] 已拒绝次数 #### 趋势对比 - [ ] 周同比变化计算 - [ ] 日均吸烟量 **交付物**:完整的统计页,图表正常显示 --- ## 6. Phase 5: AI助手与个人中心 (3天) ### 6.1 Day 1: AI 助手页 #### 阶段进度卡片 - [ ] 阶段计算逻辑 - [ ] 进度条展示 - [ ] 天数倒计时 #### 每日 AI 分析 - [ ] 对话式 UI - [ ] `GET /ai/advice` 集成 - [ ] 会员/广告解锁判断 #### 今日目标 - [ ] 任务列表 - [ ] 完成状态切换 (本地存储) ### 6.2 Day 2: 个人中心页 #### 用户信息 - [ ] 头像 + 昵称展示 - [ ] 目标戒烟日期 - [ ] 连续天数 #### 设置项 - [ ] 目标设定入口 - [ ] AI 计划调整入口 - [ ] 通知设置 - [ ] 会员解锁 #### 基础设置 - [ ] 作息时间设置 - [ ] 每包价格设置 ### 6.3 Day 3: 新用户引导 #### 引导页面 - [ ] 分步表单 (5步) - [ ] 进度指示器 - [ ] 动画过渡 #### 数据收集 - [ ] 日均吸烟量 - [ ] 烟龄 - [ ] 抽烟/戒烟动机 - [ ] 作息时间 #### 提交流程 - [ ] `PUT /profile` 提交 - [ ] 完成后跳转首页 **交付物**:AI助手页、个人中心页、引导流程完整 --- ## 7. Phase 6: 优化与测试 (2天) ### 7.1 Day 1: 性能优化 #### 首页优化 - [ ] 首屏时间 < 500ms 验证 - [ ] 图片懒加载 - [ ] 组件按需加载 #### 缓存优化 - [ ] 请求缓存策略检查 - [ ] 本地存储清理策略 #### 包体积 - [ ] 依赖分析 - [ ] 无用代码移除 - [ ] 分包加载配置 ### 7.2 Day 2: 测试与修复 #### 功能测试 - [ ] 全流程测试 (新用户 → 日常使用) - [ ] 边界情况测试 - [ ] 网络异常测试 #### UI 适配 - [ ] 不同机型测试 - [ ] 安全区域适配 #### Bug 修复 - [ ] 测试问题修复 - [ ] 体验优化 **交付物**:可发布的小程序版本 --- ## 8. 开发优先级 按重要性和依赖关系排序: ``` P0 (必须完成): ├── 登录认证 ├── 首页看板 (计时器 + 今日统计) ├── 记录抽烟/忍住 ├── 历史记录查看 └── 新用户引导 P1 (核心功能): ├── 统计图表 (周视图) ├── 下次建议时间 ├── 个人设置 └── 基础 AI 建议 P2 (增强功能): ├── 月/年统计 ├── AI 时间节点 ├── 会员/广告解锁 └── 通知提醒 P3 (未来迭代): ├── 成就系统 ├── 社交分享 └── 数据导出 ``` --- ## 9. 技术风险与应对 | 风险 | 影响 | 应对措施 | |------|------|----------| | 首页加载慢 | 用户体验差 | 骨架屏 + 并行请求 + 缓存 | | 图表库体积大 | 包体积超标 | 按需引入 + 分包 | | AI 接口慢 | 等待时间长 | 异步加载 + Loading状态 | | 网络不稳定 | 数据丢失 | 离线缓存 + 重试机制 | | 微信审核不通过 | 延期上线 | 提前了解审核规范 | --- ## 10. 验收标准 ### 首页 - [ ] 首屏渲染 < 500ms - [ ] 计时器实时更新 - [ ] 记录操作 < 3步完成 ### 记录 - [ ] 支持快速记录 - [ ] 支持编辑/删除 - [ ] 数据实时同步 ### 统计 - [ ] 图表正常显示 - [ ] 数据计算准确 - [ ] 切换流畅 ### 整体 - [ ] 无明显卡顿 - [ ] 无崩溃闪退 - [ ] 视觉符合设计稿