bw-mini-app/TODO.md

246 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 小程序重构开发计划
## 项目概述
将现有的图生图/图生视频小程序重构为模板卡片式首页 + 历史记录页面的架构。
## 开发阶段规划
### 阶段一:项目架构重构 (优先级:高)
#### 1.1 导航结构调整
- [ ] 修改 `app.config.ts` 添加tabBar配置
- 首页 (pages/home/index)
- 历史记录 (pages/history/index)
- [ ] 移除原有的 result 页面跳转逻辑
- [ ] 更新页面路由配置
#### 1.2 页面文件结构创建
```
src/pages/
├── home/ # 新首页 (模板卡片)
│ ├── index.tsx
│ ├── index.config.ts
│ └── index.css
├── history/ # 历史记录页面
│ ├── index.tsx
│ ├── index.config.ts
│ └── index.css
├── generate/ # 生成处理页面 (原index页面重构)
│ ├── index.tsx
│ ├── index.config.ts
│ └── index.css
└── result/ # 结果页面 (保留并优化)
├── index.tsx
├── index.config.ts
└── index.css
```
### 阶段二:数据存储和状态管理 (优先级:高)
#### 2.1 本地存储设计
- [ ] 设计历史记录数据结构
```typescript
interface HistoryRecord {
id: string
type: 'image-to-image' | 'image-to-video'
templateName: string
inputImage: string
outputResult: string | string[]
status: 'generating' | 'completed' | 'failed'
createTime: string
updateTime: string
}
```
#### 2.2 状态管理
- [x] 创建 `src/store/` 目录
- [x] 实现 Redux 状态管理(已从 Zustand 迁移到 Redux Toolkit
- [x] `src/reducers/history.ts` - 历史记录管理
- [x] `src/reducers/template.ts` - 模板配置管理
- [x] `src/actions/` - Action creators
- [x] `src/selectors/` - 选择器
- [x] `src/hooks/redux.ts` - 类型化 hooks
- [x] 添加数据持久化功能(通过 Taro Storage API
### 阶段三:模板卡片首页开发 (优先级:高)
#### 3.1 模板配置和数据
- [ ] 设计8个模板的配置数据
```typescript
interface Template {
id: string
name: string
description: string
type: 'image-to-image' | 'image-to-video'
thumbnail: string
category: string
}
```
- [ ] 添加模板缩略图资源
- [ ] 创建模板配置文件 `src/config/templates.ts`
#### 3.2 首页组件开发
- [ ] 创建模板卡片组件 `src/components/TemplateCard/`
- [ ] 支持2列网格布局
- [ ] 卡片hover效果
- [ ] 模板名称和描述显示
- [ ] 实现首页布局 `src/pages/home/index.tsx`
- [ ] 2列4行网格布局
- [ ] 模板卡片点击跳转到生成页面
- [ ] 添加首页样式 `src/pages/home/index.css`
### 阶段四:生成页面重构 (优先级:中)
#### 4.1 原index页面重构
- [ ]`src/pages/index/` 重命名为 `src/pages/generate/`
- [ ] 修改生成页面接收模板参数
```typescript
// 从路由参数获取模板信息
interface GeneratePageParams {
templateId: string
templateName: string
templateType: 'image-to-image' | 'image-to-video'
}
```
#### 4.2 生成流程优化
- [ ] 添加模板信息显示
- [ ] 优化上传和生成流程
- [ ] 添加生成进度到历史记录
- [ ] 生成完成后更新历史记录状态
### 阶段五:历史记录页面开发 (优先级:中)
#### 5.1 历史记录页面布局
- [ ] 创建历史记录列表组件 `src/components/HistoryList/`
- [ ] 实现记录卡片组件 `src/components/HistoryCard/`
- [ ] 显示模板名称、生成时间
- [ ] 生成状态指示器
- [ ] 结果预览图
#### 5.2 历史记录功能
- [ ] 实现历史记录分页加载
- [ ] 添加筛选功能 (按类型、状态)
- [ ] 添加删除记录功能
- [ ] 点击记录查看详细结果
### 阶段六:组件优化和重构 (优先级:中)
#### 6.1 现有组件适配
- [ ] 优化 `UploadButton` 组件
- [ ] 适配不同模板类型
- [ ] 添加模板上下文信息
- [ ] 优化 `LoadingOverlay` 组件
- [ ] 显示当前模板信息
- [ ] 显示生成进度百分比
- [ ] 优化 `ErrorOverlay` 组件
- [ ] 提供重试和返回首页选项
#### 6.2 新增通用组件
- [ ] 创建 `NavigationBar` 组件 (如需要自定义导航)
- [ ] 创建 `StatusBadge` 组件 (状态指示器)
- [ ] 创建 `ImagePreview` 组件 (图片预览)
### 阶段七:用户体验优化 (优先级:低)
#### 7.1 交互优化
- [ ] 添加页面间过渡动画
- [ ] 添加加载骨架屏
- [ ] 优化触摸反馈
- [ ] 添加操作确认对话框
#### 7.2 性能优化
- [ ] 实现图片懒加载
- [ ] 添加历史记录虚拟滚动
- [ ] 优化打包体积
- [ ] 添加缓存策略
### 阶段八:测试和文档 (优先级:低)
#### 8.1 单元测试 (遵循TDD原则)
- [ ] 为历史记录Store添加测试
- [ ] 为模板配置添加测试
- [ ] 为通用工具函数添加测试
- [ ] 为核心业务逻辑添加测试
#### 8.2 集成测试
- [ ] 测试页面跳转流程
- [ ] 测试数据持久化
- [ ] 测试错误处理
## 技术实现细节
### 路由配置更新
```typescript
// app.config.ts
export default defineAppConfig({
pages: [
'pages/home/index', // 新首页
'pages/generate/index', // 生成页面
'pages/result/index', // 结果页面
'pages/history/index' // 历史记录页面
],
tabBar: {
list: [
{
pagePath: 'pages/home/index',
text: '首页',
iconPath: 'assets/icons/home.png',
selectedIconPath: 'assets/icons/home-active.png'
},
{
pagePath: 'pages/history/index',
text: '历史记录',
iconPath: 'assets/icons/history.png',
selectedIconPath: 'assets/icons/history-active.png'
}
]
},
// ...其他配置
})
```
### 数据流设计
```
首页模板选择 → 生成页面(携带模板信息) → 生成过程记录到历史 → 完成后更新历史状态 → 历史页面展示
```
## 开发优先级说明
### 高优先级 (第1-3周)
- 导航结构和基础页面创建
- 数据存储结构设计
- 模板卡片首页实现
### 中优先级 (第4-6周)
- 生成页面重构
- 历史记录页面开发
- 组件优化
### 低优先级 (第7-8周)
- 用户体验优化
- 性能优化
- 测试覆盖
## 里程碑检查点
1. **Week 2**: 基础页面结构和导航完成
2. **Week 4**: 模板首页和基础功能完成
3. **Week 6**: 历史记录功能完整实现
4. **Week 8**: 完整功能测试和优化完成
## 注意事项
1. **遵循TDD开发模式** - 先写测试,后写实现
2. **保持代码简洁** - 每个文件不超过500行
3. **类型安全** - 严格使用TypeScript类型定义
4. **平台兼容** - 确保微信小程序、H5、APP多端兼容
5. **用户体验** - 保持流畅的交互体验
6. **错误处理** - 完善的错误边界和用户反馈
## 依赖和资源需求
- **图标资源**: tabBar图标、模板缩略图
- **样式主题**: 统一的设计风格和颜色规范
- **API适配**: 确保现有SDK接口兼容新的页面流程
- **存储方案**: 本地存储和可能的云端同步需求