6.9 KiB
6.9 KiB
开发计划与任务拆分
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步完成
记录
- 支持快速记录
- 支持编辑/删除
- 数据实时同步
统计
- 图表正常显示
- 数据计算准确
- 切换流畅
整体
- 无明显卡顿
- 无崩溃闪退
- 视觉符合设计稿