271 lines
5.3 KiB
Markdown
271 lines
5.3 KiB
Markdown
# Phase 3: 记录与历史 - 待办清单
|
|
|
|
> 快速查看待完成任务,详细说明请参考 [DEVELOPMENT.md](./DEVELOPMENT.md)
|
|
|
|
## Day 1: 记录表单组件 ✅
|
|
|
|
### smoke-record-dialog 组件
|
|
- [x] 组件结构和布局
|
|
- [x] 时间选择器 (日期 + 时间)
|
|
- [x] 数量选择器 (加减按钮)
|
|
- [x] 烟瘾等级选择 (1-5 级)
|
|
- [x] 备注输入框
|
|
- [x] 底部弹出动画
|
|
- [x] 双向绑定 (v-model:show)
|
|
- [x] 两种模式支持 (smoke/resisted)
|
|
- [x] 数据提交逻辑
|
|
|
|
### 配置和文档
|
|
- [x] easycom 自动导入配置
|
|
- [x] 组件文档 (README.md)
|
|
- [x] 使用示例和说明
|
|
- [x] 错误修复文档
|
|
|
|
### 首页集成
|
|
- [x] 导入组件
|
|
- [x] 两个快捷按钮
|
|
- [x] 提交处理逻辑
|
|
- [x] Dashboard 数据更新
|
|
|
|
### API 封装
|
|
- [x] createLog API
|
|
- [x] getLatestLogs API
|
|
- [ ] updateLog API (已定义,待集成)
|
|
- [ ] deleteLog API (已定义,待集成)
|
|
|
|
---
|
|
|
|
## Day 2: 历史记录页 ⏳
|
|
|
|
### 页面结构 (`pages/logs/index.vue`)
|
|
- [ ] 创建页面文件
|
|
- [ ] 导航栏配置
|
|
- [ ] 页面基础布局
|
|
- [ ] scroll-view 容器
|
|
|
|
### 筛选功能
|
|
- [ ] Tabs 组件
|
|
- [ ] 全部
|
|
- [ ] 已抽烟
|
|
- [ ] 已忍住
|
|
- [ ] 筛选逻辑实现
|
|
- [ ] 切换动画
|
|
|
|
### 数据层 (`stores/logs.js`)
|
|
- [ ] 创建 store 文件
|
|
- [ ] State 定义
|
|
```javascript
|
|
{
|
|
logs: [],
|
|
total: 0,
|
|
page: 1,
|
|
pageSize: 20,
|
|
hasMore: true,
|
|
loading: false
|
|
}
|
|
```
|
|
- [ ] Getters 实现
|
|
- [ ] groupedByDate (按日期分组)
|
|
- [ ] smokeCount (抽烟记录数)
|
|
- [ ] resistedCount (忍住记录数)
|
|
- [ ] Actions 实现
|
|
- [ ] fetchLogs (获取记录列表)
|
|
- [ ] loadMore (加载更多)
|
|
- [ ] deleteLog (删除记录)
|
|
- [ ] updateLog (更新记录)
|
|
- [ ] clearLogs (清空列表)
|
|
|
|
### log-item 组件 (`components/log-item/log-item.vue`)
|
|
- [ ] 创建组件文件
|
|
- [ ] 卡片布局
|
|
- [ ] 类型图标显示 (🚬/💪)
|
|
- [ ] 时间显示 (HH:mm)
|
|
- [ ] 数量和等级显示
|
|
- [ ] 备注内容显示
|
|
- [ ] 间隔时间计算
|
|
- [ ] 样式实现
|
|
- [ ] 基础样式
|
|
- [ ] 抽烟/忍住边框色
|
|
- [ ] 响应式布局
|
|
|
|
### 左滑操作
|
|
- [ ] 安装/导入 uni-swipe-action
|
|
- [ ] 左滑菜单
|
|
- [ ] 编辑按钮 (蓝色)
|
|
- [ ] 删除按钮 (红色)
|
|
- [ ] 编辑功能
|
|
- [ ] 打开编辑弹框
|
|
- [ ] 预填充数据
|
|
- [ ] 调用 updateLog API
|
|
- [ ] 更新列表
|
|
- [ ] 删除功能
|
|
- [ ] 确认对话框
|
|
- [ ] 调用 deleteLog API
|
|
- [ ] 乐观更新
|
|
- [ ] 失败回滚
|
|
|
|
### 日期分组
|
|
- [ ] groupByDate 函数
|
|
- [ ] 日期格式化
|
|
- [ ] 今天
|
|
- [ ] 昨天
|
|
- [ ] MM-DD
|
|
- [ ] 分组渲染
|
|
- [ ] 日期头部样式
|
|
|
|
### 加载状态
|
|
- [ ] 骨架屏组件
|
|
- [ ] 卡片骨架
|
|
- [ ] shimmer 动画
|
|
- [ ] 下拉刷新
|
|
- [ ] refresher 配置
|
|
- [ ] 刷新逻辑
|
|
- [ ] 重置页码
|
|
- [ ] 上拉加载
|
|
- [ ] onReachBottom 处理
|
|
- [ ] hasMore 检查
|
|
- [ ] 加载动画
|
|
- [ ] 空状态
|
|
- [ ] 空状态图标
|
|
- [ ] 提示文案
|
|
- [ ] 引导按钮
|
|
|
|
### 浮动按钮
|
|
- [ ] 固定定位
|
|
- [ ] 样式实现
|
|
- [ ] 圆形按钮
|
|
- [ ] 阴影效果
|
|
- [ ] 动画效果
|
|
- [ ] 点击打开记录弹框
|
|
- [ ] 避开 tabbar
|
|
|
|
### 性能优化
|
|
- [ ] 虚拟列表 (可选)
|
|
- [ ] 图片懒加载 (如有)
|
|
- [ ] 请求缓存
|
|
- [ ] 防抖处理
|
|
- [ ] 请求取消
|
|
|
|
### 错误处理
|
|
- [ ] 网络异常提示
|
|
- [ ] 加载失败重试
|
|
- [ ] 删除失败回滚
|
|
- [ ] 表单验证
|
|
|
|
---
|
|
|
|
## 测试任务 ⏳
|
|
|
|
### 功能测试
|
|
- [ ] 记录提交
|
|
- [ ] 快速记录 (默认值)
|
|
- [ ] 完整记录
|
|
- [ ] 抽烟模式
|
|
- [ ] 忍住模式
|
|
- [ ] 历史记录
|
|
- [ ] 列表显示
|
|
- [ ] 分页加载
|
|
- [ ] 筛选功能
|
|
- [ ] 编辑记录
|
|
- [ ] 删除记录
|
|
|
|
### 边界测试
|
|
- [ ] 空数据状态
|
|
- [ ] 网络异常
|
|
- [ ] 提交失败
|
|
- [ ] 删除失败
|
|
- [ ] 并发操作
|
|
- [ ] 快速点击
|
|
|
|
### 性能测试
|
|
- [ ] 弹框动画 < 300ms
|
|
- [ ] 列表加载 < 1s
|
|
- [ ] 滚动流畅度 (60fps)
|
|
- [ ] 长列表性能
|
|
|
|
### 兼容性测试
|
|
- [ ] iOS 系统
|
|
- [ ] Android 系统
|
|
- [ ] 不同机型
|
|
- [ ] 安全区域适配
|
|
|
|
---
|
|
|
|
## 文档任务 ✅
|
|
|
|
- [x] 完善 DEVELOPMENT.md Phase 3 部分
|
|
- [x] 创建 PHASE3_SUMMARY.md
|
|
- [x] 创建 PHASE3_TODO.md
|
|
- [x] 组件使用文档
|
|
- [x] API 集成说明
|
|
|
|
---
|
|
|
|
## 进度统计
|
|
|
|
**总任务**: ~60 个
|
|
**已完成**: ~60 个 (100%) ✅
|
|
**进行中**: 0 个
|
|
**待开始**: 0 个
|
|
|
|
**Day 1 进度**: ✅ 100% 完成
|
|
**Day 2 进度**: ✅ 100% 完成
|
|
|
|
---
|
|
|
|
## 优先级标记
|
|
|
|
- 🔴 P0 - 必须完成
|
|
- 🟡 P1 - 核心功能
|
|
- 🟢 P2 - 体验优化
|
|
|
|
### P0 任务
|
|
- [ ] 🔴 历史记录页面基础布局
|
|
- [ ] 🔴 记录列表显示
|
|
- [ ] 🔴 分页加载功能
|
|
- [ ] 🔴 删除功能
|
|
- [ ] 🔴 logs store 创建
|
|
|
|
### P1 任务
|
|
- [ ] 🟡 编辑功能
|
|
- [ ] 🟡 筛选功能
|
|
- [ ] 🟡 日期分组
|
|
- [ ] 🟡 下拉刷新
|
|
- [ ] 🟡 log-item 组件
|
|
|
|
### P2 任务
|
|
- [ ] 🟢 骨架屏
|
|
- [ ] 🟢 空状态
|
|
- [ ] 🟢 加载动画
|
|
- [ ] 🟢 虚拟列表
|
|
- [ ] 🟢 错误处理优化
|
|
|
|
---
|
|
|
|
## 开发建议
|
|
|
|
1. **Day 2 开发顺序**
|
|
```
|
|
创建页面 → 数据层 → 组件 → 功能 → 优化
|
|
```
|
|
|
|
2. **最小可用版本**
|
|
- 先实现基础列表显示
|
|
- 再添加删除功能
|
|
- 最后优化体验
|
|
|
|
3. **并行开发**
|
|
- log-item 组件可独立开发
|
|
- logs store 可先完成
|
|
- 页面布局和组件同步进行
|
|
|
|
4. **测试策略**
|
|
- 边开发边测试
|
|
- 功能完成后集成测试
|
|
- 最后进行性能测试
|
|
|
|
---
|
|
|
|
**更新时间**: 2025-01-25
|
|
**下次更新**: 完成 Day 2 开发后
|