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