diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-hdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-hdpi/android12splash.png index b2901c9..c37ef58 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-hdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-hdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-mdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-mdpi/android12splash.png index ff5c9b7..397dc9b 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-mdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-mdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-night-hdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-night-hdpi/android12splash.png index b2901c9..c37ef58 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-night-hdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-night-hdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-night-mdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-night-mdpi/android12splash.png index ff5c9b7..397dc9b 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-night-mdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-night-mdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-night-xhdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-night-xhdpi/android12splash.png index 411feda..be1739b 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-night-xhdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-night-xhdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png index 04876eb..734cbfb 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png index 6bd48d1..3c1a620 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-v21/background.png b/making_school_asignment_app/android/app/src/main/res/drawable-v21/background.png index 3107d37..f3dd603 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-v21/background.png and b/making_school_asignment_app/android/app/src/main/res/drawable-v21/background.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-xhdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-xhdpi/android12splash.png index 411feda..be1739b 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-xhdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-xhdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-xxhdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-xxhdpi/android12splash.png index 04876eb..734cbfb 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-xxhdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-xxhdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable-xxxhdpi/android12splash.png b/making_school_asignment_app/android/app/src/main/res/drawable-xxxhdpi/android12splash.png index 6bd48d1..3c1a620 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable-xxxhdpi/android12splash.png and b/making_school_asignment_app/android/app/src/main/res/drawable-xxxhdpi/android12splash.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/drawable/background.png b/making_school_asignment_app/android/app/src/main/res/drawable/background.png index 3107d37..f3dd603 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/drawable/background.png and b/making_school_asignment_app/android/app/src/main/res/drawable/background.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/making_school_asignment_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index d4c7c6e..d188848 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/making_school_asignment_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/mipmap-ldpi/ic_launcher.png b/making_school_asignment_app/android/app/src/main/res/mipmap-ldpi/ic_launcher.png new file mode 100644 index 0000000..e3b3df8 Binary files /dev/null and b/making_school_asignment_app/android/app/src/main/res/mipmap-ldpi/ic_launcher.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/making_school_asignment_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index e3b4759..6bd5e0b 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/making_school_asignment_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/making_school_asignment_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index bdb7212..a1379b2 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/making_school_asignment_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/making_school_asignment_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 87c6147..b049db5 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/making_school_asignment_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/making_school_asignment_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4764358..f3ab3ed 100644 Binary files a/making_school_asignment_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/making_school_asignment_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/making_school_asignment_app/android/app/src/main/res/values-night-v31/styles.xml b/making_school_asignment_app/android/app/src/main/res/values-night-v31/styles.xml index 2df1a97..4dc9ba4 100644 --- a/making_school_asignment_app/android/app/src/main/res/values-night-v31/styles.xml +++ b/making_school_asignment_app/android/app/src/main/res/values-night-v31/styles.xml @@ -6,7 +6,7 @@ false false shortEdges - #FFFFFF + #8C68FF @drawable/android12splash @@ -16,15 +14,10 @@ - - - - - - - + + @@ -41,11 +34,11 @@ - + + - diff --git a/making_school_asignment_app/lib/common/job/marking_models/do_paper_bus.dart b/making_school_asignment_app/lib/common/job/marking_models/do_paper_bus.dart index 30db848..4a1ec84 100644 --- a/making_school_asignment_app/lib/common/job/marking_models/do_paper_bus.dart +++ b/making_school_asignment_app/lib/common/job/marking_models/do_paper_bus.dart @@ -20,3 +20,18 @@ class BottomOperationBar extends Object { Map toJson() => _$BottomOperationBarToJson(this); } + + + +@JsonSerializable() + class ZoomKey extends Object { + + ZoomKey(); + + factory ZoomKey.fromJson(Map srcJson) => _$ZoomKeyFromJson(srcJson); + + Map toJson() => _$ZoomKeyToJson(this); + +} + + diff --git a/making_school_asignment_app/lib/page/home_page/children/homework_review/components/dropdown_switch_students_type.dart b/making_school_asignment_app/lib/page/home_page/children/homework_review/components/dropdown_switch_students_type.dart index 9fb8651..aa86086 100644 --- a/making_school_asignment_app/lib/page/home_page/children/homework_review/components/dropdown_switch_students_type.dart +++ b/making_school_asignment_app/lib/page/home_page/children/homework_review/components/dropdown_switch_students_type.dart @@ -66,6 +66,27 @@ class DropdownSwitchStudentsType extends StatelessWidget { }).toList(), onChanged: (value) { if (logic.state.param.value.templateId == value) return; + var templateIds = logic.state.data.value?.templateIds; + + if (value != null && templateIds != null) { + final templateIdKeyMap = logic.state.data.value?.templateIdKeyMap; + + var answeredAlready = templateIds[value.toString()]; + if (answeredAlready != null && !answeredAlready) { + final currentStudentId = sateData.value?.studentId; + final students = sateData.value?.students ?? []; + + // 获取当前学生姓名 + final currentStudent = currentStudentId != null ? students.firstWhereOrNull((e) => e.id == currentStudentId) : null; + + final studentName = currentStudent?.name ?? '当前学生'; + final questionNumber = templateIdKeyMap?[value] ?? '当前选择页'; + + ToastUtils.showInfo("$studentName第$questionNumber页,未作答 无需批阅"); + return; + } + } + logic.state.param.value.templateId = value; logic.state.param.value = DoPaperDetailsParam.fromJson(logic.state.param.value.toJson()); // _useSwitchStudentAndType.currentTab.value = _useSwitchStudentAndType.tabs.value.firstWhere((element) => element.pageIndex == value); @@ -215,8 +236,9 @@ Widget $continueToReview(BuildContext context, {bool isFloatingAction = false}) var param = logic.state.param.value; int? submitCount = data?.submitCount; // 提交数量 int? annotatedCount = data?.annotatedCount; // 批阅数量 - - if (data == null || (submitCount == annotatedCount || (param.templateId == null && param.studentId == null))) return const SizedBox(); + // || (submitCount == annotatedCount || (param.templateId == null && param.studentId == null)) + // TODO true 这里如何判断当前题是否是顺序应该批阅的题 如 1/2/3/4 题 1、2题都已经批阅 目前所在位置是第4题 这个继续批阅的按钮如何判断应该展示 + if (data == null || (data.needAnnotate ? true : data.totalUnAnnotateCount <= 0) ) return const SizedBox(); callFun() => easyThrottle( 'DO_PAPERS_JOB_CONTINUE_TO_REVIEW', () { @@ -270,7 +292,7 @@ Widget $historyHomework(BuildContext context) { var currentStudent = sateData.value!.students.firstWhereOrNull((e) => e.id == studentId); if (currentStudent == null) return; var theState = Get.find().state; - Get.toNamed(Routes.studentWorkDetailPage, arguments: {'studentId': studentId, 'studentName': currentStudent.name,'subject':theState.param.value.subject}); + Get.toNamed(Routes.studentWorkDetailPage, arguments: {'studentId': studentId, 'studentName': currentStudent.name, 'subject': theState.param.value.subject}); }), child: Row( crossAxisAlignment: CrossAxisAlignment.center, diff --git a/making_school_asignment_app/lib/page/home_page/children/homework_review/components/question_number_view.dart b/making_school_asignment_app/lib/page/home_page/children/homework_review/components/question_number_view.dart index edaf173..085f3a2 100644 --- a/making_school_asignment_app/lib/page/home_page/children/homework_review/components/question_number_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/homework_review/components/question_number_view.dart @@ -6,7 +6,6 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:functional_widget_annotation/functional_widget_annotation.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/utils/anti_shake_throttling.dart'; import 'package:making_school_asignment_app/common/utils/toast_utils.dart'; import 'package:making_school_asignment_app/page/global_widget/my_text.dart'; @@ -34,13 +33,11 @@ class QuestionNumberView extends GetView { onPanDown: (_) => sateData.panQuestView = false, child: Obx(() { var zoomFile = sateZoomData.zoomFile.value; - if (zoomFile == null) return const SizedBox(); + var studentQuestions = sateData.studentQuestions.value ?? []; - return $QuestionNumberScrollView( - controller: controller, - sateData: sateData, - sateZoomData: sateZoomData, - ); + if (zoomFile == null || studentQuestions.isEmpty) return const SizedBox(); + + return $QuestionNumberScrollView(controller: controller, sateData: sateData, sateZoomData: sateZoomData, studentQuestions: studentQuestions); }), ), ); @@ -53,19 +50,24 @@ Widget $questionNumberScrollView({ required ZoomState sateZoomData, required HomeworkReviewState sateData, required HomeworkReviewLogic controller, + required List studentQuestions, }) { final scrollControllerNum = useScrollController(); // 试题题号区域 - var studentQuestions = useState>(sateData.studentQuestions.value ?? []); + // var studentQuestions = useState>(sateData.studentQuestions.value ?? []); var useZoom = useState(sateZoomData.initScale.value ?? 1); var usePiddingTop = useState(sateZoomData.zoomFile.value?.imageHeightOffsetStart ?? 0); useValueChanged(sateZoomData.zoomFile.value?.imageHeightOffsetStart, (_, __) { usePiddingTop.value = sateZoomData.zoomFile.value?.imageHeightOffsetStart ?? 0; }); useEffect(() { - var studentQuestionsStream = sateData.studentQuestions.listen((e) { - studentQuestions.value = e ?? []; + // var studentQuestionsStream = sateData.studentQuestions.listen((e) { + // studentQuestions.value = e ?? []; + // }); + var sateDataDataStream = sateData.data.listen((e){ + scrollControllerNum.jumpTo(0); }); + var stream = sateZoomData.initScale.listen((e) { // print("initScale : $e"); useZoom.value = e ?? 1; @@ -85,7 +87,8 @@ Widget $questionNumberScrollView({ return () { stream.cancel(); - studentQuestionsStream.cancel(); + sateDataDataStream.cancel(); + // studentQuestionsStream.cancel(); }; }, []); @@ -127,13 +130,14 @@ Widget $questionNumberScrollView({ child: Column( mainAxisAlignment: MainAxisAlignment.start, mainAxisSize: MainAxisSize.min, - children: studentQuestions.value + children: studentQuestions .map((e) => $ScoringQuestionsView( - sateData, - e, - controller, - sateZoomData.zoomFile.value!.scaleRatio, - useZoom.value, + key: Key('${sateData.data.value?.templateId}_${sateData.data.value?.studentId}_${e.questionNo}'), + sateData:sateData, + item:e, + logic:controller, + scaleRatio:sateZoomData.zoomFile.value!.scaleRatio, + initScale:useZoom.value, )) .toList(), ), @@ -143,7 +147,14 @@ Widget $questionNumberScrollView({ // 单道题得分框 @hwidget -Widget $scoringQuestionsView(BuildContext context, HomeworkReviewState sateData, StudentQuestions item, HomeworkReviewLogic logic, double scaleRatio, double initScale) { +Widget $scoringQuestionsView( + BuildContext context, { + required HomeworkReviewState sateData, + required StudentQuestions item, + required HomeworkReviewLogic logic, + required double scaleRatio, + required double initScale, +}) { var studentScore = useState(item.studentScore); useValueChanged(item.studentScore, (_, __) { @@ -157,6 +168,7 @@ Widget $scoringQuestionsView(BuildContext context, HomeworkReviewState sateData, useEffect(() { /// 学生打分数据 studentScoreListener() { + print(item.toJson()); item.studentScore = studentScore.value; var theVal = sateData.studentQuestions.value?.firstWhereOrNull((e) => e.questionNo == item.questionNo); if (theVal != null) theVal.studentScore = studentScore.value; diff --git a/making_school_asignment_app/lib/page/home_page/children/homework_review/components/question_paper_view.dart b/making_school_asignment_app/lib/page/home_page/children/homework_review/components/question_paper_view.dart index d52f77e..a4689e3 100644 --- a/making_school_asignment_app/lib/page/home_page/children/homework_review/components/question_paper_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/homework_review/components/question_paper_view.dart @@ -11,7 +11,6 @@ import 'package:get/get.dart'; import 'package:making_school_asignment_app/common/job/marking_models/do_paper_bus.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/mixins/event_bus_mixin.dart'; import 'package:making_school_asignment_app/common/utils/anti_shake_throttling.dart'; import 'package:making_school_asignment_app/common/utils/cached_network_img.dart'; diff --git a/making_school_asignment_app/lib/page/home_page/children/homework_review/configuration_files/index.dart b/making_school_asignment_app/lib/page/home_page/children/homework_review/configuration_files/index.dart index 4ced550..5830dd5 100644 --- a/making_school_asignment_app/lib/page/home_page/children/homework_review/configuration_files/index.dart +++ b/making_school_asignment_app/lib/page/home_page/children/homework_review/configuration_files/index.dart @@ -32,9 +32,9 @@ class HomeworkReviewState { // late String homeworkId; // late String homeworkName; late Rx param; - late Rx data; - late Rx?> studentQuestions; - late Rx slide; // 滑动位置 + late Rx data = Rx(null); + late Rx?> studentQuestions = Rx?>(null); + late Rx slide = 0.0.obs; // 滑动位置 bool? panQuestView = null; // late Rx imageScale; // late Rx imageScaleZoom = Rx(null); @@ -98,10 +98,7 @@ class HomeworkReviewLogic extends GetxController with RequestToolMixin, EventBus classId: Get.arguments['classId'], subject: Get.arguments['subject'], ).obs; - state.data = Rx(null); - state.studentQuestions = Rx?>(null); // state.imageScale = Rx(null); - state.slide = 0.0.obs; // 参数变化更新作业详情 _paramListen = state.param.listen((e) => getData()); @@ -110,7 +107,7 @@ class HomeworkReviewLogic extends GetxController with RequestToolMixin, EventBus if (e == null) return; var zoomState = zoomLogic.zoomState; - state.studentQuestions.value = e.studentQuestions; // 赋值试题集合 + final currentTemplateId = zoomState.zoomFile.value?.templateId; // 获取旧题号ID if (currentTemplateId != null && currentTemplateId != e.templateId) { @@ -176,7 +173,8 @@ class HomeworkReviewLogic extends GetxController with RequestToolMixin, EventBus state.param.value.templateId ??= data.templateId; state.param.value.studentId ??= data.studentId; - + + state.studentQuestions.value = data.studentQuestions; // 赋值试题集合 state.data.value = data; } catch (e) { print('获取数据报错了:$e'); diff --git a/making_school_asignment_app/lib/page/login_page/login_logic.dart b/making_school_asignment_app/lib/page/login_page/login_logic.dart index 3b3d179..37674f3 100644 --- a/making_school_asignment_app/lib/page/login_page/login_logic.dart +++ b/making_school_asignment_app/lib/page/login_page/login_logic.dart @@ -35,6 +35,9 @@ class LoginLogic extends GetxController with RequestToolMixin { } // state.userNameController.text = "AppleTester"; // state.passwordController.text = "AppleTester123!"; + + // state.userNameController.text = "SZJY200504252"; + // state.passwordController.text = "504252"; state.pwdFocus = FocusNode(); state.theFocus = FocusNode(); diff --git a/making_school_asignment_app/pubspec.yaml b/making_school_asignment_app/pubspec.yaml index 03a7639..a8ec1ac 100644 --- a/making_school_asignment_app/pubspec.yaml +++ b/making_school_asignment_app/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.5+6 +version: 1.0.3+4 environment: sdk: '>=3.4.1 <4.0.0' @@ -100,7 +100,8 @@ dependencies: device_info_plus: ^11.1.0 auto_size_text: ^3.0.0 - +# dependency_overrides: +# meta: ^1.15.0 dev_dependencies: flutter_test: diff --git a/making_school_asignment_app/web/index.html b/making_school_asignment_app/web/index.html index d2e2c0e..29014c6 100644 --- a/making_school_asignment_app/web/index.html +++ b/making_school_asignment_app/web/index.html @@ -187,6 +187,20 @@ + + + + + + + + + + + + + + @@ -210,7 +224,7 @@ body { margin: 0; min-height: 100%; - background-color: #FFFFFF; + background-color: #8C68FF; background-size: 100% 100%; }