Files
happy-life-star/.kiro/specs/life-script-frontend/tasks.md
T
2025-12-22 16:38:06 +08:00

293 lines
10 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.
# Implementation Plan: Life Script Frontend
## Overview
本实现计划将 PncyssD 原型设计完整还原为基于 React + Tailwind CSS + Radix UI 的现代化前端应用。采用增量开发方式,从项目初始化开始,逐步构建基础组件、页面和功能模块。
## Tasks
- [x] 1. 项目初始化与基础配置
- [x] 1.1 初始化 Vite + React 项目
- 在 life-script 目录创建 Vite React 项目
- 安装核心依赖:react-router-dom, zustand, framer-motion, @radix-ui/react-dialog, lucide-react, axios
- 配置 Tailwind CSS 和自定义主题色
- _Requirements: 1.1, 1.2, 1.3_
- [x] 1.2 配置全局样式和字体
- 添加 Noto Serif SC 和 Noto Sans SC 字体
- 创建 CSS 变量定义(glass-bg, glass-border, accent-orange, accent-blue
- 配置 Tailwind 自定义动画(float, float-delayed
- _Requirements: 1.2, 1.3_
- [x] 2. 基础UI组件开发
- [x] 2.1 创建 Background 组件
- 实现动态流体背景(渐变 + 浮动模糊圆 + 纹理叠加)
- 添加 animate-float 和 animate-float-delayed 动画
- _Requirements: 1.1_
- [x] 2.2 创建 GlassCard 组件
- 实现毛玻璃卡片样式(backdrop-filter, 边框, 阴影)
- 支持 variant 属性(default, highlight, ai
- _Requirements: 1.2_
- [x] 2.3 创建 GlassButton 组件
- 实现毛玻璃按钮样式
- 支持 variantdefault, primary, icon)和 loading 状态
- _Requirements: 1.2_
- [x] 2.4 创建 GlassInput 和 GlassTextarea 组件
- 实现毛玻璃输入框样式
- 支持 label、placeholder、focus 状态
- _Requirements: 1.2_
- [x] 2.5 创建 GlassSelect 组件
- 实现毛玻璃下拉选择框
- 支持 options 数组配置
- _Requirements: 1.2_
- [x] 2.6 创建 Modal 组件
- 使用 Radix UI Dialog 实现
- 添加暗色遮罩和模糊效果
- _Requirements: 11.1, 11.2, 11.3, 11.4, 11.5_
- [x] 2.7 创建 Loader 组件
- 实现加载动画(旋转圆环 + 文字)
- _Requirements: 10.2_
- [x] 2.8 创建 PromptTag 组件
- 实现灵感标签样式和点击交互
- _Requirements: 3.7_
- [x] 3. Checkpoint - 基础组件完成
- 确保所有基础 UI 组件正确渲染
- 验证样式与原型一致
- [-] 4. 状态管理实现
- [x] 4.1 创建 Zustand Store
- 定义完整的 AppState 接口
- 实现 save、load、updateRegistration、addLifeEvent、addScript、setPath、clear 方法
- 配置 localStorage 持久化中间件
- _Requirements: 9.1, 9.2, 9.3, 9.4_
- [ ] 4.2 编写状态持久化属性测试
- **Property 1: State Persistence Round-Trip**
- **Validates: Requirements 9.1, 9.2, 9.4**
- [ ] 4.3 编写损坏状态恢复属性测试
- **Property 9: Corrupted State Recovery**
- **Validates: Requirements 9.5**
- [x] 5. 布局组件开发
- [x] 5.1 创建 Header 组件
- 实现固定定位头部
- 添加 logo 和用户按钮
- _Requirements: 1.4_
- [x] 5.2 创建 Sidebar 组件
- 实现导航分组(回溯过去、创造未来)
- 添加导航项激活状态
- 添加底部引用文字
- _Requirements: 4.1, 4.2, 4.5_
- [-] 6. 登录页面实现
- [x] 6.1 创建 LoginPage 组件
- 实现登录表单布局(手机号、验证码、登录按钮)
- 添加标题和协议文字
- _Requirements: 2.1, 2.2, 2.7_
- [x] 6.2 实现验证码倒计时逻辑
- 创建 useCountdown hook
- 实现 60 秒倒计时和按钮状态切换
- _Requirements: 2.3_
- [x] 6.3 实现登录验证逻辑
- 验证手机号格式(11位数字)
- 验证验证码(888888
- 成功后跳转到 Onboarding
- _Requirements: 2.4, 2.5, 2.6_
- [ ] 6.4 编写登录验证属性测试
- **Property 2: Login Validation and Navigation**
- **Validates: Requirements 2.3, 2.4, 2.5, 2.6**
- [ ] 7. Checkpoint - 登录功能完成
- 确保登录流程正常工作
- 验证状态持久化
- [-] 8. 入站流程实现
- [x] 8.1 创建 OnboardingPage 组件框架
- 实现 5 步骤容器布局
- 添加进度指示器
- 添加导航按钮(返回、继续)
- _Requirements: 3.1, 3.10, 3.11_
- [x] 8.2 实现步骤 1 - 基础信息
- 创建表单字段(称呼、性别、MBTI、星座、兴趣爱好)
- _Requirements: 3.2_
- [x] 8.3 实现步骤 2-4 - 记忆采集
- 创建通用记忆步骤组件
- 添加日期选择器和文本区域
- 集成灵感标签(童年、开心、低谷)
- _Requirements: 3.3, 3.4, 3.5, 3.7_
- [x] 8.4 实现步骤 5 - 未来愿景
- 创建愿景和理想生活文本区域
- _Requirements: 3.6_
- [x] 8.5 实现步骤间数据保存
- 在步骤切换时保存表单数据到 store
- _Requirements: 3.8_
- [x] 8.6 实现完成跳转
- 完成步骤 5 后跳转到 Dashboard
- _Requirements: 3.9_
- [ ] 8.7 编写入站步骤进度属性测试
- **Property 3: Onboarding Step Progression**
- **Validates: Requirements 3.1, 3.8, 3.10, 3.11**
- [ ] 8.8 编写灵感标签追加属性测试
- **Property 4: Inspiration Tag Appending**
- **Validates: Requirements 3.7**
- [ ] 9. Checkpoint - 入站流程完成
- 确保 5 步骤流程正常工作
- 验证数据保存和跳转
- [x] 10. 仪表盘框架实现
- [x] 10.1 创建 DashboardPage 组件
- 实现 Grid 布局(侧边栏 3/12 + 内容区 9/12
- 集成 Header 和 Sidebar
- _Requirements: 4.1, 4.2, 4.4_
- [x] 10.2 实现视图切换逻辑
- 添加导航点击处理
- 实现视图切换动画
- _Requirements: 4.3, 4.6_
- [-] 11. 生命长河视图实现
- [x] 11.1 创建 TimelineView 组件
- 实现标题和添加按钮
- 实现空状态显示
- _Requirements: 5.1, 5.2_
- [x] 11.2 实现事件卡片列表
- 创建时间线样式(点 + 连接线)
- 实现事件卡片(标题、日期、内容、AI反馈)
- 按时间倒序排列
- _Requirements: 5.3, 5.4_
- [x] 11.3 实现添加事件模态框
- 创建事件表单(标题、日期、内容)
- 集成 AI 分析调用
- 显示加载状态
- _Requirements: 5.5, 5.6, 5.7_
- [ ] 11.4 编写时间线事件排序属性测试
- **Property 5: Timeline Event Ordering**
- **Validates: Requirements 5.3, 5.4**
- [ ] 12. Checkpoint - 时间线功能完成
- 确保事件添加和显示正常
- 验证 AI 分析集成
- [-] 13. 爽文剧本视图实现
- [x] 13.1 创建 ScriptView 组件框架
- 实现两栏布局(设置面板 + 剧本展示)
- _Requirements: 6.1_
- [x] 13.2 实现角色设定卡片
- 显示用户信息(昵称、星座、MBTI、爱好)
- 添加修改人设按钮
- _Requirements: 6.2_
- [x] 13.3 实现创作需求表单
- 添加主题输入框
- 添加风格下拉选择(7种风格)
- 添加篇幅下拉选择(3种篇幅)
- _Requirements: 6.3, 6.4, 6.5_
- [x] 13.4 实现剧本生成功能
- 集成 AI 剧本生成调用
- 保存生成的剧本到 store
- _Requirements: 6.6_
- [x] 13.5 实现历史卷轴列表
- 显示历史剧本列表
- 实现点击选择功能
- _Requirements: 6.7, 6.8_
- [x] 13.6 实现剧本内容展示
- 显示选中剧本内容
- 格式化【标题】高亮
- 实现空状态显示
- _Requirements: 6.9, 6.10_
- [ ] 13.7 编写剧本生成和选择属性测试
- **Property 6: Script Generation and Selection**
- **Validates: Requirements 6.6, 6.7, 6.8, 6.9, 6.10**
- [ ] 14. Checkpoint - 剧本功能完成
- 确保剧本生成和选择正常
- 验证历史记录功能
- [-] 15. 实现路径视图实现
- [x] 15.1 创建 PathView 组件
- 实现无剧本时的提示状态
- 实现有剧本时的生成界面
- _Requirements: 7.1, 7.2_
- [x] 15.2 实现路径生成功能
- 集成 AI 路径生成调用
- 保存路径到 store
- _Requirements: 7.3_
- [x] 15.3 实现路径步骤展示
- 创建编号卡片样式(蓝色主题)
- 显示阶段标题和建议
- 添加交错动画
- _Requirements: 7.4, 7.5, 7.6_
- [ ] 15.4 编写路径生成条件显示属性测试
- **Property 7: Path Generation Conditional Display**
- **Validates: Requirements 7.1, 7.2, 7.3, 7.4, 7.5**
- [-] 16. 用户资料模态框实现
- [x] 16.1 创建 ProfileModal 组件
- 实现查看模式(头像、昵称、统计)
- _Requirements: 8.1, 8.2_
- [x] 16.2 实现编辑模式
- 添加可编辑字段
- 实现保存和取消功能
- _Requirements: 8.3, 8.4, 8.5_
- [x] 16.3 实现清除数据功能
- 添加确认对话框
- 清除 localStorage 并刷新
- _Requirements: 8.6_
- [ ] 16.4 编写模态框开关行为属性测试
- **Property 8: Modal Open/Close Behavior**
- **Validates: Requirements 8.1, 8.3, 8.5, 11.4**
- [ ] 17. Checkpoint - 核心功能完成
- 确保所有视图正常工作
- 验证用户资料功能
- [x] 18. AI 服务集成
- [x] 18.1 创建 AI Service 模块
- 封装 OpenRouter API 调用
- 实现 analyzeLifeEvent 方法
- 实现 generateEpicScript 方法
- 实现 generatePath 方法
- _Requirements: 5.6, 6.6, 7.3_
- [x] 18.2 实现错误处理
- 添加 try-catch 错误捕获
- 返回默认错误消息
- _Requirements: 5.7_
- [x] 19. 响应式设计优化
- [x] 19.1 实现移动端适配
- 调整视图容器高度和圆角
- 隐藏导航文字标签
- 调整 Grid 列配置
- _Requirements: 12.1, 12.2, 12.3, 12.4_
- [x] 19.2 实现断点样式
- 添加 768px 断点媒体查询
- 调整内边距和间距
- _Requirements: 1.5, 1.6_
- [x] 20. 页面过渡动画
- [x] 20.1 实现页面切换动画
- 使用 Framer Motion 实现淡入淡出
- 添加加载器显示
- _Requirements: 10.1, 10.2_
- [x] 20.2 实现视图切换动画
- 添加透明度和位移动画
- 配置 cubic-bezier 缓动
- _Requirements: 10.3, 10.4, 10.5_
- [x] 21. 路由配置
- [x] 21.1 配置 React Router
- 设置路由:/, /onboarding, /dashboard
- 添加路由守卫(登录检查)
- _Requirements: 2.5, 3.9_
- [ ] 22. Final Checkpoint - 项目完成
- 确保所有功能正常工作
- 验证响应式设计
- 确保所有测试通过
## Notes
- All tasks are required for comprehensive testing
- Each task references specific requirements for traceability
- Checkpoints ensure incremental validation
- Property tests validate universal correctness properties
- Unit tests validate specific examples and edge cases