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

43 lines
2.6 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.

# 给 Gemini 的反馈:完结页不要改逻辑层
## 核心要求
**坚持「点击按钮时拉后端」**,不要改逻辑层。
---
## 1. 数据流(必须保持)
- **当前逻辑**:用户点击「标记完成」/「上传学习数据」等按钮 → **在 CompletionView 内部**调用后端拉取最新数据(如 `UserManager.shared.fetchUserProfile()`)→ 用拉取结果(如 `UserManager.shared.studyStats.lessons` / `.time`)展示。
- **要求**:完结页的**数据来源与拉取时机**保持上述逻辑,即**点击按钮时在页面内拉后端**,不在父视图提前传「已完成小节数、专注时长」等业务数据。
---
## 2. 不要做的改动(逻辑层)
- **不要**让 CompletionView 增加必选参数 `completedLessonCount`、`focusMinutes` 等由父视图传入的「业务数据」。
- **不要**把「拉取最新统计」的责任从 CompletionView 挪到父视图(如 VerticalScreenPlayerView或改成「进入页面时父视图传参」。
- **不要**改变「点击按钮 → 调接口 → 用接口/本地统计结果展示」这一套流程;可以保留「上传/显影」的**交互与动效**,但**显影后展示的数据必须来自点击后拉取的结果**(例如继续用 UserManager.studyStats 或等价数据源)。
---
## 3. 可以做的(仅 UI / 视觉)
- 可以改完结页的**视觉与动效**(例如拍立得、赛博海报、骨架、显影动画等)。
- 可以改**按钮文案**(如「上传学习数据」「标记完成」)和**排版**(顶对齐、大数字等)。
- 可以保留 **UserDefaults 显影状态**(已显影过则直接展示结果态,不重复播动画),只要结果态展示的数据仍来自**点击时拉取的后端/统计**(例如首次显影时点按钮拉取,之后用本地缓存或同一数据源)。
- **回到我的内容**:必须调用 `navStore.switchToGrowthTab()`,回到技能 Tab。
---
## 4. 接口约定(建议)
- CompletionView 的入参保持与现有一致或仅做**可选**扩展(如可选 `navigationPath`**不要**新增必选的「业务数据」参数(如 `completedLessonCount: Int`、`focusMinutes: Int`)。
- 小节数、专注时长等**在 CompletionView 内部**从现有数据源获取(如 UserManager.studyStats并在**用户点击按钮后**通过现有或约定的接口拉取最新再展示。
---
## 5. 一句话总结
**只改完结页的 UI/动效/文案,不要改「点击按钮时拉后端、用拉取结果展示」的逻辑与数据层;不要通过父视图传入 completedLessonCount、focusMinutes 等业务数据。**