no message
This commit is contained in:
parent
aca987a4df
commit
1c17e014a4
|
|
@ -18,17 +18,20 @@ class MarkingTextQuestionJobTabParams extends Object {
|
||||||
@JsonKey(name: 'studentId')
|
@JsonKey(name: 'studentId')
|
||||||
int? studentId;
|
int? studentId;
|
||||||
|
|
||||||
|
@JsonKey(name: 'defaultFirst')
|
||||||
|
bool? isDefaultFirst;
|
||||||
|
|
||||||
MarkingTextQuestionJobTabParams({
|
MarkingTextQuestionJobTabParams({
|
||||||
required this.taskId,
|
required this.taskId,
|
||||||
required this.pageIndex,
|
required this.pageIndex,
|
||||||
|
this.isDefaultFirst,
|
||||||
this.paperId,
|
this.paperId,
|
||||||
this.studentId,
|
this.studentId,
|
||||||
this.nextPageIndex,
|
this.nextPageIndex,
|
||||||
this.previousPageIndex,
|
this.previousPageIndex,
|
||||||
});
|
});
|
||||||
|
|
||||||
factory MarkingTextQuestionJobTabParams.fromJson(Map<String, dynamic> srcJson) =>
|
factory MarkingTextQuestionJobTabParams.fromJson(Map<String, dynamic> srcJson) => _$MarkingTextQuestionJobTabParamsFromJson(srcJson);
|
||||||
_$MarkingTextQuestionJobTabParamsFromJson(srcJson);
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => _$MarkingTextQuestionJobTabParamsToJson(this);
|
Map<String, dynamic> toJson() => _$MarkingTextQuestionJobTabParamsToJson(this);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,6 @@ class ReviewStatusInfo extends HookWidget with CommonMixin {
|
||||||
if (doMarkingInfo.value == null) return Container();
|
if (doMarkingInfo.value == null) return Container();
|
||||||
return InkWell(
|
return InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
print('点击了...');
|
|
||||||
List<JobConcernedWithStudent>? students = await getStudents();
|
List<JobConcernedWithStudent>? students = await getStudents();
|
||||||
if (students == null) return;
|
if (students == null) return;
|
||||||
students = students..sort((e, e1) => e.studentName.compareTo(e1.studentName));
|
students = students..sort((e, e1) => e.studentName.compareTo(e1.studentName));
|
||||||
|
|
@ -237,7 +236,7 @@ Widget $dropdownBoxSwitchStudentsOrTypeView(BuildContext context, {required Func
|
||||||
});
|
});
|
||||||
|
|
||||||
// 当前tab改变时
|
// 当前tab改变时
|
||||||
useValueChanged<JobPageTab?, String>(_useSwitchStudentAndType.currentTab.value, (_, __) {
|
useValueChanged<JobPageTab?, String>(_useSwitchStudentAndType.currentTab.value, (_oldValue, __) {
|
||||||
var thePageIndex = _useSwitchStudentAndType.currentTab.value?.pageIndex;
|
var thePageIndex = _useSwitchStudentAndType.currentTab.value?.pageIndex;
|
||||||
JobDoPapersStudentBus? studentBus = _useSwitchStudentAndType.studentBusInfo.value;
|
JobDoPapersStudentBus? studentBus = _useSwitchStudentAndType.studentBusInfo.value;
|
||||||
if (studentBus != null && studentBus.pageIndex == thePageIndex) return; // 获取试卷详情数据 定位到对应学生的数据 无需再通知详情获取数据
|
if (studentBus != null && studentBus.pageIndex == thePageIndex) return; // 获取试卷详情数据 定位到对应学生的数据 无需再通知详情获取数据
|
||||||
|
|
@ -313,7 +312,6 @@ Widget $dropdownBoxSwitchStudentsOrTypeView(BuildContext context, {required Func
|
||||||
_useSwitchStudentAndType.eventCancel();
|
_useSwitchStudentAndType.eventCancel();
|
||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
print(_useSwitchStudentAndType.tabs.value.firstWhereOrNull((e) => e.finishCount < e.total)?.toJson());
|
|
||||||
return Container(
|
return Container(
|
||||||
padding: EdgeInsets.only(bottom: 2.r, left: 12.r, right: 12.r),
|
padding: EdgeInsets.only(bottom: 2.r, left: 12.r, right: 12.r),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
|
|
@ -524,6 +522,7 @@ class ExamPaperAndScoringView extends StatefulHookConsumerWidget {
|
||||||
class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringView> with EventBusMixin, CommonMixin {
|
class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringView> with EventBusMixin, CommonMixin {
|
||||||
final GlobalKey<JobPictureOverviewState> scaffoldKeyPictureOverview = GlobalKey<JobPictureOverviewState>();
|
final GlobalKey<JobPictureOverviewState> scaffoldKeyPictureOverview = GlobalKey<JobPictureOverviewState>();
|
||||||
Future<MarkingTextQuestionJob?>? _future; // 考试试卷
|
Future<MarkingTextQuestionJob?>? _future; // 考试试卷
|
||||||
|
MarkingTextQuestionJob? theJobData;
|
||||||
bool firstLoading = true;
|
bool firstLoading = true;
|
||||||
JobDoSynchroTab? synchroTabs;
|
JobDoSynchroTab? synchroTabs;
|
||||||
late RemoveListener _doJobObtainGradingDataProviderListener; // 批注关闭监听
|
late RemoveListener _doJobObtainGradingDataProviderListener; // 批注关闭监听
|
||||||
|
|
@ -539,13 +538,18 @@ class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringVi
|
||||||
eventOn(callback: (eventVal) {
|
eventOn(callback: (eventVal) {
|
||||||
switch (eventVal.runtimeType) {
|
switch (eventVal.runtimeType) {
|
||||||
case MarkingTextQuestionJobTabParamsBus:
|
case MarkingTextQuestionJobTabParamsBus:
|
||||||
MarkingTextQuestionJobTabParamsBus theEventVal = eventVal as MarkingTextQuestionJobTabParamsBus;
|
var theEventVal = eventVal as MarkingTextQuestionJobTabParamsBus;
|
||||||
|
bool? isDefaultFirst;
|
||||||
|
if (theJobData != null) {
|
||||||
|
isDefaultFirst = theJobData!.pageIndex < theEventVal.pageIndex;
|
||||||
|
}
|
||||||
ref.read(doJobObtainGradingDataProvider.notifier).setVal(MarkingTextQuestionJobTabParams(
|
ref.read(doJobObtainGradingDataProvider.notifier).setVal(MarkingTextQuestionJobTabParams(
|
||||||
pageIndex: theEventVal.pageIndex,
|
pageIndex: theEventVal.pageIndex,
|
||||||
taskId: theEventVal.taskId,
|
taskId: theEventVal.taskId,
|
||||||
studentId: theEventVal.studentId,
|
studentId: theEventVal.studentId,
|
||||||
previousPageIndex: theEventVal.previousPageIndex,
|
previousPageIndex: theEventVal.previousPageIndex,
|
||||||
nextPageIndex: theEventVal.nextPageIndex,
|
nextPageIndex: theEventVal.nextPageIndex,
|
||||||
|
isDefaultFirst: isDefaultFirst,
|
||||||
));
|
));
|
||||||
break;
|
break;
|
||||||
case JobDoSynchroTab:
|
case JobDoSynchroTab:
|
||||||
|
|
@ -573,6 +577,7 @@ class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringVi
|
||||||
BaseStructureResult<MarkingTextQuestionJob> _result = await _client.getJobTabOfExam(params);
|
BaseStructureResult<MarkingTextQuestionJob> _result = await _client.getJobTabOfExam(params);
|
||||||
if (_result.success) {
|
if (_result.success) {
|
||||||
var jobDetails = _result.data;
|
var jobDetails = _result.data;
|
||||||
|
theJobData = jobDetails;
|
||||||
if (jobDetails != null) {
|
if (jobDetails != null) {
|
||||||
jobDetails.previousPageIndex = synchroTabs?.getPreviousPageIndex(jobDetails.pageIndex - 1);
|
jobDetails.previousPageIndex = synchroTabs?.getPreviousPageIndex(jobDetails.pageIndex - 1);
|
||||||
jobDetails.nextPageIndex = synchroTabs?.getNextPageIndex(jobDetails.pageIndex - 1);
|
jobDetails.nextPageIndex = synchroTabs?.getNextPageIndex(jobDetails.pageIndex - 1);
|
||||||
|
|
@ -613,6 +618,7 @@ class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringVi
|
||||||
pageIndex: jobData.pageIndex,
|
pageIndex: jobData.pageIndex,
|
||||||
nextPageIndex: jobData.nextPageIndex,
|
nextPageIndex: jobData.nextPageIndex,
|
||||||
previousPageIndex: jobData.previousPageIndex,
|
previousPageIndex: jobData.previousPageIndex,
|
||||||
|
isDefaultFirst: true,
|
||||||
);
|
);
|
||||||
if (model.paperId == 0 && jobData.nextPageIndex != null) {
|
if (model.paperId == 0 && jobData.nextPageIndex != null) {
|
||||||
// 切换题型页面
|
// 切换题型页面
|
||||||
|
|
@ -629,6 +635,7 @@ class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringVi
|
||||||
paperId: jobData.prevId,
|
paperId: jobData.prevId,
|
||||||
nextPageIndex: jobData.nextPageIndex,
|
nextPageIndex: jobData.nextPageIndex,
|
||||||
previousPageIndex: jobData.previousPageIndex,
|
previousPageIndex: jobData.previousPageIndex,
|
||||||
|
isDefaultFirst: false,
|
||||||
);
|
);
|
||||||
if (model.paperId == 0 && jobData.previousPageIndex != null) {
|
if (model.paperId == 0 && jobData.previousPageIndex != null) {
|
||||||
model.paperId = null;
|
model.paperId = null;
|
||||||
|
|
@ -664,8 +671,6 @@ class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringVi
|
||||||
final double containerHeight = constraints.maxHeight; // 展示区域总宽度
|
final double containerHeight = constraints.maxHeight; // 展示区域总宽度
|
||||||
|
|
||||||
if (jobData == null) return Container(); // 没有试题展示缩略图
|
if (jobData == null) return Container(); // 没有试题展示缩略图
|
||||||
|
|
||||||
// print('容器宽度:${containerWidth};容器高度:${containerHeight}');
|
|
||||||
return Stack(
|
return Stack(
|
||||||
children: [
|
children: [
|
||||||
JobPictureOverview(
|
JobPictureOverview(
|
||||||
|
|
@ -860,7 +865,12 @@ Widget $examPaperAndScoringKeyboardView(
|
||||||
if (question.accuracy > 0)
|
if (question.accuracy > 0)
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(bottom: 1.5.h),
|
padding: EdgeInsets.only(bottom: 1.5.h),
|
||||||
child: quickText('正确率:${question.accuracy}%', size: 8.sp, color: Colors.white, align: TextAlign.end),
|
child: quickText(
|
||||||
|
'正确率:${getDoubleRemoveZero(question.accuracy, question.accuracy.toString())}%',
|
||||||
|
size: 8.sp,
|
||||||
|
color: Colors.white,
|
||||||
|
align: TextAlign.end,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -1063,7 +1073,7 @@ Widget $examPaperAndScoringKeyboardView(
|
||||||
}
|
}
|
||||||
|
|
||||||
@swidget
|
@swidget
|
||||||
Widget $materialBtn({required Widget child, Color? bgc, Color? splashColor, GestureTapCallback? onTap, BorderRadius? borderRadius}) {
|
Widget $materialBtn({required Widget child, Color? bgc, Color? splashColor, GestureTapCallback? onTap, BorderRadiusGeometry? borderRadius}) {
|
||||||
return Material(
|
return Material(
|
||||||
color: bgc,
|
color: bgc,
|
||||||
borderRadius: borderRadius,
|
borderRadius: borderRadius,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue