001project_wildgrowth/ios/WildGrowth/COMPLETION_给Gemini的反馈_不改逻辑层.md

2.6 KiB
Raw Blame History

给 Gemini 的反馈:完结页不要改逻辑层

核心要求

坚持「点击按钮时拉后端」,不要改逻辑层。


1. 数据流(必须保持)

  • 当前逻辑:用户点击「标记完成」/「上传学习数据」等按钮 → 在 CompletionView 内部调用后端拉取最新数据(如 UserManager.shared.fetchUserProfile())→ 用拉取结果(如 UserManager.shared.studyStats.lessons / .time)展示。
  • 要求:完结页的数据来源与拉取时机保持上述逻辑,即点击按钮时在页面内拉后端,不在父视图提前传「已完成小节数、专注时长」等业务数据。

2. 不要做的改动(逻辑层)

  • 不要让 CompletionView 增加必选参数 completedLessonCountfocusMinutes 等由父视图传入的「业务数据」。
  • 不要把「拉取最新统计」的责任从 CompletionView 挪到父视图(如 VerticalScreenPlayerView或改成「进入页面时父视图传参」。
  • 不要改变「点击按钮 → 调接口 → 用接口/本地统计结果展示」这一套流程;可以保留「上传/显影」的交互与动效,但显影后展示的数据必须来自点击后拉取的结果(例如继续用 UserManager.studyStats 或等价数据源)。

3. 可以做的(仅 UI / 视觉)

  • 可以改完结页的视觉与动效(例如拍立得、赛博海报、骨架、显影动画等)。
  • 可以改按钮文案(如「上传学习数据」「标记完成」)和排版(顶对齐、大数字等)。
  • 可以保留 UserDefaults 显影状态(已显影过则直接展示结果态,不重复播动画),只要结果态展示的数据仍来自点击时拉取的后端/统计(例如首次显影时点按钮拉取,之后用本地缓存或同一数据源)。
  • 回到我的内容:必须调用 navStore.switchToGrowthTab(),回到技能 Tab。

4. 接口约定(建议)

  • CompletionView 的入参保持与现有一致或仅做可选扩展(如可选 navigationPath不要新增必选的「业务数据」参数(如 completedLessonCount: IntfocusMinutes: Int)。
  • 小节数、专注时长等在 CompletionView 内部从现有数据源获取(如 UserManager.studyStats并在用户点击按钮后通过现有或约定的接口拉取最新再展示。

5. 一句话总结

只改完结页的 UI/动效/文案,不要改「点击按钮时拉后端、用拉取结果展示」的逻辑与数据层;不要通过父视图传入 completedLessonCount、focusMinutes 等业务数据。