处理BUG
This commit is contained in:
parent
158fbc355f
commit
33996285f4
|
|
@ -0,0 +1,17 @@
|
|||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'annotate_list_to_refresh.g.dart';
|
||||
|
||||
|
||||
@JsonSerializable()
|
||||
class AnnotateListToRefresh extends Object {
|
||||
|
||||
AnnotateListToRefresh();
|
||||
|
||||
factory AnnotateListToRefresh.fromJson(Map<String, dynamic> srcJson) => _$AnnotateListToRefreshFromJson(srcJson);
|
||||
|
||||
Map<String, dynamic> toJson() => _$AnnotateListToRefreshToJson(this);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -35,13 +35,10 @@ class QuestionNumberView extends GetView<HomeworkReviewLogic> {
|
|||
var zoomFile = sateZoomData.zoomFile.value;
|
||||
if (zoomFile == null) return const SizedBox();
|
||||
|
||||
var studentQuestions = sateData.studentQuestions.value ?? [];
|
||||
|
||||
return $QuestionNumberScrollView(
|
||||
controller: controller,
|
||||
sateData: sateData,
|
||||
sateZoomData: sateZoomData,
|
||||
studentQuestions: studentQuestions,
|
||||
);
|
||||
}),
|
||||
),
|
||||
|
|
@ -52,18 +49,20 @@ class QuestionNumberView extends GetView<HomeworkReviewLogic> {
|
|||
// 试题题号视图
|
||||
@hwidget
|
||||
Widget $questionNumberScrollView({
|
||||
required HomeworkReviewLogic controller,
|
||||
required ZoomState sateZoomData,
|
||||
required HomeworkReviewState sateData,
|
||||
required List<StudentQuestions> studentQuestions,
|
||||
required HomeworkReviewLogic controller,
|
||||
}) {
|
||||
final scrollControllerNum = useScrollController(); // 试题题号区域
|
||||
var studentQuestions = useState<List<StudentQuestions>>(sateData.studentQuestions.value ?? []);
|
||||
var useZoom = useState<double>(sateZoomData.initScale.value ?? 1);
|
||||
var usePiddingTop = useState<double>(sateZoomData.zoomFile.value?.imageHeightOffsetStart ?? 0);
|
||||
useValueChanged<double?, void>(sateZoomData.zoomFile.value?.imageHeightOffsetStart, (_, __) {
|
||||
usePiddingTop.value = sateZoomData.zoomFile.value?.imageHeightOffsetStart ?? 0;
|
||||
});
|
||||
useEffect(() {
|
||||
var studentQuestionsStream = sateData.studentQuestions.listen((e) => studentQuestions.value = e ?? []);
|
||||
|
||||
var stream = sateZoomData.initScale.listen((e) {
|
||||
// print("initScale : $e");
|
||||
useZoom.value = e ?? 1;
|
||||
|
|
@ -83,6 +82,7 @@ Widget $questionNumberScrollView({
|
|||
|
||||
return () {
|
||||
stream.cancel();
|
||||
studentQuestionsStream.cancel();
|
||||
};
|
||||
}, []);
|
||||
|
||||
|
|
@ -112,7 +112,6 @@ Widget $questionNumberScrollView({
|
|||
|
||||
// print("图片高度:$actualImgHeight");
|
||||
|
||||
print("数据长度:${studentQuestions.length}");
|
||||
print("FFFFFFFFF ${usePiddingTop.value}");
|
||||
|
||||
return SingleChildScrollView(
|
||||
|
|
@ -125,9 +124,9 @@ Widget $questionNumberScrollView({
|
|||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: studentQuestions
|
||||
children: studentQuestions.value
|
||||
.map((e) => $ScoringQuestionsView(
|
||||
studentQuestions,
|
||||
sateData,
|
||||
e,
|
||||
controller,
|
||||
sateZoomData.zoomFile.value!.scaleRatio,
|
||||
|
|
@ -141,7 +140,7 @@ Widget $questionNumberScrollView({
|
|||
|
||||
// 单道题得分框
|
||||
@hwidget
|
||||
Widget $scoringQuestionsView(BuildContext context, List<StudentQuestions>? studentQuestions, StudentQuestions item, HomeworkReviewLogic logic, double scaleRatio, double initScale) {
|
||||
Widget $scoringQuestionsView(BuildContext context, HomeworkReviewState sateData, StudentQuestions item, HomeworkReviewLogic logic, double scaleRatio, double initScale) {
|
||||
var studentScore = useState<int?>(item.studentScore);
|
||||
|
||||
useValueChanged<int?, void>(item.studentScore, (_, __) {
|
||||
|
|
@ -156,6 +155,10 @@ Widget $scoringQuestionsView(BuildContext context, List<StudentQuestions>? stude
|
|||
/// 学生打分数据
|
||||
studentScoreListener() {
|
||||
item.studentScore = studentScore.value;
|
||||
var theVal = sateData.studentQuestions.value?.firstWhereOrNull((e)=>e.questionNo==e.questionNo);
|
||||
if(theVal!=null) theVal.studentScore = studentScore.value;
|
||||
|
||||
var studentQuestions = sateData.studentQuestions.value;
|
||||
if (item.studentScore == null) return;
|
||||
|
||||
// 校验是否自动提交 对于已经批阅过的试题 不重复自动提交
|
||||
|
|
|
|||
|
|
@ -9,11 +9,13 @@ import 'package:flutter/rendering.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:get/get_rx/get_rx.dart';
|
||||
import 'package:making_school_asignment_app/common/job/annotate_list_to_refresh.dart';
|
||||
import 'package:making_school_asignment_app/common/job/marking_models/do_paper_details_param.dart';
|
||||
import 'package:making_school_asignment_app/common/job/marking_models/do_paper_details_result.dart';
|
||||
import 'package:making_school_asignment_app/common/job/marking_models/do_test_questions_image_info.dart';
|
||||
import 'package:making_school_asignment_app/common/job/marking_models/favor_param.dart';
|
||||
import 'package:making_school_asignment_app/common/job/marking_models/review_submission_params.dart';
|
||||
import 'package:making_school_asignment_app/common/mixins/event_bus_mixin.dart';
|
||||
import 'package:making_school_asignment_app/common/mixins/request_tool_mixin.dart';
|
||||
import 'package:making_school_asignment_app/common/utils/permission_describe_util.dart';
|
||||
import 'package:making_school_asignment_app/common/utils/toast_utils.dart';
|
||||
|
|
@ -71,7 +73,7 @@ class HomeworkReviewBinding extends Bindings {
|
|||
}
|
||||
}
|
||||
|
||||
class HomeworkReviewLogic extends GetxController with RequestToolMixin {
|
||||
class HomeworkReviewLogic extends GetxController with RequestToolMixin,EventBusMixin<AnnotateListToRefresh>{
|
||||
final zoomLogic = Get.find<ZoomLogic>();
|
||||
final GlobalKey pictureOverviewKey = GlobalKey();
|
||||
late StreamSubscription<DoPaperDetailsParam> _paramListen;
|
||||
|
|
@ -150,6 +152,7 @@ class HomeworkReviewLogic extends GetxController with RequestToolMixin {
|
|||
@override
|
||||
void onClose() {
|
||||
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]); // 屏幕刘海
|
||||
eventCancel();
|
||||
_dataListen.cancel();
|
||||
_paramListen.cancel();
|
||||
imageScaleZoomStream?.cancel();
|
||||
|
|
@ -279,8 +282,8 @@ class HomeworkReviewLogic extends GetxController with RequestToolMixin {
|
|||
var data = state.data.value;
|
||||
if (data == null) return;
|
||||
|
||||
if (state.data.value?.studentQuestions.isEmpty ?? true) return;
|
||||
var studentQuestions = state.data.value!.studentQuestions;
|
||||
if ((state.data.value?.studentQuestions.isEmpty ?? true) || (state.studentQuestions.value?.isEmpty ?? true)) return;
|
||||
var studentQuestions = state.studentQuestions.value!;
|
||||
var noRatingElement = studentQuestions.firstWhereOrNull((e) => e.studentScore == null);
|
||||
if (noRatingElement != null) {
|
||||
ToastUtils.showInfo('${noRatingElement.questionNo}题请评分');
|
||||
|
|
@ -315,7 +318,7 @@ class HomeworkReviewLogic extends GetxController with RequestToolMixin {
|
|||
// 批阅完成
|
||||
if (!state.lastQuestionPrompt) {
|
||||
await showDialog(
|
||||
context: context,
|
||||
context: Get.context ?? context,
|
||||
builder: (BuildContext context1) {
|
||||
return AlertDialog(
|
||||
title: quickText('批阅已完成'),
|
||||
|
|
@ -338,8 +341,8 @@ class HomeworkReviewLogic extends GetxController with RequestToolMixin {
|
|||
);
|
||||
},
|
||||
);
|
||||
}else{
|
||||
ToastUtils.showSuccess("已经提交",duration:const Duration(milliseconds: 800));
|
||||
} else {
|
||||
ToastUtils.showSuccess("已经提交", duration: const Duration(milliseconds: 800));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:making_school_asignment_app/common/job/annotate_list_to_refresh.dart';
|
||||
import 'package:making_school_asignment_app/page/global_widget/ReturnToHomepage.dart';
|
||||
import 'package:making_school_asignment_app/page/global_widget/my_text.dart';
|
||||
import 'package:making_school_asignment_app/page/home_page/children/annotate_class/annotate_class_logic.dart';
|
||||
|
|
@ -28,6 +29,7 @@ class HomeworkReview extends StatelessWidget {
|
|||
if (e && sateData.needRefresh) {
|
||||
controller.getList();
|
||||
homeLogicController.getList();
|
||||
logic.eventFire(model: AnnotateListToRefresh());
|
||||
}
|
||||
},
|
||||
child: Scaffold(
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@ import 'package:flutter_easyrefresh/easy_refresh.dart';
|
|||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:functional_widget_annotation/functional_widget_annotation.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:making_school_asignment_app/common/job/annotate_list_to_refresh.dart';
|
||||
import 'package:making_school_asignment_app/common/job/work_student_params.dart';
|
||||
import 'package:making_school_asignment_app/common/mixins/event_bus_mixin.dart';
|
||||
import 'package:making_school_asignment_app/common/mixins/request_tool_mixin.dart';
|
||||
import 'package:making_school_asignment_app/common/utils/enum_untils.dart';
|
||||
import 'package:making_school_asignment_app/common/utils/utils.dart';
|
||||
|
|
@ -31,7 +33,7 @@ class AnnotateList extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _AnnotateListState extends State<AnnotateList>
|
||||
with RequestToolMixin, SingleTickerProviderStateMixin {
|
||||
with RequestToolMixin, SingleTickerProviderStateMixin,EventBusMixin<AnnotateListToRefresh>{
|
||||
late RxString customTimeStr = '自定义'.obs;
|
||||
int active = 1;
|
||||
late RxList<Items> unAnnotateList = RxList();
|
||||
|
|
@ -65,6 +67,9 @@ class _AnnotateListState extends State<AnnotateList>
|
|||
refreshController1 = EasyRefreshController();
|
||||
refreshController2 = EasyRefreshController();
|
||||
|
||||
eventOn<AnnotateListToRefresh>(callback: (e){
|
||||
refreshController1.callRefresh();
|
||||
});
|
||||
tabController2 = TabController(length: 4, vsync: this);
|
||||
EasyLoading.show(status: 'loading...');
|
||||
getUnAnnotateList();
|
||||
|
|
@ -76,6 +81,7 @@ class _AnnotateListState extends State<AnnotateList>
|
|||
refreshController1.dispose();
|
||||
refreshController2.dispose();
|
||||
tabController2.dispose();
|
||||
eventCancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue