4.0 KiB
4.0 KiB
「赛博拍立得」版 CompletionView 审查报告(禁止应用)
审查对象:Gemini 提供的 Cyber Polaroid 版 CompletionView(拍立得隐喻、上传学习数据、hasUploadedData 状态持久化)。
结论:仅审查,不应用、不修改仓库内任何文件。
一、与当前需求的偏差
| 项目 | 当前需求 / 现有约定 | Gemini 本版实现 | 结论 |
|---|---|---|---|
| 底部按钮语义 | 点击「回到我的内容」应回到技能 Tab(我的课程列表),即 navStore.switchToGrowthTab() |
handlePopToRoot() 仅做 path.wrappedValue = NavigationPath() 或 dismiss(),未切到技能 Tab |
❌ 行为不符:从发现/个人 Tab 进入完结页时,点按钮只会清栈或 dismiss,仍停留在当前 Tab |
| 数据来源 | 共完成小节数来自接口/本地统计(如 UserManager.shared.studyStats.lessons),仅展示 |
新增 focusMinutes: Int = 45 写死;显影态展示「专注时长 (MIN)」,数据非来自现有统计接口 |
⚠️ 若产品无「专注时长」需求,属多余展示;若有,需接真实数据源 |
| 完结页入口 | 作为 TabView 最后一页内嵌,无「上传」步骤,仅展示 + 回到技能 Tab | 未显影 → 点击「上传学习数据」→ 模拟 1.5s 显影 → 显影态;依赖 hasUploadedData 状态 |
❌ 交互模型与当前「统一分页 + 纯展示」不一致,易与真实学习数据上报逻辑混淆 |
二、接口与调用方影响
| 项目 | 说明 |
|---|---|
| CompletionView 入参 | Gemini 版为 courseId, courseTitle, completedLessonCount, focusMinutes=45, navigationPath?。当前工程若为 courseId, courseTitle, navigationPath 三参,需在调用处补传 completedLessonCount(如 UserManager.shared.studyStats.lessons)。 |
| VerticalScreenPlayerView | 若已按此前约定传 CompletionView(courseId:courseTitle:completedLessonCount:navigationPath:),则参数兼容;无需改其他页面文件。 |
| GrowthView / ProfileView / DiscoveryView | 其 navigationDestination(for: .completion) 仍为 CompletionView(courseId:courseTitle:completedLessonCount:);若 Gemini 版增加可选 navigationPath,调用处可不传或传入对应 path,其他页面逻辑与展示不受影响。 |
结论:仅替换 CompletionView 时,其他页面无需改代码即可编译;但完结页自身行为会变(见上表)。
三、是否影响其他页面的逻辑与展示
| 维度 | 结论 |
|---|---|
| 其他页面逻辑 | 不受影响。仅 CompletionView 内部实现与状态变化。 |
| 其他页面展示 | 不受影响。无改动其他 View 或导航结构。 |
| 完结页自身逻辑与展示 | 会变:从「勋章 + 点击点亮 + 回到我的内容 → 技能 Tab」变为「拍立得未显影 → 上传数据 → 显影 + 专注时长 + 回到我的内容 → 清栈/dismiss」,且不切技能 Tab。 |
因此:其他页面逻辑和展示不受影响;完结页的交互与目标(回到技能 Tab)会受影响,需按需求修正。
四、审查结论汇总
| 项目 | 结论 |
|---|---|
| 其他页面 | 逻辑与展示均不受影响;仅替换 CompletionView 时调用方可不改或仅补参。 |
| 底部按钮 | 未调用 navStore.switchToGrowthTab(),不符合「回到技能 Tab-我的课程列表」需求,需补回。 |
| 数据与交互 | 写死 focusMinutes、上传模拟、hasUploadedData 与当前「仅展示接口/本地统计 + 统一分页」不一致;若采用本版,需与产品/接口对齐并接入真实数据。 |
| 建议 | 不应用本版;若保留「赛博拍立得」视觉,需在不动其他页面的前提下:① 底部按钮改为 navStore.switchToGrowthTab();② 移除或对接「上传学习数据」与「专注时长」逻辑,与现有统计与导航一致。 |
未对仓库内任何文件进行修改。