feat(recite): 完成背诵模块基础框架与核心页面开发

本次提交实现了背诵模块的完整基础链路:
1. 新增词书、背单词接口层与对应数据模型
2. 完成背诵首页、章节列表页等核心页面开发
3. 实现音频播放、加载弹窗等通用组件
4. 配置路由跳转链路,替换旧版缓存传参方案
5. 对齐Vue端业务逻辑与UI样式
This commit is contained in:
崔宝新
2026-09-11 14:38:47 +08:00
parent c65df455f2
commit 27eba92315
17 changed files with 4367 additions and 36 deletions
+36
View File
@@ -22,7 +22,14 @@ import 'package:new_learn/features/my/my_report/report_detail_page.dart';
import 'package:new_learn/features/my/exam/exam_page.dart';
import 'package:new_learn/features/my/settings/settings_page.dart';
import 'package:new_learn/features/my/settings/about_app_page.dart';
import 'package:new_learn/core/api/lexicon/model.dart';
import 'package:new_learn/features/recite/chapters_page.dart';
import 'package:new_learn/features/recite/level_over_page.dart';
import 'package:new_learn/features/recite/level_start_page.dart';
import 'package:new_learn/features/recite/levels_page.dart';
import 'package:new_learn/features/recite/recite_args.dart';
import 'package:new_learn/features/recite/recite_page.dart';
import 'package:new_learn/features/recite/textbook_list_page.dart';
import 'package:new_learn/features/report/report_computation_page.dart';
import 'package:new_learn/features/report/report_web_view_page.dart';
import 'package:new_learn/features/report/student_info_page.dart';
@@ -203,6 +210,35 @@ final GoRouter appRouter = GoRouter(
builder: (_, state) => CaptureListPage(courseId: state.extra as String),
),
GoRoute(path: '/register', builder: (_, _) => const RegisterPage()),
// ---------- 背诵模块二级页(不在 ShellBranch 内,push 时不显示 tabbar) ----------
// 教材列表
GoRoute(
path: '/recite/textbooks',
builder: (_, _) => const TextbookListPage(),
),
// 词汇章节(bookId 走路径参数,替代 Vue 缓存)
GoRoute(
path: '/recite/chapters/:bookId',
builder: (_, state) => ChaptersPage(
bookId: int.parse(state.pathParameters['bookId']!),
),
),
// 关卡列表(Chapter 对象走 extra)
GoRoute(
path: '/recite/levels',
builder: (_, state) => LevelsPage(chapter: state.extra as Chapter),
),
// 答题页(LevelStartArgs 显式传参,替代 curChapterInfo 缓存)
GoRoute(
path: '/recite/level-start',
builder: (_, state) =>
LevelStartPage(args: state.extra as LevelStartArgs),
),
// 学习小结
GoRoute(
path: '/recite/level-over',
builder: (_, state) => LevelOverPage(args: state.extra as LevelOverArgs),
),
// app_router.dart 的 routes 里加,不用管跳转逻辑
// GoRoute(path: '/task/:id', builder: (_, _) => const TaskDetailPage()),