feat: 完善听力口语辅助状态记录、练习分块与复习抽查间隔机制
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import '../../core/app_state.dart';
|
||||
import '../../core/app_theme.dart';
|
||||
import '../../core/courses/courses.dart';
|
||||
import '../../core/models.dart';
|
||||
import '../../widgets/app_widgets.dart';
|
||||
|
||||
/// 课程路径:全部课程按顺序排列,显示完成、当前与锁定状态。
|
||||
@@ -17,7 +18,10 @@ class LessonPath extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final done = allLessons
|
||||
final available = allLessons
|
||||
.where((lesson) => lesson.status == ContentStatus.approved)
|
||||
.toList();
|
||||
final done = available
|
||||
.where((lesson) => state.completedLessonIds.contains(lesson.id))
|
||||
.length;
|
||||
return SpacedColumn(
|
||||
@@ -32,7 +36,7 @@ class LessonPath extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'$done/${allLessons.length} 完成',
|
||||
'$done/${available.length} 已开放课程完成',
|
||||
style: TextStyle(fontSize: 13, color: AppColors.muted),
|
||||
),
|
||||
],
|
||||
@@ -66,7 +70,8 @@ class _LessonTile extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final completed = state.completedLessonIds.contains(lesson.id);
|
||||
final current = lesson.id == state.activeLessonId && !completed;
|
||||
final draft = lesson.status != ContentStatus.approved;
|
||||
final current = lesson.id == state.activeLessonId && !completed && !draft;
|
||||
final open =
|
||||
state.isLessonUnlocked(lesson.id) &&
|
||||
(!state.reviewBacklog || completed);
|
||||
@@ -98,7 +103,9 @@ class _LessonTile extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 3),
|
||||
Text(
|
||||
segments > 1
|
||||
draft
|
||||
? '待教学审校后开放'
|
||||
: segments > 1
|
||||
? '${lesson.outcome} · 小段 $segmentsDone/$segments'
|
||||
: lesson.outcome,
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
|
||||
Reference in New Issue
Block a user