001project_wildgrowth/ios/WildGrowth/COMPLETION_git_1.30dazhi合并前...

6.2 KiB
Raw Blame History

1.30dazhi合并前 · 完结页相关变更清单(禁止应用)

说明:根据 git 拉取的 1.30dazhi合并前 分支与 commit f725f31 核对:除完结页外,其他页面是否有被影响
结论:仅做审查与清单整理,绝对禁止应用任何代码


一、当前分支与提交

  • 当前分支1.30dazhi合并前
  • 完结页相关提交f725f31feat: 完成页逻辑与占位页进入、无完成按钮;课程完成导航与文档
  • 工作区:有 1 个未提交修改ios/WildGrowth/WildGrowth/VerticalScreenPlayerView.swift(约 41 行变更)

二、f725f31 中「除完结页外」被改动的文件(其他页面)

f725f31 里,除了 新增的 CompletionView.swift 和文档、以及 VerticalScreenPlayerView.swift 的完成页逻辑外,以下页面/文件也被一起改动了

1. CourseNavigation.swift

变更 说明
.player (courseId, nodeId) 改为 (courseId, nodeId, isLastNode, courseTitle)
新增 .completion (courseId, courseTitle, completedLessonCount)
注释 「从 HomeView 提取」改为「供 DiscoveryView / GrowthView / MapView / ProfileView 共用」

影响:所有使用 CourseNavigation.player / .completion 的调用方必须传新参数或处理新 case。


2. MainTabView.swift

变更 说明
Tab 选中状态 @State private var selection 改为使用 navStore.selectedTab
新增 NavigationStore @Published var selectedTabfunc switchToGrowthTab()
TabView 绑定 TabView(selection: $selection)TabView(selection: $navStore.selectedTab)
登录成功跳转 selection = 2navStore.selectedTab = 2
多处 print selectionnavStore.selectedTab

影响Tab 切换与完成页「回到技能页」依赖 navStore.selectedTabswitchToGrowthTab()


3. MapView.swift

变更 说明
点击小节进入播放器 CourseNavigation.player(courseId, nodeId)CourseNavigation.player(courseId, nodeId, isLastNode, courseTitle)
新增 isLastNode (chapter.id == data.chapters.last?.id) && (index == chapter.nodes.count - 1)
传入 courseTitle data.courseTitle

影响:从地图进播放器时,会多传 isLastNodecourseTitle,与 CourseNavigation 新签名一致。


4. ProfileView.swift

变更 说明
.map MapView(courseId:)MapView(courseId:, navigationPath: $navStore.profilePath)
.player VerticalScreenPlayerView 增加 navigationPath: $navStore.profilePathisLastNodecourseTitle
新增 .completion CompletionView(courseId, courseTitle, completedLessonCount)

影响:我的 Tab 下地图、播放器、完成页的导航与传参全部按新枚举和完成页流程改过。


5. DiscoveryView.swift

变更 说明
.map MapView(courseId:)MapView(courseId:, navigationPath: $navStore.homePath)
.player VerticalScreenPlayerView 增加 isLastNodecourseTitle(原已有 navigationPath
新增 .completion CompletionView(courseId, courseTitle, completedLessonCount)

影响:发现 Tab 下地图、播放器、完成页的导航与传参全部按新枚举和完成页流程改过。


6. GrowthView.swift

变更 说明
.player VerticalScreenPlayerView 增加 isLastNodecourseTitle(原已有 MapView navigationPath
新增 .completion CompletionView(courseId, courseTitle, completedLessonCount)

影响:技能 Tab 下播放器、完成页的导航与传参全部按新枚举和完成页流程改过。


7. VerticalScreenPlayerView.swiftf725f31 内)

变更 说明
占位页 CompletionPlaceholderPage 由「带 courseId/courseTitle/navigationPath + onAppear 里 push」改为「纯视觉占位」
新增 TabView 上 .onChange(of: currentNodeId),当 newId == "wg://completion" 时 0.1s 后 append .completion

影响:完成页进入方式从「占位页 onAppear」改为「父视图 onChange」避免预加载误触。


三、当前工作区未提交改动(仅 1 个文件)

文件 变更概要
VerticalScreenPlayerView.swift 在 f725f31 基础上CompletionPlaceholderPage 去掉参数、改为纯 ZStackTabView 增加 .onChange(of: currentNodeId) 的完成页 push 逻辑与上面「f725f31 内」描述一致,可能是同一逻辑的又一次提交前微调或重复修改)

其他页面:当前 未提交修改。GrowthView、ProfileView、DiscoveryView、MapView、MainTabView、CourseNavigation 等在工作区均为已提交状态f725f31


四、直接回答「除了完结页,其他页面有没有被影响」

有。

在引入完结页的 f725f31 中,除了:

  • 新增:CompletionView.swiftCOMPLETION_PAGE_MEANING.mdCOMPLETION_VIEW_* 等文档
  • 修改:VerticalScreenPlayerView.swift(占位页 + 完成页进入逻辑)

一并修改了以下「其他页面」以支持完成页导航与播放器参数:

  1. CourseNavigation.swift — 枚举增加 .completion.player 增加 isLastNodecourseTitle
  2. MainTabView.swift — Tab 状态迁到 navStore.selectedTab,新增 switchToGrowthTab()
  3. MapView.swift — 进播放器时传 isLastNodecourseTitle
  4. ProfileView.swift — MapView 传 navigationPath播放器传 isLastNode、courseTitle增加 .completion destination
  5. DiscoveryView.swift — MapView 传 navigationPath播放器传 isLastNode、courseTitle增加 .completion destination
  6. GrowthView.swift — 播放器传 isLastNode、courseTitle增加 .completion destination

因此:1.30dazhi合并前 分支上,完结页不是「只动完结页」,而是和上述 6 个文件一起在 f725f31 里改的;当前工作区里,只有 VerticalScreenPlayerView.swift 还有未提交修改,其他页面没有新的未提交变更。


未对仓库进行任何应用或修改操作。