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 dc5317f..54f18fa 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-mdpi/ic_launcher.png b/making_school_asignment_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 6842331..bb112aa 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 bf756f8..c32bcd5 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 f33a201..863f4ef 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 7905fc2..8931590 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/assets/images/2.0x/check_icon.png b/making_school_asignment_app/assets/images/2.0x/check_icon.png new file mode 100644 index 0000000..f5f18fa Binary files /dev/null and b/making_school_asignment_app/assets/images/2.0x/check_icon.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/ic_home_normal.png b/making_school_asignment_app/assets/images/2.0x/ic_home_normal.png index 64354dc..931df28 100644 Binary files a/making_school_asignment_app/assets/images/2.0x/ic_home_normal.png and b/making_school_asignment_app/assets/images/2.0x/ic_home_normal.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/ic_home_press.png b/making_school_asignment_app/assets/images/2.0x/ic_home_press.png index 4d1cefb..f691873 100644 Binary files a/making_school_asignment_app/assets/images/2.0x/ic_home_press.png and b/making_school_asignment_app/assets/images/2.0x/ic_home_press.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/ic_mine_normal.png b/making_school_asignment_app/assets/images/2.0x/ic_mine_normal.png index 719e115..dc9e6b1 100644 Binary files a/making_school_asignment_app/assets/images/2.0x/ic_mine_normal.png and b/making_school_asignment_app/assets/images/2.0x/ic_mine_normal.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/ic_mine_press.png b/making_school_asignment_app/assets/images/2.0x/ic_mine_press.png index 5ada58e..be507b1 100644 Binary files a/making_school_asignment_app/assets/images/2.0x/ic_mine_press.png and b/making_school_asignment_app/assets/images/2.0x/ic_mine_press.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/ic_work_normal.png b/making_school_asignment_app/assets/images/2.0x/ic_work_normal.png index cd54b72..723a897 100644 Binary files a/making_school_asignment_app/assets/images/2.0x/ic_work_normal.png and b/making_school_asignment_app/assets/images/2.0x/ic_work_normal.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/ic_work_press.png b/making_school_asignment_app/assets/images/2.0x/ic_work_press.png index 23d22f2..c40d284 100644 Binary files a/making_school_asignment_app/assets/images/2.0x/ic_work_press.png and b/making_school_asignment_app/assets/images/2.0x/ic_work_press.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/job_data_right_icon.png b/making_school_asignment_app/assets/images/2.0x/job_data_right_icon.png new file mode 100644 index 0000000..a05c6c5 Binary files /dev/null and b/making_school_asignment_app/assets/images/2.0x/job_data_right_icon.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/job_report_class_icon.png b/making_school_asignment_app/assets/images/2.0x/job_report_class_icon.png new file mode 100644 index 0000000..3d103d8 Binary files /dev/null and b/making_school_asignment_app/assets/images/2.0x/job_report_class_icon.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/login_bg.png b/making_school_asignment_app/assets/images/2.0x/login_bg.png new file mode 100644 index 0000000..1c57e19 Binary files /dev/null and b/making_school_asignment_app/assets/images/2.0x/login_bg.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/login_logo.png b/making_school_asignment_app/assets/images/2.0x/login_logo.png new file mode 100644 index 0000000..e6dc95e Binary files /dev/null and b/making_school_asignment_app/assets/images/2.0x/login_logo.png differ diff --git a/making_school_asignment_app/assets/images/2.0x/personal_bgi.png b/making_school_asignment_app/assets/images/2.0x/personal_bgi.png index f633bd6..efe65ec 100644 Binary files a/making_school_asignment_app/assets/images/2.0x/personal_bgi.png and b/making_school_asignment_app/assets/images/2.0x/personal_bgi.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/check_icon.png b/making_school_asignment_app/assets/images/3.0x/check_icon.png new file mode 100644 index 0000000..f5f18fa Binary files /dev/null and b/making_school_asignment_app/assets/images/3.0x/check_icon.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/ic_home_normal.png b/making_school_asignment_app/assets/images/3.0x/ic_home_normal.png index 44b7e1c..931df28 100644 Binary files a/making_school_asignment_app/assets/images/3.0x/ic_home_normal.png and b/making_school_asignment_app/assets/images/3.0x/ic_home_normal.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/ic_home_press.png b/making_school_asignment_app/assets/images/3.0x/ic_home_press.png index 19ab970..f691873 100644 Binary files a/making_school_asignment_app/assets/images/3.0x/ic_home_press.png and b/making_school_asignment_app/assets/images/3.0x/ic_home_press.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/ic_mine_normal.png b/making_school_asignment_app/assets/images/3.0x/ic_mine_normal.png index e410817..dc9e6b1 100644 Binary files a/making_school_asignment_app/assets/images/3.0x/ic_mine_normal.png and b/making_school_asignment_app/assets/images/3.0x/ic_mine_normal.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/ic_mine_press.png b/making_school_asignment_app/assets/images/3.0x/ic_mine_press.png index 512e001..be507b1 100644 Binary files a/making_school_asignment_app/assets/images/3.0x/ic_mine_press.png and b/making_school_asignment_app/assets/images/3.0x/ic_mine_press.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/ic_work_normal.png b/making_school_asignment_app/assets/images/3.0x/ic_work_normal.png index deb6e0d..723a897 100644 Binary files a/making_school_asignment_app/assets/images/3.0x/ic_work_normal.png and b/making_school_asignment_app/assets/images/3.0x/ic_work_normal.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/ic_work_press.png b/making_school_asignment_app/assets/images/3.0x/ic_work_press.png index ca13777..c40d284 100644 Binary files a/making_school_asignment_app/assets/images/3.0x/ic_work_press.png and b/making_school_asignment_app/assets/images/3.0x/ic_work_press.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/job_data_right_icon.png b/making_school_asignment_app/assets/images/3.0x/job_data_right_icon.png new file mode 100644 index 0000000..a05c6c5 Binary files /dev/null and b/making_school_asignment_app/assets/images/3.0x/job_data_right_icon.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/job_report_class_icon.png b/making_school_asignment_app/assets/images/3.0x/job_report_class_icon.png new file mode 100644 index 0000000..3d103d8 Binary files /dev/null and b/making_school_asignment_app/assets/images/3.0x/job_report_class_icon.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/login_bg.png b/making_school_asignment_app/assets/images/3.0x/login_bg.png new file mode 100644 index 0000000..1c57e19 Binary files /dev/null and b/making_school_asignment_app/assets/images/3.0x/login_bg.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/login_logo.png b/making_school_asignment_app/assets/images/3.0x/login_logo.png new file mode 100644 index 0000000..e6dc95e Binary files /dev/null and b/making_school_asignment_app/assets/images/3.0x/login_logo.png differ diff --git a/making_school_asignment_app/assets/images/3.0x/personal_bgi.png b/making_school_asignment_app/assets/images/3.0x/personal_bgi.png index 83e7ee9..b899eea 100644 Binary files a/making_school_asignment_app/assets/images/3.0x/personal_bgi.png and b/making_school_asignment_app/assets/images/3.0x/personal_bgi.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/check_icon.png b/making_school_asignment_app/assets/images/4.0x/check_icon.png new file mode 100644 index 0000000..f5f18fa Binary files /dev/null and b/making_school_asignment_app/assets/images/4.0x/check_icon.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/ic_home_normal.png b/making_school_asignment_app/assets/images/4.0x/ic_home_normal.png index d12ff70..931df28 100644 Binary files a/making_school_asignment_app/assets/images/4.0x/ic_home_normal.png and b/making_school_asignment_app/assets/images/4.0x/ic_home_normal.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/ic_home_press.png b/making_school_asignment_app/assets/images/4.0x/ic_home_press.png index fd6267a..f691873 100644 Binary files a/making_school_asignment_app/assets/images/4.0x/ic_home_press.png and b/making_school_asignment_app/assets/images/4.0x/ic_home_press.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/ic_mine_normal.png b/making_school_asignment_app/assets/images/4.0x/ic_mine_normal.png index eeed1a9..dc9e6b1 100644 Binary files a/making_school_asignment_app/assets/images/4.0x/ic_mine_normal.png and b/making_school_asignment_app/assets/images/4.0x/ic_mine_normal.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/ic_mine_press.png b/making_school_asignment_app/assets/images/4.0x/ic_mine_press.png index b994e8e..be507b1 100644 Binary files a/making_school_asignment_app/assets/images/4.0x/ic_mine_press.png and b/making_school_asignment_app/assets/images/4.0x/ic_mine_press.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/ic_work_normal.png b/making_school_asignment_app/assets/images/4.0x/ic_work_normal.png index 29bd81d..723a897 100644 Binary files a/making_school_asignment_app/assets/images/4.0x/ic_work_normal.png and b/making_school_asignment_app/assets/images/4.0x/ic_work_normal.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/ic_work_press.png b/making_school_asignment_app/assets/images/4.0x/ic_work_press.png index 431435f..c40d284 100644 Binary files a/making_school_asignment_app/assets/images/4.0x/ic_work_press.png and b/making_school_asignment_app/assets/images/4.0x/ic_work_press.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/job_data_right_icon.png b/making_school_asignment_app/assets/images/4.0x/job_data_right_icon.png new file mode 100644 index 0000000..a05c6c5 Binary files /dev/null and b/making_school_asignment_app/assets/images/4.0x/job_data_right_icon.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/job_report_class_icon.png b/making_school_asignment_app/assets/images/4.0x/job_report_class_icon.png new file mode 100644 index 0000000..3d103d8 Binary files /dev/null and b/making_school_asignment_app/assets/images/4.0x/job_report_class_icon.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/login_bg.png b/making_school_asignment_app/assets/images/4.0x/login_bg.png new file mode 100644 index 0000000..1c57e19 Binary files /dev/null and b/making_school_asignment_app/assets/images/4.0x/login_bg.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/login_logo.png b/making_school_asignment_app/assets/images/4.0x/login_logo.png new file mode 100644 index 0000000..e6dc95e Binary files /dev/null and b/making_school_asignment_app/assets/images/4.0x/login_logo.png differ diff --git a/making_school_asignment_app/assets/images/4.0x/personal_bgi.png b/making_school_asignment_app/assets/images/4.0x/personal_bgi.png index a15351f..e420979 100644 Binary files a/making_school_asignment_app/assets/images/4.0x/personal_bgi.png and b/making_school_asignment_app/assets/images/4.0x/personal_bgi.png differ diff --git a/making_school_asignment_app/assets/images/check_icon.png b/making_school_asignment_app/assets/images/check_icon.png index 6737f02..f5f18fa 100644 Binary files a/making_school_asignment_app/assets/images/check_icon.png and b/making_school_asignment_app/assets/images/check_icon.png differ diff --git a/making_school_asignment_app/assets/images/ic_home_normal.png b/making_school_asignment_app/assets/images/ic_home_normal.png index 3b81a93..931df28 100644 Binary files a/making_school_asignment_app/assets/images/ic_home_normal.png and b/making_school_asignment_app/assets/images/ic_home_normal.png differ diff --git a/making_school_asignment_app/assets/images/ic_home_press.png b/making_school_asignment_app/assets/images/ic_home_press.png index b292be5..f691873 100644 Binary files a/making_school_asignment_app/assets/images/ic_home_press.png and b/making_school_asignment_app/assets/images/ic_home_press.png differ diff --git a/making_school_asignment_app/assets/images/ic_mine_normal.png b/making_school_asignment_app/assets/images/ic_mine_normal.png index 1e5dd34..dc9e6b1 100644 Binary files a/making_school_asignment_app/assets/images/ic_mine_normal.png and b/making_school_asignment_app/assets/images/ic_mine_normal.png differ diff --git a/making_school_asignment_app/assets/images/ic_mine_press.png b/making_school_asignment_app/assets/images/ic_mine_press.png index 03a2784..be507b1 100644 Binary files a/making_school_asignment_app/assets/images/ic_mine_press.png and b/making_school_asignment_app/assets/images/ic_mine_press.png differ diff --git a/making_school_asignment_app/assets/images/ic_work_normal.png b/making_school_asignment_app/assets/images/ic_work_normal.png index 565db6d..723a897 100644 Binary files a/making_school_asignment_app/assets/images/ic_work_normal.png and b/making_school_asignment_app/assets/images/ic_work_normal.png differ diff --git a/making_school_asignment_app/assets/images/ic_work_press.png b/making_school_asignment_app/assets/images/ic_work_press.png index f7d035c..c40d284 100644 Binary files a/making_school_asignment_app/assets/images/ic_work_press.png and b/making_school_asignment_app/assets/images/ic_work_press.png differ diff --git a/making_school_asignment_app/assets/images/job_data_right_icon.png b/making_school_asignment_app/assets/images/job_data_right_icon.png index 7c7edf4..a05c6c5 100644 Binary files a/making_school_asignment_app/assets/images/job_data_right_icon.png and b/making_school_asignment_app/assets/images/job_data_right_icon.png differ diff --git a/making_school_asignment_app/assets/images/job_report_class_icon.png b/making_school_asignment_app/assets/images/job_report_class_icon.png index 525b1d5..3d103d8 100644 Binary files a/making_school_asignment_app/assets/images/job_report_class_icon.png and b/making_school_asignment_app/assets/images/job_report_class_icon.png differ diff --git a/making_school_asignment_app/assets/images/login_bg.png b/making_school_asignment_app/assets/images/login_bg.png index b199639..1c57e19 100644 Binary files a/making_school_asignment_app/assets/images/login_bg.png and b/making_school_asignment_app/assets/images/login_bg.png differ diff --git a/making_school_asignment_app/assets/images/login_logo.png b/making_school_asignment_app/assets/images/login_logo.png index 1b083fe..e6dc95e 100644 Binary files a/making_school_asignment_app/assets/images/login_logo.png and b/making_school_asignment_app/assets/images/login_logo.png differ diff --git a/making_school_asignment_app/assets/images/personal_bgi.png b/making_school_asignment_app/assets/images/personal_bgi.png index a83ea12..efe65ec 100644 Binary files a/making_school_asignment_app/assets/images/personal_bgi.png and b/making_school_asignment_app/assets/images/personal_bgi.png differ diff --git a/making_school_asignment_app/lib/common/job/homework_details.dart b/making_school_asignment_app/lib/common/job/homework_details.dart index c7c1908..6e53448 100644 --- a/making_school_asignment_app/lib/common/job/homework_details.dart +++ b/making_school_asignment_app/lib/common/job/homework_details.dart @@ -78,8 +78,13 @@ class Questions extends Object { @JsonKey(name: 'answerNgStudents') List? answerNgStudents; + @JsonKey(name: 'overallTitles') + List? overallTitles; + + Questions(this.id,this.templateId,this.questionNo,this.questionType,this.answer,this.score,this.questionPicture,this.subjectivePicture,this.knows,this.answerCount, - this.answerRate,this.okRate,this.priorityInfo,this.noAnswerStudents,this.answerOkStudents,this.answerNgStudents); + this.answerRate,this.okRate,this.priorityInfo,this.noAnswerStudents,this.answerOkStudents,this.answerNgStudents, + this.overallTitles); factory Questions.fromJson(Map srcJson) => _$QuestionsFromJson(srcJson); @@ -117,7 +122,6 @@ class Knows extends Object { } - @JsonSerializable() class Students extends Object { @@ -166,6 +170,9 @@ class Students extends Object { @JsonKey(name: 'allNotDone') bool? allNotDone; + @JsonKey(name: 'isAllCorrect') + bool? isAllCorrect; + @JsonKey(name: 'queDtls') List? queDtls; @@ -178,7 +185,7 @@ class Students extends Object { @JsonKey(name: 'useTime') int? useTime; - Students(this.studentId,this.studentName,this.state,this.priorityAnnotate,this.kgtStu,this.kgtOkCount,this.kgtAnswerCount,this.zgtStu,this.zgtAnswerCount,this.zgtOkCount,this.allOk,this.kgtErrorCount,this.zgtErrorCount,this.zgtUnrated,this.allNotDone,this.queDtls,this.okRate,this.noAnswerCount,this.useTime); + Students(this.studentId,this.studentName,this.state,this.priorityAnnotate,this.kgtStu,this.kgtOkCount,this.kgtAnswerCount,this.zgtStu,this.zgtAnswerCount,this.zgtOkCount,this.allOk,this.kgtErrorCount,this.zgtErrorCount,this.zgtUnrated,this.allNotDone,this.queDtls,this.okRate,this.noAnswerCount,this.useTime,this.isAllCorrect); factory Students.fromJson(Map srcJson) => _$StudentsFromJson(srcJson); @@ -237,4 +244,19 @@ class Dtls extends Object { } +@JsonSerializable() +class OverallTitles extends Object { + @JsonKey(name: 'title') + String title; + + @JsonKey(name: 'count') + int count; + + OverallTitles(this.title,this.count); + + factory OverallTitles.fromJson(Map srcJson) => _$OverallTitlesFromJson(srcJson); + + Map toJson() => _$OverallTitlesToJson(this); + +} \ No newline at end of file diff --git a/making_school_asignment_app/lib/common/utils/utils.dart b/making_school_asignment_app/lib/common/utils/utils.dart index c736669..dcfed42 100644 --- a/making_school_asignment_app/lib/common/utils/utils.dart +++ b/making_school_asignment_app/lib/common/utils/utils.dart @@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:making_school_asignment_app/common/job/homework_details.dart'; import 'package:making_school_asignment_app/page/home_page/children/quick_data_check/quick_data_check_state.dart'; +import 'dart:math'; class Utils { Utils._internal(); @@ -81,49 +82,38 @@ class Utils { dataCount.kgtAnswerCount = kgt.where((w) => w.state != 0).length; dataCount.kgtOkCount = kgt.where((w) => w.state == 3).length; dataCount.kgtDtlCount = kgt.length; - dataCount.kgtAnswerRate = Utils.calcRate(dataCount.kgtAnswerCount!, dataCount.kgtDtlCount!); - dataCount.kgtOkRate = Utils.calcRate(dataCount.kgtOkCount!, dataCount.kgtDtlCount!); - dataCount.kgtCount = data.questions.where((w) => w.questionType == 1).length; + dataCount.kgtAnswerRate = + Utils.calcRate(dataCount.kgtAnswerCount!, dataCount.kgtDtlCount!); + dataCount.kgtOkRate = + Utils.calcRate(dataCount.kgtOkCount!, dataCount.kgtDtlCount!); + dataCount.kgtCount = + data.questions.where((w) => w.questionType == 1).length; List zgt = data.dtls.where((w) => w.questionType == 2).toList(); dataCount.zgtAnswerCount = zgt.where((w) => w.state != 0).length; dataCount.zgtOkCount = zgt.where((w) => w.state == 3).length; dataCount.zgtDtlCount = zgt.length; - dataCount.zgtAnswerRate = Utils.calcRate(dataCount.zgtAnswerCount!, dataCount.zgtDtlCount!); - dataCount.zgtOkRate = Utils.calcRate(dataCount.zgtOkCount!, dataCount.zgtDtlCount!); - dataCount.zgtCount = data.questions.where((w) => w.questionType == 2).length; + dataCount.zgtAnswerRate = + Utils.calcRate(dataCount.zgtAnswerCount!, dataCount.zgtDtlCount!); + dataCount.zgtOkRate = + Utils.calcRate(dataCount.zgtOkCount!, dataCount.zgtDtlCount!); + dataCount.zgtCount = + data.questions.where((w) => w.questionType == 2).length; dataCount.studentCount = data.students.length; - dataCount.priorityStudents = data.students.where((w) => w.priorityAnnotate!).toList(); + dataCount.priorityStudents = + data.students.where((w) => w.priorityAnnotate!).toList(); - for (var que in data.questions) { - List ques = data.dtls.where((w) => w.templateId == que.templateId && w.questionNo == que.questionNo).toList(); - que.answerCount = ques.where((w) => w.state != 0).length; - que.answerRate = Utils.calcRate(que.answerCount!, dataCount.studentCount!); - int okCount = ques.where((w) => w.state == 3).length; - que.okRate = Utils.calcRate(okCount, dataCount.studentCount!); - que.priorityInfo = ques.where((w) { - return dataCount.priorityStudents!.indexWhere((s) { - w.studentName = s.studentName; - return s.studentId == w.studentId; - }) > - -1 && - w.state != 3; - }).toList(); - que.answerNgStudents = ques.where((w) { - w.studentName = data.students.firstWhere((s) => s.studentId == w.studentId).studentName; - return w.state == 2; - }).toList(); - - que.noAnswerStudents = ques.where((w) { - return w.state == 0; - }).toList(); - que.answerOkStudents = ques.where((w) { - return w.state == 3; - }).toList(); - } - - dataCount.studentSubmitCount = data.students.where((s) => s.state != 0).length; +//已提交学生数 + dataCount.studentSubmitCount = + data.students.where((s) => s.state != 0).length; + dataCount.studentSubmitStudents = + data.students.where((s) => s.state != 0).toList(); +//未提交学生数 + dataCount.noAnswerCount = + data.students.length - dataCount.studentSubmitCount!; + dataCount.noAnswerStudents = + data.students.where((s) => s.state == 0).toList(); for (var stu in data.students) { stu.kgtStu = kgt.where((w) => w.studentId == stu.studentId).toList(); @@ -138,12 +128,17 @@ class Utils { stu.zgtErrorCount = stu.zgtStu!.where((w) => w.state == 2).length; stu.zgtUnrated = stu.zgtStu!.where((w) => w.state == 1).length; stu.zgtAnswerCount = stu.zgtStu!.where((w) => w.state != 0).length; + stu.isAllCorrect = + stu.kgtOkCount! + stu.zgtOkCount! == kgt.length + zgt.length + ? true + : false; stu.allOk = data.dtls.where((w) { if (stu.studentId == w.studentId) { stu.useTime = w.useTime; } for (var que in data.questions) { - if (w.templateId == que.templateId && w.questionNo == que.questionNo) { + if (w.templateId == que.templateId && + w.questionNo == que.questionNo) { w.answer = que.answer; w.questionPicture = que.questionPicture; } @@ -151,16 +146,25 @@ class Utils { return w.studentId == stu.studentId && w.state != 3; }).length ?? 0; - if ((stu.kgtStu!.length - stu.kgtAnswerCount!) + (stu.zgtStu!.length - stu.zgtAnswerCount!) == (stu.kgtStu!.length + stu.zgtStu!.length)) { + if ((stu.kgtStu!.length - stu.kgtAnswerCount!) + + (stu.zgtStu!.length - stu.zgtAnswerCount!) == + (stu.kgtStu!.length + stu.zgtStu!.length)) { stu.allNotDone = true; } else { stu.allNotDone = false; } - stu.noAnswerCount = data.dtls.where((w) => w.state == 0 && stu.studentId == w.studentId).length; + stu.noAnswerCount = data.dtls + .where((w) => w.state == 0 && stu.studentId == w.studentId) + .length; List ques = data.questions; stu.queDtls = data.dtls - .where((w) => w.studentId == stu.studentId && ques.indexWhere((q) => w.templateId == q.templateId && w.questionNo == q.questionNo) > -1) + .where((w) => + w.studentId == stu.studentId && + ques.indexWhere((q) => + w.templateId == q.templateId && + w.questionNo == q.questionNo) > + -1) .toList(); int okCount = stu.queDtls!.where((w) => w.state == 3).length; int ttlCount = stu.queDtls!.length; @@ -172,10 +176,107 @@ class Utils { int num2 = b.state; return num2.compareTo(num1); }); +//全对 + dataCount.allCorrect = + data.students.where((w) => w.isAllCorrect == true).length; + dataCount.allCorrectStudents = + data.students.where((w) => w.isAllCorrect == true).toList(); + //优 + dataCount.levelOneCount = + data.students.where((s) => s.okRate! >= 85).length; + dataCount.levelOneStudents = + data.students.where((s) => s.okRate! >= 85).toList(); + + //良 + dataCount.levelTwoCount = + data.students.where((s) => s.okRate! < 85 && s.okRate! >= 55).length; + dataCount.levelTwoStudents = + data.students.where((s) => s.okRate! < 85 && s.okRate! >= 55).toList(); + + //中 + dataCount.levelThreeCount = + data.students.where((s) => s.okRate! < 55 && s.okRate! >= 25).length; + dataCount.levelThreeStudents = + data.students.where((s) => s.okRate! < 55 && s.okRate! >= 25).toList(); + + //差 + dataCount.levelFourCount = + data.students.where((s) => s.okRate! < 25).length; + dataCount.levelFourStudents = + data.students.where((s) => s.okRate! < 25).toList(); + + for (var que in data.questions) { + List ques = data.dtls + .where((w) => + w.templateId == que.templateId && w.questionNo == que.questionNo) + .toList(); + que.answerCount = ques.where((w) => w.state != 0).length; + que.answerRate = + Utils.calcRate(que.answerCount!, dataCount.studentCount!); + int okCount = ques.where((w) => w.state == 3).length; + que.okRate = Utils.calcRate(okCount, dataCount.studentCount!); + que.priorityInfo = ques.where((w) { + return dataCount.priorityStudents!.indexWhere((s) { + w.studentName = s.studentName; + return s.studentId == w.studentId; + }) > + -1 && + w.state != 3; + }).toList(); + + que.answerNgStudents = ques.where((w) { + w.studentName = data.students + .firstWhere((s) => s.studentId == w.studentId) + .studentName; + return w.state == 2; + }).toList(); + + que.noAnswerStudents = ques.where((w) { + return w.state == 0; + }).toList(); + que.answerOkStudents = ques.where((w) { + return w.state == 3; + }).toList(); + + + //作答效率 + int middleTime = 0; + if (ques.length % 2 == 0) { + int index = (ques.length / 2).ceil(); + middleTime = ((ques[index].useTime + + ques[index - 1].useTime) / + 2) + .ceil(); + } else { + int index = ((ques.length + 1) / 2).ceil() ; + middleTime = ques[index - 1 ].useTime; + } + + var excellent = ques.where((w) => w.state == 3 && w.useTime <= middleTime).length; + var good = ques.where((w) => w.state == 3 && w.useTime > middleTime).length; + var middle = ques.where((w) => w.state != 3 && w.useTime <= middleTime).length; + var differ = ques.where((w) => w.state != 3 && w.useTime > middleTime).length; + + que.overallTitles = [OverallTitles('优秀',excellent),OverallTitles('良好',good), + OverallTitles('中',middle),OverallTitles('差',differ)]; + + + } + + for (var know in data.knows) { - List ques = data.questions.where((w) => w.knows.indexWhere((k) => k.knowledgeId == know.knowledgeId) > -1).toList(); - List queDtls = data.dtls.where((w) => ques.indexWhere((q) => w.templateId == q.templateId && w.questionNo == q.questionNo) > -1).toList(); + List ques = data.questions + .where((w) => + w.knows.indexWhere((k) => k.knowledgeId == know.knowledgeId) > -1) + .toList(); + List queDtls = data.dtls + .where((w) => + ques.indexWhere((q) => + w.templateId == q.templateId && + w.questionNo == q.questionNo) > + -1) + .toList(); know.okCount = queDtls.where((w) => w.state == 3).length; know.ttlCount = queDtls.length; know.okRate = Utils.calcRate(know.okCount!, know.ttlCount!); @@ -210,6 +311,7 @@ bool isPad([double mobilePhoneScale = 1.2]) { return ScreenUtil().scaleWidth > mobilePhoneScale; } -void toUpState(Function(void Function()) setState, VoidCallback fn, bool mounted) { +void toUpState( + Function(void Function()) setState, VoidCallback fn, bool mounted) { if (mounted) setState(fn); -} +} \ No newline at end of file diff --git a/making_school_asignment_app/lib/main.dart b/making_school_asignment_app/lib/main.dart index 84ce68a..414aa32 100644 --- a/making_school_asignment_app/lib/main.dart +++ b/making_school_asignment_app/lib/main.dart @@ -45,8 +45,8 @@ class MyApp extends StatelessWidget { debugShowCheckedModeBanner: false, theme: ThemeData( brightness: Brightness.light, - primarySwatch: createMaterialColor(const Color.fromRGBO(46, 91, 255, 1)), - primaryColor: const Color.fromRGBO(46, 91, 255, 1), + primarySwatch: createMaterialColor(const Color.fromRGBO(76, 199, 147, 1)), + primaryColor: const Color.fromRGBO(76, 199, 147, 1), // textTheme: Typography.englishLike2018.apply(fontSizeFactor: 1.sp,), primaryTextTheme: TextTheme( bodyLarge: TextStyle(fontSize: 14.sp, color: Colors.black87), @@ -54,7 +54,7 @@ class MyApp extends StatelessWidget { useMaterial3: false, colorScheme: const ColorScheme.light( // 修改亮色主题的主题颜色 - primary: Color.fromRGBO(46, 91, 255, 1), + primary: Color.fromRGBO(76, 199, 147, 1), )), enableLog: true, logWriterCallback: (text, {bool isError = false}) { diff --git a/making_school_asignment_app/lib/page/global_widget/bottom_navigation_bar.dart b/making_school_asignment_app/lib/page/global_widget/bottom_navigation_bar.dart index 4a5c1be..69da1e8 100644 --- a/making_school_asignment_app/lib/page/global_widget/bottom_navigation_bar.dart +++ b/making_school_asignment_app/lib/page/global_widget/bottom_navigation_bar.dart @@ -73,7 +73,7 @@ class MyBottomNavigationBar extends StatelessWidget { Text( e['title'] as String, style: TextStyle( - color: active == (e['id'] as int) ? const Color(0xFF6888FD) : const Color(0xFF767676), + color: active == (e['id'] as int) ? const Color(0xFFE8E8E8) : const Color(0xFF767676), fontSize: 11.sp, ), strutStyle: StrutStyle(fontSize: 16.sp), diff --git a/making_school_asignment_app/lib/page/global_widget/other_page.dart b/making_school_asignment_app/lib/page/global_widget/other_page.dart index 8e4ac20..9a36d0d 100644 --- a/making_school_asignment_app/lib/page/global_widget/other_page.dart +++ b/making_school_asignment_app/lib/page/global_widget/other_page.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:making_school_asignment_app/common/const_text.dart'; +import 'package:making_school_asignment_app/routes/app_pages.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:making_school_asignment_app/page/global_widget/my_text.dart'; // 其他页面 @@ -70,11 +72,7 @@ class _OhterPageState extends State { children: [ InkWell( onTap: () { - /* RouterManager.router.navigateTo( - context, - transition: TransitionType.fadeIn, - '${RouterManager.agreementPath}?type=${AGREEMENT_KEY.PRIVACY_GREEMENT.name}', - );*/ + Get.toNamed(Routes.agreementPage, arguments: {"type": AGREEMENT_KEY.PRIVACY_GREEMENT.name}); }, child: Container( padding: EdgeInsets.only(bottom: 4.h), diff --git a/making_school_asignment_app/lib/page/home_page/children/annotate_class/annotate_class_logic.dart b/making_school_asignment_app/lib/page/home_page/children/annotate_class/annotate_class_logic.dart index d4b6ad1..efab5f5 100644 --- a/making_school_asignment_app/lib/page/home_page/children/annotate_class/annotate_class_logic.dart +++ b/making_school_asignment_app/lib/page/home_page/children/annotate_class/annotate_class_logic.dart @@ -21,7 +21,7 @@ class AnnotateClassLogic extends GetxController with RequestToolMixin { super.onInit(); state.preIndex = Get.arguments['tabIndex'] ?? 3; if(state.preIndex != 3){ - readOverController = Get.find(); + // readOverController = Get.find(); } refreshController = EasyRefreshController(); state.homeworkId.value = Get.arguments['id'] ?? ''; diff --git a/making_school_asignment_app/lib/page/home_page/children/annotate_class/annotate_class_view.dart b/making_school_asignment_app/lib/page/home_page/children/annotate_class/annotate_class_view.dart index bfbfa01..458cdc0 100644 --- a/making_school_asignment_app/lib/page/home_page/children/annotate_class/annotate_class_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/annotate_class/annotate_class_view.dart @@ -124,9 +124,9 @@ class _AnnotateClassPageState extends State { Get.delete(); super.dispose(); if(state.preIndex != 3){ - logic.readOverController.state.tabIndex.value = state.preIndex; + // logic.readOverController.state.tabIndex.value = state.preIndex; }else{ - logic.homeController.getList(); + // logic.homeController.getList(); } } diff --git a/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/annotate_item.dart b/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/annotate_item.dart index f0e199b..1b721a9 100644 --- a/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/annotate_item.dart +++ b/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/annotate_item.dart @@ -46,7 +46,7 @@ class _AnnotateItemState extends State { height: 27.r, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(20.r)), - color: const Color(0xFF6888FD), + color: const Color(0xFF4CC793), ), child: const Center( child: Text( @@ -104,7 +104,7 @@ class _AnnotateItemState extends State { const Spacer(), Text( '已交:${widget.item.commitStudentCount}', - style: TextStyle(fontSize: widget.font - 2.sp, color: const Color(0xFF6888FD)), + style: TextStyle(fontSize: widget.font - 2.sp, color: const Color(0xFF4CC793)), ), SizedBox( width: 20.r, @@ -230,21 +230,21 @@ class _AnnotateItemState extends State { ), ProgressBar( title: '客观题正确率:', - color: const Color(0xFFB8C7FF), + color: const Color(0xFF4CC793), percent: widget.item.kgtCorrectRate / 100, marginEdg: EdgeInsets.zero, padingEdg: EdgeInsets.only(top: 8.h, left: 14.r, right: 14.r), fontSize: widget.font - 2.sp), ProgressBar( title: '主观题正确率:', - color: const Color(0xFFB8C7FF), + color: const Color(0xFF4CC793), percent: widget.item.zgtCorrectRate / 100, padingEdg: EdgeInsets.symmetric(horizontal: 10.r), marginEdg: EdgeInsets.only(top: 8.h), fontSize: widget.font - 2.sp), ProgressBar( title: '总正确率:', - color: const Color(0xFFB8C7FF), + color: const Color(0xFF4CC793), percent: widget.item.correctRate / 100, padingEdg: EdgeInsets.symmetric(horizontal: 10.r), marginEdg: EdgeInsets.only(top: 8.h), diff --git a/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/completed_annotate_item.dart b/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/completed_annotate_item.dart index 97a4f0d..2236cf4 100644 --- a/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/completed_annotate_item.dart +++ b/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/completed_annotate_item.dart @@ -43,7 +43,7 @@ class CompletedAnnotateItem extends StatelessWidget { decoration: BoxDecoration( border: Border(bottom: BorderSide(color: Color.fromRGBO(238, 238, 238, 1), width: 0.5.r)), ), - child: quickText(taskItem.className, color: Color.fromRGBO(104, 136, 253, 1), size: 12.sp), + child: quickText(taskItem.className, color: Color(0xFF4CC793), size: 12.sp), ), Column( mainAxisSize: MainAxisSize.min, diff --git a/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/item_btn.dart b/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/item_btn.dart index 729ebb4..5370588 100644 --- a/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/item_btn.dart +++ b/making_school_asignment_app/lib/page/home_page/children/annotate_class/widget/item_btn.dart @@ -14,7 +14,7 @@ class ItemBtn extends StatelessWidget { child: ElevatedButton( style: ButtonStyle( overlayColor:WidgetStateProperty.all( - const Color(0xFF6888FD)), + const Color(0xFFE8E8E8)), backgroundColor: WidgetStateProperty.all( const Color(0xFFF4F4F4)), diff --git a/making_school_asignment_app/lib/page/home_page/children/answer_trajectory/answer_trajectory_view.dart b/making_school_asignment_app/lib/page/home_page/children/answer_trajectory/answer_trajectory_view.dart index 28a581e..5675426 100644 --- a/making_school_asignment_app/lib/page/home_page/children/answer_trajectory/answer_trajectory_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/answer_trajectory/answer_trajectory_view.dart @@ -59,7 +59,7 @@ class _AnswerTrajectoryPageState extends State { tabAlignment: TabAlignment.start, indicator: const UnderlineTabIndicator( borderSide: BorderSide( - color: const Color.fromRGBO(104, 136, 253, 1), + color: const Color(0xFF4CC793), ), ), @@ -97,10 +97,10 @@ class _AnswerTrajectoryPageState extends State { TextStyle(fontSize: 14.sp, color: Color(0xFF666666)), labelStyle: TextStyle( fontSize: 14.sp, - color: Color(0xFF6888FD), + color: Color(0xFF4CC793), ), isScrollable: true, - labelColor: Color(0xFF6888FD), + labelColor: Color(0xFF4CC793), unselectedLabelColor: Color(0xFF666666), indicatorSize: TabBarIndicatorSize.label, labelPadding: const EdgeInsets.all(0), diff --git a/making_school_asignment_app/lib/page/home_page/children/answer_trajectory/widget/answer_trajectory_job.dart b/making_school_asignment_app/lib/page/home_page/children/answer_trajectory/widget/answer_trajectory_job.dart index 0512839..a8e2a4e 100644 --- a/making_school_asignment_app/lib/page/home_page/children/answer_trajectory/widget/answer_trajectory_job.dart +++ b/making_school_asignment_app/lib/page/home_page/children/answer_trajectory/widget/answer_trajectory_job.dart @@ -63,7 +63,7 @@ class AnswerTrajectoryJob extends StatelessWidget { padding: EdgeInsets.only(left: 2.w), decoration: BoxDecoration( color: - const Color.fromRGBO(104, 136, 253, 1), + const Color(0xFF4CC793), borderRadius: BorderRadius.only( topLeft: Radius.circular(14.r), topRight: Radius.circular(3.r), @@ -195,7 +195,7 @@ class AnswerTrajectoryJob extends StatelessWidget { padding: EdgeInsets.only(left: 2.w), decoration: BoxDecoration( color: - const Color.fromRGBO(104, 136, 253, 1), + const Color(0xFF4CC793), borderRadius: BorderRadius.only( topLeft: Radius.circular(14.r), topRight: Radius.circular(3.r), diff --git a/making_school_asignment_app/lib/page/home_page/children/answer_trajectory_detail/answer_trajectory_detail_view.dart b/making_school_asignment_app/lib/page/home_page/children/answer_trajectory_detail/answer_trajectory_detail_view.dart index 6b05ed5..72aa596 100644 --- a/making_school_asignment_app/lib/page/home_page/children/answer_trajectory_detail/answer_trajectory_detail_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/answer_trajectory_detail/answer_trajectory_detail_view.dart @@ -94,7 +94,7 @@ class _AnswerTrajectoryDetailPageState fontSize: 10.sp, color: state.currentClass.value .classId == item.classId - ? Color(0xFF6888FD) + ? Color(0xFF4CC793) : Color(0xFF686868)), ), ), @@ -159,7 +159,7 @@ class _AnswerTrajectoryDetailPageState item.studentName, style: TextStyle( fontSize: 12.sp, - color: Color(0xFF6888FD)), + color: Color(0xFF4CC793)), )), Container( @@ -208,7 +208,7 @@ class _AnswerTrajectoryDetailPageState item.studentName, style: TextStyle( fontSize: 12.sp, - color: Color(0xFF6888FD)), + color: Color(0xFF4CC793)), )), Container( height: 24.r, diff --git a/making_school_asignment_app/lib/page/home_page/children/class_student/class_student_view.dart b/making_school_asignment_app/lib/page/home_page/children/class_student/class_student_view.dart index 23b4bba..2f49a0c 100644 --- a/making_school_asignment_app/lib/page/home_page/children/class_student/class_student_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/class_student/class_student_view.dart @@ -96,7 +96,7 @@ class _ClassStudentPageState extends State { item.name, style: TextStyle( fontSize: 12.sp, - color: const Color(0xFF6888FD)), + color: const Color(0xFF4CC793)), )), state.page == 'answerTrajectory' ? Container( @@ -121,7 +121,7 @@ class _ClassStudentPageState extends State { width: 70.r, decoration: BoxDecoration( color: - const Color(0xFF6888FD), + const Color(0xFF4CC793), borderRadius: BorderRadius.all( Radius.circular( @@ -272,7 +272,7 @@ class _ClassStudentPageState extends State { item.name, style: TextStyle( fontSize: 12.sp, - color: Color(0xFF6888FD)), + color: Color(0xFF4CC793)), )), state.page == 'answerTrajectory' ? Container( @@ -296,7 +296,7 @@ class _ClassStudentPageState extends State { height: 24.r, width: 82.r, decoration: BoxDecoration( - color: Color(0xFF6888FD), + color: Color(0xFF4CC793), borderRadius: BorderRadius.all( Radius.circular( diff --git a/making_school_asignment_app/lib/page/home_page/children/fav_student/fav_student_view.dart b/making_school_asignment_app/lib/page/home_page/children/fav_student/fav_student_view.dart index 05fd3b7..6550fdb 100644 --- a/making_school_asignment_app/lib/page/home_page/children/fav_student/fav_student_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/fav_student/fav_student_view.dart @@ -58,7 +58,7 @@ class _FavStudentPageState extends State { height: 27.r, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(20.r)), - color: const Color(0xFF6888FD), + color: const Color(0xFF4CC793), ), child: const Center( child: Text( diff --git a/making_school_asignment_app/lib/page/home_page/children/job_report/job_report_view.dart b/making_school_asignment_app/lib/page/home_page/children/job_report/job_report_view.dart index a974dee..537277a 100644 --- a/making_school_asignment_app/lib/page/home_page/children/job_report/job_report_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/job_report/job_report_view.dart @@ -8,6 +8,7 @@ import 'package:making_school_asignment_app/page/home_page/children/job_report/w import 'package:making_school_asignment_app/page/global_widget/my_text.dart'; import 'package:making_school_asignment_app/page/home_page/children/job_report/widget/knowledge_point.dart'; import 'package:making_school_asignment_app/page/home_page/children/job_report/widget/personnel_data_overview.dart'; +import 'package:making_school_asignment_app/page/home_page/children/job_report/widget/top_count.dart'; import 'package:making_school_asignment_app/page/home_page/children/quick_data_check/widget/kgt_zgt_table.dart'; import 'job_report_logic.dart'; @@ -75,8 +76,8 @@ class _JobReportPageState extends State { ), ), //完成率、正确率 - /* TopCount( - data, classData == null ? '' : classData!.className, widget.id),*/ + TopCount( + state.dataCount, state.classData == null ? '' : state.classData.value.className, state.homeworkId.value), //客观题、主观题 KgtZgtTable( studentCount: state.dataCount.studentCount!, diff --git a/making_school_asignment_app/lib/page/home_page/children/job_report/widget/top_count.dart b/making_school_asignment_app/lib/page/home_page/children/job_report/widget/top_count.dart new file mode 100644 index 0000000..7d95009 --- /dev/null +++ b/making_school_asignment_app/lib/page/home_page/children/job_report/widget/top_count.dart @@ -0,0 +1,257 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:functional_widget_annotation/functional_widget_annotation.dart'; +import 'package:making_school_asignment_app/common/job/homework_details.dart'; +import 'package:making_school_asignment_app/page/global_widget/MyEmptyWidget.dart'; +import 'package:making_school_asignment_app/page/global_widget/show_student_list.dart'; +import 'package:making_school_asignment_app/page/home_page/children/quick_data_check/quick_data_check_state.dart'; + + +class TopCount extends StatelessWidget { + final CountData data; + final String className; + final String jobId; + + const TopCount(this.data, this.className, this.jobId, {Key? key}) : super(key: key); + + void showStudentListDialog({required BuildContext context, required String title, required List students}) { + showDialog( + context: context, + builder: (BuildContext context) { + return ShowStudentList( + title: title, + studentList: students, + homeworkId: jobId, + ); + }, + ); + /*showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + // insetPadding: EdgeInsets.symmetric(vertical: 20.r,horizontal: 20.r), + contentPadding: EdgeInsets.all(20.r), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(15.r))), + content: SizedBox( + width: MediaQuery.of(context).size.width * 0.7, + height: MediaQuery.of(context).size.height * 0.7, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Text( + className + title, + style: TextStyle(fontSize: 15.sp, color: Color(0xFF3C3C3C), fontWeight: FontWeight.w500), + ), + ), + SizedBox( + height: 5.r, + ), + SizedBox( + height: 15.r, + ), + arr.length > 0 + ? Expanded( + child: ListView.builder( + shrinkWrap: true, + itemBuilder: (context, index) { + AnswerOkStudents item = arr[index]; + return InkWell( + onTap: () { + *//*RouterManager.router.navigateTo( + context, + RouterManager.quickCheckPersonalPath + '?jobId=$jobId&studentId=${item.id}', + transition: getTransition(), + );*//* + }, + child: Container( + padding: EdgeInsets.symmetric(vertical: 5.r, horizontal: 15.r), + color: index.isOdd ? Colors.white : Color(0xFFF0F0F0), + child: Text( + item.name, + style: TextStyle(fontSize: 12.sp, color: Color(0xFF323232)), + ), + ), + ); + }, + itemCount: arr.length, + ), + ) + : const MyEmptyWidget() + ], + ), + ), + ); + });*/ + } + + @override + Widget build(BuildContext context) { + double leftWidth = (MediaQuery.of(context).size.width - 40.r) * 0.7 / 3; + double rightWidth = (MediaQuery.of(context).size.width - 40.r) * 0.3 / 2; + return Container( + padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 10.r), + margin: EdgeInsets.symmetric(vertical: 10.r, horizontal: 10.r), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(6.r)), + ), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + InkWell( + onTap: () { + showStudentListDialog(context: context, title: '未提交作业学生', students: data.noAnswerStudents!); + }, + child: leftContainer(context, count: data.noAnswerCount!, name: '未提交', nameColor: Color(0xFFD92F2F), bgColor: Color(0xFFEEEEEE)), + ), + InkWell( + onTap: () { + showStudentListDialog(context: context, title: '已提交作业学生', students: data.studentSubmitStudents!); + }, + child: leftContainer(context, count: data.studentSubmitCount!, name: '已提交', nameColor: Color(0xFF4CC793), bgColor: Color(0xFFF5F5F5)), + ), + InkWell( + onTap: () { + showStudentListDialog(context: context, title: '全对作业学生', students: data.allCorrectStudents!); + }, + child: leftContainer(context, count: data.allCorrect!, name: '全对', nameColor: Color(0xFFFF9800), bgColor: Color(0xFFEEEEEE)), + ), + Container( + height: 92.r, + width: rightWidth, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: InkWell( + onTap: () { + showStudentListDialog(context: context, title: '优等作业学生', students: data.levelOneStudents!); + }, + child: rightContainer( + count: data.levelOneCount!, + bgColor: Color(0xFF56FFB8), + nameColor: Color(0xFF009254), + name: '优', + ), + )), + Expanded( + child: InkWell( + onTap: () { + showStudentListDialog(context: context, title: '中等作业学生', students: data.levelThreeStudents!); + }, + child: + rightContainer(count: data.levelThreeCount!, bgColor: Color(0xFFD3FF93), nameColor: Color(0xFF3F6605), name: '中'), + )), + ], + ), + ), + Container( + height: 92.r, + width: rightWidth, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: InkWell( + onTap: () { + showStudentListDialog(context: context, title: '良等作业学生', students: data.levelTwoStudents!); + }, + child: + rightContainer(count: data.levelTwoCount!, bgColor: Color(0xFFFFC38C), nameColor: Color(0xFFD36500), name: '良'), + )), + Expanded( + child: InkWell( + onTap: () { + showStudentListDialog(context: context, title: '差等作业学生', students: data.levelFourStudents!); + }, + child: + rightContainer(count: data.levelFourCount!, bgColor: Color(0xFFFF9D94), nameColor: Color(0xFFD12616), name: '差'), + )), + ], + ), + ) + ], + ), + ], + ), + ); + } +} + +@swidget +Widget leftContainer(context, {required int count, required String name, required Color nameColor, required Color bgColor}) { + double leftWidth = (MediaQuery.of(context).size.width - 40.r) * 0.7 / 3; + return Container( + width: leftWidth, + height: 92.r, + padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 6.r), + color: bgColor, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: 5.r, + ), + Row( + crossAxisAlignment: CrossAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + count.toString(), + style: TextStyle(fontSize: 18.sp, color: Color(0xFF595959), fontWeight: FontWeight.w600), + ), + Text( + '人', + style: TextStyle(fontSize: 10.sp, color: Color(0xFF595959), fontWeight: FontWeight.w600), + ), + ], + ), + SizedBox( + height: 20.r, + ), + Text( + name, + style: TextStyle(fontSize: 12.sp, color: nameColor, fontWeight: FontWeight.w500), + ) + ], + ), + ); +} + +@swidget +Widget rightContainer({required int count, required Color bgColor, required Color nameColor, required String name}) { + return Container( + color: bgColor, + child: Column( + children: [ + SizedBox( + height: 5.r, + ), + Row( + crossAxisAlignment: CrossAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + count.toString(), + style: TextStyle(fontSize: 12.sp, color: nameColor, fontWeight: FontWeight.w600), + ), + Text( + '人', + style: TextStyle(fontSize: 8.sp, color: nameColor, fontWeight: FontWeight.w600), + ), + ], + ), + SizedBox( + height: 5.r, + ), + Text( + name, + style: TextStyle(fontSize: 12.sp, color: nameColor, fontWeight: FontWeight.w500), + ) + ], + ), + ); +} diff --git a/making_school_asignment_app/lib/page/home_page/children/knowledge_points_grasp/knowledge_points_grasp_view.dart b/making_school_asignment_app/lib/page/home_page/children/knowledge_points_grasp/knowledge_points_grasp_view.dart index cadb486..edbca95 100644 --- a/making_school_asignment_app/lib/page/home_page/children/knowledge_points_grasp/knowledge_points_grasp_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/knowledge_points_grasp/knowledge_points_grasp_view.dart @@ -88,7 +88,7 @@ class _KnowledgePointsGraspPageState extends State { height: 30.r, decoration: BoxDecoration( borderRadius: BorderRadius.circular(4.r), - color: Color(0xFF6888FD), + color: Color(0xFF4CC793), ), child: Center( child: Text( @@ -200,19 +200,20 @@ class _KnowledgePointsGraspPageState extends State { height: 22.r, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(20.r)), - border: Border.all(width: 1.r, color: Color(0xFF6888FD)), + border: Border.all(width: 1.r, color: Color(0xFF4CC793)), ), child: Row( mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( '${item.count}次', - style: TextStyle(fontSize: 10.sp, color: Color(0xFF6888FD)), + style: TextStyle(fontSize: 10.sp, color: Color(0xFF4CC793)), ), Image.asset( - 'assets/images/right_icon_blue.png', - width: 8.r, - height: 8.r, + 'assets/images/job_data_right_icon.png', + width: 10.r, + height: 10.r, ), ], ), diff --git a/making_school_asignment_app/lib/page/home_page/children/knowledge_points_grasp_detail/knowledge_points_grasp_detail_view.dart b/making_school_asignment_app/lib/page/home_page/children/knowledge_points_grasp_detail/knowledge_points_grasp_detail_view.dart index 15c891d..e15b169 100644 --- a/making_school_asignment_app/lib/page/home_page/children/knowledge_points_grasp_detail/knowledge_points_grasp_detail_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/knowledge_points_grasp_detail/knowledge_points_grasp_detail_view.dart @@ -3,6 +3,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:making_school_asignment_app/common/config/request_config.dart'; import 'package:percent_indicator/percent_indicator.dart'; import 'package:making_school_asignment_app/common/job/knowledge_report_detail.dart'; import 'package:making_school_asignment_app/common/utils/toast_utils.dart'; @@ -38,7 +39,7 @@ class _KnowledgePointsGraspDetailPageState extends State? priorityStudents = []; + List? noAnswerStudents = []; + List? studentSubmitStudents = []; + List? allCorrectStudents = []; + List? levelOneStudents = []; + List? levelTwoStudents = []; + List? levelThreeStudents = []; + List? levelFourStudents = []; int? studentSubmitCount = 0; + int? noAnswerCount = 0; + int? allCorrect = 0; + int? levelOneCount = 0; + int? levelTwoCount = 0; + int? levelThreeCount = 0; + int? levelFourCount = 0; CountData({ this.kgtOkCount, this.kgtDtlCount, @@ -50,5 +63,19 @@ class CountData extends Object { this.zgtCount, this.priorityStudents, this.studentSubmitCount, + this.noAnswerCount, + this.allCorrect, + this.noAnswerStudents, + this.studentSubmitStudents, + this.allCorrectStudents, + this.levelOneCount, + this.levelOneStudents, + this.levelTwoCount, + this.levelTwoStudents, + this.levelThreeCount, + this.levelThreeStudents, + this.levelFourCount, + this.levelFourStudents, + }); } diff --git a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/quick_data_check_view.dart b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/quick_data_check_view.dart index f7c5cf1..21b87cf 100644 --- a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/quick_data_check_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/quick_data_check_view.dart @@ -40,7 +40,7 @@ class _QuickDataCheckPageState extends State { height: MediaQuery.of(context).size.height, decoration: const BoxDecoration( gradient: LinearGradient(begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ - Color(0xFF6889FD), + Color(0xFF4CC793), Color(0xFFF5F5F5), ], stops: [ 0.09, diff --git a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/kgt_zgt_table.dart b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/kgt_zgt_table.dart index a045efa..76d560a 100644 --- a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/kgt_zgt_table.dart +++ b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/kgt_zgt_table.dart @@ -61,7 +61,7 @@ class _KgtZgtTableState extends State { ), Text( '${widget.kgtOkRate}%', - style: TextStyle(fontSize: 14.sp, color: Color(0xFF6888FD), fontWeight: FontWeight.w600), + style: TextStyle(fontSize: 14.sp, color: Color(0xFF4CC793), fontWeight: FontWeight.w600), ), ], ), @@ -106,7 +106,7 @@ class _KgtZgtTableState extends State { ), Text( '${widget.zgtOkRate}%', - style: TextStyle(fontSize: 14.sp, color: const Color(0xFF6888FD), fontWeight: FontWeight.w600), + style: TextStyle(fontSize: 14.sp, color: const Color(0xFF4CC793), fontWeight: FontWeight.w600), ), ], ), @@ -116,11 +116,11 @@ class _KgtZgtTableState extends State { SizedBox( height: widget.zgReport.length > 10 ? 300.r : widget.zgReport.length * 40.r + (Utils.isPad() == true ? 40.r : 65.r), child: ReportTable( - headList: const ['题', '作答率', '作答人数', '正确率', '查看原题', '优先批阅概况'], + headList: const ['题', '作答率', '作答人数', '正确率', '查看原题', '优先批阅概况','作答效率'], bodyList: widget.zgReport, fixedCols: 1, fixedRows: 1, - isKG: true, + isZG: true, jobId: widget.homeworkId, studentCount: widget.studentCount, ), diff --git a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/quick_student_data_table.dart b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/quick_student_data_table.dart index 61d0f12..a0651ba 100644 --- a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/quick_student_data_table.dart +++ b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/quick_student_data_table.dart @@ -58,7 +58,7 @@ class _QuickStudentDataTableState extends State { mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text(item.studentName!, style: TextStyle(fontSize: 10.sp, color: const Color(0xFF6888FD), overflow: TextOverflow.ellipsis)), + Text(item.studentName!, style: TextStyle(fontSize: 10.sp, color: const Color(0xFF4CC793), overflow: TextOverflow.ellipsis)), SizedBox( width: 5.r, ), @@ -168,7 +168,7 @@ class _QuickStudentDataTableState extends State { DataCell(Center( child: Padding( padding: EdgeInsets.symmetric(horizontal: 5.r), - child: Text('${item.zgtUnrated}', style: TextStyle(fontSize: 10.sp, color: const Color(0xFF6888FD))), + child: Text('${item.zgtUnrated}', style: TextStyle(fontSize: 10.sp, color: const Color(0xFFE8E8E8))), ), )), ], diff --git a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/report_table.dart b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/report_table.dart index 0aa29e3..03ffed1 100644 --- a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/report_table.dart +++ b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/report_table.dart @@ -1,5 +1,7 @@ import 'package:data_table_2/data_table_2.dart'; +import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_echart/flutter_echart.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:making_school_asignment_app/common/job/annotated_class.dart'; @@ -15,7 +17,7 @@ class ReportTable extends StatefulWidget { final List bodyList; final int? fixedRows; final int? fixedCols; - final bool? isKG; + final bool? isZG; final String jobId; final int studentCount; @@ -27,7 +29,7 @@ class ReportTable extends StatefulWidget { required this.studentCount, this.fixedCols = 0, this.fixedRows = 0, - this.isKG = false, + this.isZG = false, }) : super(key: key); @override @@ -38,15 +40,128 @@ class _ReportTableState extends State { final ScrollController _controller = ScrollController(); int? _sortColumnIndex; final bool _sortAscending = true; + List colorMap = const [ + Color.fromRGBO(0, 179, 134, 1), + Color.fromRGBO(1, 193, 254, 1), + Color.fromRGBO(239, 135, 20, 1), + Color.fromRGBO(219, 0, 0, 1), + Color.fromRGBO(211, 211, 211, 1), + ]; - void showPeopleListDialog({required BuildContext context, required String title, required String questionNo, required List arr, List? dcList}) { + void showAnswerEfficiency(overallTitles) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + contentPadding: EdgeInsets.all(20.r), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(15.r))), + content: SizedBox( + width: MediaQuery.of(context).size.width * 0.5, + height: MediaQuery.of(context).size.height * 0.4, + child: Column( + children: [ + Text( + '作答效率', + style: TextStyle( + fontSize: 15.sp, + color: const Color(0xFF3C3C3C), + fontWeight: FontWeight.w500), + ), + Padding( + padding: EdgeInsets.symmetric(vertical:20.r,horizontal: 10.r), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + mapIcon(const Color(0xFF4CC793)), + SizedBox(width: 5.r,), + mapTxt('优'), + const Spacer(), + mapIcon(const Color(0xFF01C1FE)), + SizedBox(width: 5.r,), + mapTxt('良'), + const Spacer(), + mapIcon(const Color(0xFFEF8714)), + SizedBox(width: 5.r,), + mapTxt('中'), + const Spacer(), + mapIcon(const Color(0xFFDB0000)), + SizedBox(width: 5.r,), + mapTxt('差'), + ], + ), + ), + Expanded( + child: + + PieChart( + PieChartData( + borderData: FlBorderData(show: true), + sectionsSpace: 0, + centerSpaceRadius: 0, + sections: List.generate(overallTitles.length,(index) { + var e = overallTitles[index]; + return PieChartSectionData( + color: colorMap[index], + value: e.count / widget.studentCount * 100, + radius: 110, + // title: e.title + (Utils.doubleToStringAsFixed(e.count / widget.studentCount * 100) + '%'), + title: e.title + e.count.toString(), + titleStyle: TextStyle(fontSize: 12.sp, color: Color(0xFFFFFFFF)), + ); + }), + ), + ), + + /*PieChatWidget( + dataList: List.generate(overallTitles.length, (index) { + var e = overallTitles[index]; + return EChartPieBean( + title: e.title, + number: e.count, + color: colorMap[index]); + }), + //是否需要背景 + isBackground: false, + //是否画直线 + isLineText: true, + //背景 + bgColor: Colors.white, + //是否显示最前面的内容 + isFrontgText: false, + //默认选择放大的块 + initSelect: 1, + //初次显示以动画方式展开 + openType: OpenType.ANI, + //旋转类型 + loopType: LoopType.DOWN_LOOP, + //点击回调 + clickCallBack: (int value) { + print("当前点击显示 $value"); + }, + ),*/ + ), + ], + ), + ), + ); + }); + } + + void showPeopleListDialog( + {required BuildContext context, + required String title, + required String questionNo, + required List arr, + List? dcList}) { showDialog( context: context, builder: (BuildContext context) { return AlertDialog( // insetPadding: EdgeInsets.symmetric(vertical: 20.r,horizontal: 20.r), contentPadding: EdgeInsets.all(20.r), - shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(15.r))), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(15.r))), content: SizedBox( width: MediaQuery.of(context).size.width * 0.7, height: MediaQuery.of(context).size.height * 0.7, @@ -56,7 +171,10 @@ class _ReportTableState extends State { Center( child: Text( title, - style: TextStyle(fontSize: 15.sp, color: const Color(0xFF3C3C3C), fontWeight: FontWeight.w500), + style: TextStyle( + fontSize: 15.sp, + color: const Color(0xFF3C3C3C), + fontWeight: FontWeight.w500), ), ), SizedBox( @@ -65,16 +183,19 @@ class _ReportTableState extends State { Row( children: [ Text( - widget.isKG == true ? '主观题' : '客观题', - style: TextStyle(fontSize: 14.sp, color: const Color(0xFF436CFF)), + widget.isZG == true ? '主观题' : '客观题', + style: TextStyle( + fontSize: 14.sp, color: const Color(0xFF4CC793)), ), Text( '―', - style: TextStyle(fontSize: 14.sp, color: const Color(0xFF436CFF)), + style: TextStyle( + fontSize: 14.sp, color: const Color(0xFF4CC793)), ), Text( '第$questionNo题', - style: TextStyle(fontSize: 14.sp, color: Color(0xFF436CFF)), + style: TextStyle( + fontSize: 14.sp, color: Color(0xFF4CC793)), ), ], ), @@ -89,21 +210,27 @@ class _ReportTableState extends State { child: Center( child: Text( '未作答人', - style: TextStyle(fontSize: 12.sp, color: Color(0xFF6A6A6A)), + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF6A6A6A)), ))), Expanded( flex: 1, child: Center( child: Text( '答对人数', - style: TextStyle(fontSize: 12.sp, color: Color(0xFF6A6A6A)), + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF6A6A6A)), ))), Expanded( flex: 1, child: Center( child: Text( '答错人', - style: TextStyle(fontSize: 12.sp, color: Color(0xFF6A6A6A)), + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF6A6A6A)), ))), ], ) @@ -111,7 +238,8 @@ class _ReportTableState extends State { padding: EdgeInsets.only(left: 15.r), child: Text( title, - style: TextStyle(fontSize: 12.sp, color: Color(0xFF6A6A6A)), + style: TextStyle( + fontSize: 12.sp, color: Color(0xFF6A6A6A)), ), ), SizedBox( @@ -125,41 +253,60 @@ class _ReportTableState extends State { var item = arr[index]; return Container( padding: EdgeInsets.symmetric(vertical: 5.r), - color: index.isOdd ? Colors.white : Color(0xFFF0F0F0), + color: + index.isOdd ? Colors.white : Color(0xFFF0F0F0), child: Row( children: [ Expanded( flex: 1, child: InkWell( onTap: () { - goQuickCheckPersonalPath(item['noAnswerStudents'].studentId); + goQuickCheckPersonalPath( + item['noAnswerStudents'] + .studentId); }, child: Center( child: Text( - item['noAnswerStudents']?.studentName ?? '--', - style: TextStyle(fontSize: 12.sp, color: Color(0xFF323232)), + item['noAnswerStudents'] + ?.studentName ?? + '--', + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF323232)), )))), Expanded( flex: 1, child: InkWell( onTap: () { - goQuickCheckPersonalPath(item['answerOkStudents'].studentId); + goQuickCheckPersonalPath( + item['answerOkStudents'] + .studentId); }, child: Center( child: Text( - item['answerOkStudents']?.studentName ?? '--', - style: TextStyle(fontSize: 12.sp, color: Color(0xFF323232)), + item['answerOkStudents'] + ?.studentName ?? + '--', + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF323232)), )))), Expanded( flex: 1, child: InkWell( onTap: () { - goQuickCheckPersonalPath(item['answerNgStudents'].studentId); + goQuickCheckPersonalPath( + item['answerNgStudents'] + .studentId); }, child: Center( child: Text( - item['answerNgStudents']?.studentName ?? '--', - style: TextStyle(fontSize: 12.sp, color: Color(0xFF323232)), + item['answerNgStudents'] + ?.studentName ?? + '--', + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF323232)), )))), ], ), @@ -180,11 +327,16 @@ class _ReportTableState extends State { goQuickCheckPersonalPath(item.studentId); }, child: Container( - padding: EdgeInsets.symmetric(vertical: 5.r, horizontal: 15.r), - color: index.isOdd ? Colors.white : Color(0xFFF0F0F0), + padding: EdgeInsets.symmetric( + vertical: 5.r, horizontal: 15.r), + color: index.isOdd + ? Colors.white + : Color(0xFFF0F0F0), child: Text( item.studentName! ?? '--', - style: TextStyle(fontSize: 12.sp, color: Color(0xFF323232)), + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF323232)), ), ), ); @@ -202,47 +354,65 @@ class _ReportTableState extends State { void goQuickCheckPersonalPath(id) { if (id != null) { - Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': id, 'homeworkId': widget.jobId}); + Get.toNamed(Routes.studentPersonalPage, + arguments: {'studentId': id, 'homeworkId': widget.jobId}); } } - void zdHandle(BuildContext context, String title, String questionNo, List noAnswerStudents, List answerNgStudents, List answerOkStudents) { + void zdHandle(BuildContext context, String title, String questionNo, + List noAnswerStudents, List answerNgStudents, List answerOkStudents) { List list = []; // Questions student = Questions('','',-1,-1,'',-1,'','',[],-1,-1,[] as double?); - if (noAnswerStudents.length > answerNgStudents.length && noAnswerStudents.length > answerOkStudents.length) { + if (noAnswerStudents.length > answerNgStudents.length && + noAnswerStudents.length > answerOkStudents.length) { for (int i = 0; i < noAnswerStudents.length; i++) { var obj = { 'noAnswerStudents': noAnswerStudents[i], - 'answerNgStudents': answerNgStudents.length > i ? answerNgStudents[i] : null, - 'answerOkStudents': answerOkStudents.length > i ? answerOkStudents[i] : null + 'answerNgStudents': + answerNgStudents.length > i ? answerNgStudents[i] : null, + 'answerOkStudents': + answerOkStudents.length > i ? answerOkStudents[i] : null }; list.add(obj); } - } else if (answerNgStudents.length > noAnswerStudents.length && answerNgStudents.length > answerOkStudents.length) { + } else if (answerNgStudents.length > noAnswerStudents.length && + answerNgStudents.length > answerOkStudents.length) { for (int i = 0; i < answerNgStudents.length; i++) { var obj = { - 'noAnswerStudents': noAnswerStudents.length > i ? noAnswerStudents[i] : null, + 'noAnswerStudents': + noAnswerStudents.length > i ? noAnswerStudents[i] : null, 'answerNgStudents': answerNgStudents[i], - 'answerOkStudents': answerOkStudents.length > i ? answerOkStudents[i] : null + 'answerOkStudents': + answerOkStudents.length > i ? answerOkStudents[i] : null }; list.add(obj); } - } else if (answerOkStudents.length > noAnswerStudents.length && answerOkStudents.length > answerNgStudents.length) { + } else if (answerOkStudents.length > noAnswerStudents.length && + answerOkStudents.length > answerNgStudents.length) { for (int i = 0; i < answerOkStudents.length; i++) { var obj = { - 'noAnswerStudents': noAnswerStudents.length > i ? noAnswerStudents[i] : null, - 'answerNgStudents': answerNgStudents.length > i ? answerNgStudents[i] : null, + 'noAnswerStudents': + noAnswerStudents.length > i ? noAnswerStudents[i] : null, + 'answerNgStudents': + answerNgStudents.length > i ? answerNgStudents[i] : null, 'answerOkStudents': answerOkStudents[i] }; list.add(obj); } } - showPeopleListDialog(context: context, title: title, questionNo: questionNo, arr: list, dcList: []); + showPeopleListDialog( + context: context, + title: title, + questionNo: questionNo, + arr: list, + dcList: []); } - void dcHandle(BuildContext context, String title, String questionNo, List arr) { - showPeopleListDialog(context: context, title: title, questionNo: questionNo, arr: arr); + void dcHandle( + BuildContext context, String title, String questionNo, List arr) { + showPeopleListDialog( + context: context, title: title, questionNo: questionNo, arr: arr); } DataRow _getRow(int index, [Color? color]) { @@ -255,18 +425,28 @@ class _ReportTableState extends State { DataCell(Center( child: Padding( padding: EdgeInsets.symmetric(horizontal: 5.r), - child: Text(item.questionNo.toString(), style: TextStyle(fontSize: 10.sp, color: const Color(0xFF525252))), + child: Text(item.questionNo.toString(), + style: + TextStyle(fontSize: 10.sp, color: const Color(0xFF525252))), ), )), DataCell(Center( child: Padding( padding: EdgeInsets.symmetric(horizontal: 5.r), - child: Text('${item.answerRate.toStringAsFixed(0)}%', style: TextStyle(fontSize: 10.sp, color: const Color(0xFF525252))), + child: Text('${item.answerRate.toStringAsFixed(0)}%', + style: + TextStyle(fontSize: 10.sp, color: const Color(0xFF525252))), ), )), DataCell(InkWell( onTap: () { - zdHandle(context, '作答人数', item.questionNo.toString(), item.noAnswerStudents, item.answerNgStudents, item.answerOkStudents); + zdHandle( + context, + '作答人数', + item.questionNo.toString(), + item.noAnswerStudents, + item.answerNgStudents, + item.answerOkStudents); }, child: Center( child: Padding( @@ -274,7 +454,9 @@ class _ReportTableState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - Text('${item.answerCount}/${widget.studentCount}', style: TextStyle(fontSize: 10.sp, color: const Color(0xFF4CC793))), + Text('${item.answerCount}/${widget.studentCount}', + style: TextStyle( + fontSize: 10.sp, color: const Color(0xFF4CC793))), Image.asset( 'assets/images/green_right_icon.png', width: 12.r, @@ -288,32 +470,43 @@ class _ReportTableState extends State { DataCell(Center( child: Padding( padding: EdgeInsets.symmetric(horizontal: 5.r), - child: Text('${item.okRate.toStringAsFixed(0)}%', style: TextStyle(fontSize: 10.sp, color: Color(0xFF525252))), + child: Text('${item.okRate.toStringAsFixed(0)}%', + style: TextStyle(fontSize: 10.sp, color: Color(0xFF525252))), ), )), DataCell(Center( child: Padding( padding: EdgeInsets.symmetric(horizontal: 5.r), - child: widget.isKG == true + child: widget.isZG == true ? InkWell( onTap: () { if (item.questionPicture == null) { ToastUtils.showInfo('当前试题没有原题'); } else { - ImageDialog.showImgDialog(context, item.questionPicture); + ImageDialog.showImgDialog( + context, item.questionPicture); } }, - child: - Text('原题', style: TextStyle(fontSize: 10.sp, color: widget.isKG == true ? const Color(0xFFFF8A00) : const Color(0xFF4CC793))), + child: Text('原题', + style: TextStyle( + fontSize: 10.sp, + color: widget.isZG == true + ? const Color(0xFFFF8A00) + : const Color(0xFF4CC793))), ) : Text(item.answer, - style: TextStyle(fontSize: 10.sp, color: widget.isKG == true ? const Color(0xFFFF8A00) : const Color(0xFF4CC793))), + style: TextStyle( + fontSize: 10.sp, + color: widget.isZG == true + ? const Color(0xFFFF8A00) + : const Color(0xFF4CC793))), ), )), DataCell(InkWell( onTap: () { // List parts = item.priorityGeneral.split('人'); - dcHandle(context, '优先批阅答错人', item.questionNo.toString(), item.priorityInfo); + dcHandle(context, '优先批阅答错人', item.questionNo.toString(), + item.priorityInfo); }, child: Center( child: Padding( @@ -321,7 +514,9 @@ class _ReportTableState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - Text('${item.priorityInfo.length}人答错', style: TextStyle(fontSize: 10.sp, color: const Color(0xFF6888FD))), + Text('${item.priorityInfo.length}人答错', + style: TextStyle( + fontSize: 10.sp, color: const Color(0xFF4CC793))), Image.asset( 'assets/images/job_data_right_icon.png', width: 10.r, @@ -332,6 +527,30 @@ class _ReportTableState extends State { ), ), )), + if (widget.isZG == true) + DataCell(Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 5.r), + child: widget.isZG == true + ? InkWell( + onTap: () { + showAnswerEfficiency(item.overallTitles); + }, + child: Text('查看', + style: TextStyle( + fontSize: 10.sp, + color: widget.isZG == true + ? const Color(0xFFFF8A00) + : const Color(0xFF4CC793))), + ) + : Text(item.answer, + style: TextStyle( + fontSize: 10.sp, + color: widget.isZG == true + ? const Color(0xFFFF8A00) + : const Color(0xFF4CC793))), + ), + )), ], ); } @@ -347,10 +566,14 @@ class _ReportTableState extends State { dataRowHeight: 40.r, bottomMargin: 0, border: const TableBorder( - horizontalInside: BorderSide(width: 1, color: Colors.white, style: BorderStyle.solid), - bottom: BorderSide(width: 1, color: Colors.white, style: BorderStyle.solid), - verticalInside: BorderSide(width: 1, color: Colors.white, style: BorderStyle.solid)), - headingRowColor: MaterialStateProperty.resolveWith((states) => widget.fixedCols! > 0 ? Colors.white : Colors.transparent), + horizontalInside: BorderSide( + width: 1, color: Colors.white, style: BorderStyle.solid), + bottom: BorderSide( + width: 1, color: Colors.white, style: BorderStyle.solid), + verticalInside: BorderSide( + width: 1, color: Colors.white, style: BorderStyle.solid)), + headingRowColor: MaterialStateProperty.resolveWith((states) => + widget.fixedCols! > 0 ? Colors.white : Colors.transparent), headingRowDecoration: BoxDecoration(color: Color(0xFFE6E6E6)), fixedColumnsColor: Color(0xFFE6E6E6), fixedCornerColor: Colors.grey[400], @@ -368,7 +591,8 @@ class _ReportTableState extends State { var item = widget.headList[index]; return DataColumn2( label: Center( - child: Text(item, style: TextStyle(fontSize: 10.sp, color: Color(0xFF505767))), + child: Text(item, + style: TextStyle(fontSize: 10.sp, color: Color(0xFF505767))), ), // size: ColumnSize.S, fixedWidth: index == 0 @@ -376,10 +600,26 @@ class _ReportTableState extends State { : widget.headList.length > 6 ? 80.r : isPadFlag - ? (MediaQuery.of(context).size.width - 8.r) / widget.headList.length + ? (MediaQuery.of(context).size.width - 8.r) / + widget.headList.length : 85.r, ); }), - rows: List.generate(widget.bodyList.length, (index) => _getRow(index, Color(0xFFF5F5F5)))); + rows: List.generate(widget.bodyList.length, + (index) => _getRow(index, Color(0xFFF5F5F5)))); } } + +Widget mapIcon(Color bgColor){ +return Container( + width: 12.r, + height: 12.r, + decoration: BoxDecoration( + color: bgColor, + borderRadius: BorderRadius.all(Radius.circular(6.r)), + ), +); +} +Widget mapTxt(String title){ + return Text(title,style: TextStyle(fontSize: 12.sp,color: Color(0xFF525252),fontWeight: FontWeight.w400),); +} \ No newline at end of file diff --git a/making_school_asignment_app/lib/page/home_page/children/read_over/read_over_view.dart b/making_school_asignment_app/lib/page/home_page/children/read_over/read_over_view.dart index 64171b4..4160a73 100644 --- a/making_school_asignment_app/lib/page/home_page/children/read_over/read_over_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/read_over/read_over_view.dart @@ -95,7 +95,7 @@ class _ReadOverPageState extends State { ), labelStyle: TextStyle( fontSize: 14.sp, - color: const Color.fromRGBO(104, 136, 253, 1), + color: const Color(0xFF4CC793), ), // labelColor: const Color.fromRGBO(45, 56, 76, 1), indicator: const UnderlineTabIndicator( diff --git a/making_school_asignment_app/lib/page/home_page/children/read_over/widget/annotate_list.dart b/making_school_asignment_app/lib/page/home_page/children/read_over/widget/annotate_list.dart index 1f1c94a..407a4c1 100644 --- a/making_school_asignment_app/lib/page/home_page/children/read_over/widget/annotate_list.dart +++ b/making_school_asignment_app/lib/page/home_page/children/read_over/widget/annotate_list.dart @@ -298,7 +298,7 @@ Widget $reviewedItem({ alignment: Alignment.center, padding: EdgeInsets.only(left: 2.w), decoration: BoxDecoration( - color: type == 1 ? const Color.fromRGBO(104, 136, 253, 1) : const Color.fromRGBO(255, 175, 56, 1), + color: type == 1 ? const Color(0xFF4CC793) : const Color.fromRGBO(255, 175, 56, 1), borderRadius: BorderRadius.only( topLeft: Radius.circular(14.r), topRight: Radius.circular(3.r), @@ -381,7 +381,8 @@ Widget $reviewedItem({ if (!jobTaskItem.isFixed!) Expanded( flex: 1, - child: InkWell( + child: GestureDetector( + behavior: HitTestBehavior.opaque, onTap: () { if (!jobTaskItem.isFixed!) { EasyLoading.show(status: 'loading...'); @@ -399,7 +400,8 @@ Widget $reviewedItem({ ), Expanded( flex: 1, - child: InkWell( + child: GestureDetector( + behavior: HitTestBehavior.opaque, onTap: () { Get.toNamed(Routes.jobReportPage, arguments: {'title': jobTaskItem.name, 'homeworkId': jobTaskItem.id, 'grade': jobTaskItem.grade}); diff --git a/making_school_asignment_app/lib/page/home_page/children/read_over/widget/task_list_item.dart b/making_school_asignment_app/lib/page/home_page/children/read_over/widget/task_list_item.dart index 6b3c42b..72d4af7 100644 --- a/making_school_asignment_app/lib/page/home_page/children/read_over/widget/task_list_item.dart +++ b/making_school_asignment_app/lib/page/home_page/children/read_over/widget/task_list_item.dart @@ -64,7 +64,7 @@ class _TaskListItemState extends State { alignment: Alignment.center, padding: EdgeInsets.only(left: Utils.isPad() ? 2.w : 3.w), decoration: BoxDecoration( - color: const Color.fromRGBO(104, 136, 253, 1), + color: const Color(0xFF4CC793), borderRadius: BorderRadius.only( topLeft: Radius.circular(14.r), topRight: Radius.circular(3.r), @@ -73,7 +73,7 @@ class _TaskListItemState extends State { ), ), margin: EdgeInsets.only(right: 4.w), - child: quickText('作业', color: Colors.white, size: 10.sp), + child: quickText( widget.jobTaskItem.assessType == 0?'作业':'考试', color: Colors.white, size: 10.sp), ), Expanded( child: quickText( @@ -199,7 +199,7 @@ class _TaskListItemState extends State { alignment: Alignment.center, padding: EdgeInsets.only(left: Utils.isPad() ? 2.w : 3.w), decoration: BoxDecoration( - color: widget.type == 1 ? const Color.fromRGBO(104, 136, 253, 1) : const Color.fromRGBO(255, 175, 56, 1), + color: widget.type == 1 ? const Color(0xFF4CC793) : const Color.fromRGBO(255, 175, 56, 1), borderRadius: BorderRadius.only( topLeft: Radius.circular(14.r), topRight: Radius.circular(3.r), @@ -208,7 +208,7 @@ class _TaskListItemState extends State { ), ), margin: EdgeInsets.only(top:3.h,right: 4.w), - child: quickText(widget.type == 1 ? '作业' : '考试', color: Colors.white, size: 10.sp), + child: quickText(widget.jobTaskItem.assessType == 0?'作业':'考试', color: Colors.white, size: 10.sp), ), Expanded( child: quickText( diff --git a/making_school_asignment_app/lib/page/home_page/children/student_personal/student_personal_view.dart b/making_school_asignment_app/lib/page/home_page/children/student_personal/student_personal_view.dart index fb5229e..f6d9168 100644 --- a/making_school_asignment_app/lib/page/home_page/children/student_personal/student_personal_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/student_personal/student_personal_view.dart @@ -133,7 +133,7 @@ class _StudentPersonalPageState extends State { '${state.studentInfo.value.kgtCorrectRate}%', style: TextStyle( fontSize: 14.sp, - color: const Color(0xFF6888FD), + color: const Color(0xFF4CC793), fontWeight: FontWeight.w600), ); }), @@ -200,7 +200,7 @@ class _StudentPersonalPageState extends State { '${state.studentInfo.value.zgtCorrectRate}%', style: TextStyle( fontSize: 14.sp, - color: const Color(0xFF6888FD), + color: const Color(0xFF4CC793), fontWeight: FontWeight.w600), ); }), diff --git a/making_school_asignment_app/lib/page/home_page/children/student_personal/widget/student_kg_table.dart b/making_school_asignment_app/lib/page/home_page/children/student_personal/widget/student_kg_table.dart index e95ae4f..7c45671 100644 --- a/making_school_asignment_app/lib/page/home_page/children/student_personal/widget/student_kg_table.dart +++ b/making_school_asignment_app/lib/page/home_page/children/student_personal/widget/student_kg_table.dart @@ -50,7 +50,7 @@ class _StudentKgTableState extends State { child: Center( child: Padding( padding: EdgeInsets.symmetric(horizontal: 5.r), - child: Text(item.questionNo.toString(), style: TextStyle(fontSize: 12.sp, color: Color(0xFF6888FD))), + child: Text(item.questionNo.toString(), style: TextStyle(fontSize: 12.sp, color: Color(0xFF4CC793))), ), ), ), diff --git a/making_school_asignment_app/lib/page/home_page/children/student_personal/widget/student_zg_table.dart b/making_school_asignment_app/lib/page/home_page/children/student_personal/widget/student_zg_table.dart index 3c34ab5..37da127 100644 --- a/making_school_asignment_app/lib/page/home_page/children/student_personal/widget/student_zg_table.dart +++ b/making_school_asignment_app/lib/page/home_page/children/student_personal/widget/student_zg_table.dart @@ -47,7 +47,7 @@ class _StudentZgTableState extends State { child: Center( child: Padding( padding: EdgeInsets.symmetric(horizontal: 5.r), - child: Text(item.questionNo.toString(), style: TextStyle(fontSize: 12.sp, color: Color(0xFF6888FD))), + child: Text(item.questionNo.toString(), style: TextStyle(fontSize: 12.sp, color: Color(0xFF4CC793))), ), ), )), diff --git a/making_school_asignment_app/lib/page/home_page/children/student_work_detail/student_work_detail_view.dart b/making_school_asignment_app/lib/page/home_page/children/student_work_detail/student_work_detail_view.dart index 29e48a7..2d4d4bf 100644 --- a/making_school_asignment_app/lib/page/home_page/children/student_work_detail/student_work_detail_view.dart +++ b/making_school_asignment_app/lib/page/home_page/children/student_work_detail/student_work_detail_view.dart @@ -76,7 +76,7 @@ class _StudentWorkDetailPageState extends State { style: TextStyle( fontSize: 14.sp, color: state.isJob.value - ? Color(0xFF7491FD) + ? Color(0xFF4CC793) : Color(0xFF505E6E)), )); }), @@ -104,7 +104,7 @@ class _StudentWorkDetailPageState extends State { style: TextStyle( fontSize: 14.sp, color: !state.isJob.value - ? Color(0xFF7491FD) + ? Color(0xFF4CC793) : Color(0xFF505E6E)), ); })), @@ -128,24 +128,24 @@ class _StudentWorkDetailPageState extends State { '总览:', style: TextStyle( fontSize: 12.sp, - color: Color(0xFF7491FD), + color: Color(0xFF4CC793), fontWeight: FontWeight.w600), ), ProgressBar( title: '客观题正确率:', - color: Color(0xFFB8C7FF), + color: Color.fromRGBO(76, 199, 147, 0.36), percent: state.studentData.value.kgtCorrectRate / 100, padingEdg: EdgeInsets.zero, marginEdg: EdgeInsets.only(top: 8.h)), ProgressBar( title: '主观题正确率:', - color: Color(0xFFB8C7FF), + color: Color.fromRGBO(76, 199, 147, 0.36), percent: state.studentData.value.zgtCorrectRate / 100, padingEdg: EdgeInsets.zero, marginEdg: EdgeInsets.only(top: 8.h)), ProgressBar( title: '总正确率:', - color: Color(0xFFB8C7FF), + color: Color.fromRGBO(76, 199, 147, 0.36), percent: state.studentData.value.correctRate / 100, padingEdg: EdgeInsets.zero, marginEdg: EdgeInsets.only(top: 8.h)), diff --git a/making_school_asignment_app/lib/page/home_page/children/student_work_detail/widget/personal_detail_topbar.dart b/making_school_asignment_app/lib/page/home_page/children/student_work_detail/widget/personal_detail_topbar.dart index 5f68403..59ae57f 100644 --- a/making_school_asignment_app/lib/page/home_page/children/student_work_detail/widget/personal_detail_topbar.dart +++ b/making_school_asignment_app/lib/page/home_page/children/student_work_detail/widget/personal_detail_topbar.dart @@ -33,10 +33,10 @@ class _PersonalDetailTopBarState extends State { labelStyle: TextStyle( fontSize: 12.sp, fontWeight: FontWeight.bold, - color: const Color.fromRGBO(116, 145, 253, 1), + color: const Color(0xFF4CC793), ), isScrollable: true, - labelColor: const Color(0xFF7491FD), + labelColor: const Color(0xFF4CC793), unselectedLabelColor: const Color(0xFF505E6E), padding: EdgeInsets.symmetric(horizontal: 14.r), // indicatorSize: TabBarIndicatorSize.label, // 设置指示器高度和标签一样高 @@ -44,7 +44,7 @@ class _PersonalDetailTopBarState extends State { indicator: UnderlineTabIndicator( borderSide: BorderSide( width: 2.r, - color:const Color(0xFF7491FD) + color:const Color(0xFF4CC793) ), ), tabs: [ diff --git a/making_school_asignment_app/lib/page/home_page/home_view.dart b/making_school_asignment_app/lib/page/home_page/home_view.dart index bd2118d..a32557e 100644 --- a/making_school_asignment_app/lib/page/home_page/home_view.dart +++ b/making_school_asignment_app/lib/page/home_page/home_view.dart @@ -159,7 +159,7 @@ class _HomePageState extends State with AutomaticKeepAliveClientMixin alignment: Alignment.center, padding: EdgeInsets.only(left: Utils.isPad() ? 2.w : 3.w), decoration: BoxDecoration( - color: state.type == 1 ? const Color.fromRGBO(104, 136, 253, 1) : const Color.fromRGBO(255, 175, 56, 1), + color: state.type == 1 ? const Color(0xFF4CC793) : const Color.fromRGBO(255, 175, 56, 1), borderRadius: BorderRadius.only( topLeft: Radius.circular(14.r), topRight: Radius.circular(3.r), @@ -221,7 +221,7 @@ class _HomePageState extends State with AutomaticKeepAliveClientMixin lineHeight: 8.h, animationDuration: 2500, percent: item.annotateRate == null ? 0 : item.annotateRate! / 100, - progressColor: const Color(0xFF6888FD), + progressColor: const Color(0xFF4CC793), backgroundColor: const Color(0xFFE8E8E8), barRadius: Radius.circular(10.r), ), diff --git a/making_school_asignment_app/lib/page/home_page/widget/student_group_list.dart b/making_school_asignment_app/lib/page/home_page/widget/student_group_list.dart index 6832245..be329dc 100644 --- a/making_school_asignment_app/lib/page/home_page/widget/student_group_list.dart +++ b/making_school_asignment_app/lib/page/home_page/widget/student_group_list.dart @@ -45,7 +45,7 @@ class StudentGroupList extends StatelessWidget { padding: EdgeInsets.only(right: 8.r), child: Text( '${EnumUtils.formatGrade(item.grade)}${item.className}', - style: TextStyle(fontSize: 10.sp, color: Color(0xFF6888FD)), + style: TextStyle(fontSize: 10.sp, color: Color(0xFF4CC793)), ), ), const Spacer(), @@ -68,7 +68,7 @@ class StudentGroupList extends StatelessWidget { width: 55.r, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(20.r)), - color: const Color(0xFF6888FD), + color: const Color(0xFF4CC793), ), child: Center( child: Text( @@ -105,7 +105,7 @@ class StudentGroupList extends StatelessWidget { padding: EdgeInsets.only(right: 8.r), child: Text( '${EnumUtils.formatGrade(item.grade)}${item.className}', - style: TextStyle(fontSize: 14.sp, color: Color(0xFF6888FD)), + style: TextStyle(fontSize: 14.sp, color: Color(0xFF4CC793)), ), ), const Spacer(), @@ -128,7 +128,7 @@ class StudentGroupList extends StatelessWidget { width: 55.r, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(20.r)), - color: const Color(0xFF6888FD), + color: const Color(0xFF4CC793), ), child: Center( child: Text( diff --git a/making_school_asignment_app/lib/page/login_page/login_view.dart b/making_school_asignment_app/lib/page/login_page/login_view.dart index cf6c913..9109e46 100644 --- a/making_school_asignment_app/lib/page/login_page/login_view.dart +++ b/making_school_asignment_app/lib/page/login_page/login_view.dart @@ -83,7 +83,7 @@ class _LoginPageState extends State { padding: EdgeInsets.symmetric(horizontal: 20.r), decoration: BoxDecoration( color: Colors.transparent, - border: Border.all(width: 1.w, color: const Color(0xFFAECBFF)), + border: Border.all(width: 1.w, color: const Color(0xFFFFFFFF)), borderRadius: BorderRadius.all(Radius.circular(17.w)), ), child: Center( @@ -132,7 +132,7 @@ class _LoginPageState extends State { padding: EdgeInsets.symmetric(horizontal: 20.r), decoration: BoxDecoration( color: Colors.transparent, - border: Border.all(width: 1.w, color: const Color(0xFFAECBFF)), + border: Border.all(width: 1.w, color: const Color(0xFFFFFFFF)), borderRadius: BorderRadius.all(Radius.circular(17.w)), ), child: TextField( @@ -228,10 +228,10 @@ class _LoginPageState extends State { return Container( margin: EdgeInsets.symmetric(vertical: 10.h), decoration: BoxDecoration( - color: state.canLogin.value ? const Color.fromRGBO(107, 104, 252, 1) : const Color(0xFFdddddd), + color: state.canLogin.value ? const Color(0xFF4CC793) : const Color(0xFFdddddd), boxShadow: [ BoxShadow( - color: const Color.fromRGBO(46, 91, 255, 0.5), + color: const Color.fromRGBO(76, 199, 147, 0.5), offset: Offset(6.w, 10.h), //阴影y轴偏移量 blurRadius: 14, //阴影模糊程度 spreadRadius: 0.5, //阴影扩散程度 diff --git a/making_school_asignment_app/lib/page/work_page/work_view.dart b/making_school_asignment_app/lib/page/work_page/work_view.dart index 4d0b7b9..2c4a78a 100644 --- a/making_school_asignment_app/lib/page/work_page/work_view.dart +++ b/making_school_asignment_app/lib/page/work_page/work_view.dart @@ -79,7 +79,7 @@ class _WorkPageState extends State with AutomaticKeepAliveClientMixin ), labelStyle: TextStyle( fontSize: 14.sp, - color: const Color.fromRGBO(104, 136, 253, 1), + color: const Color(0xFF4CC793), ), // labelColor: const Color.fromRGBO(45, 56, 76, 1), indicator: const BoxDecoration(), diff --git a/making_school_asignment_app/pubspec.yaml b/making_school_asignment_app/pubspec.yaml index 265d6dc..27a9ad8 100644 --- a/making_school_asignment_app/pubspec.yaml +++ b/making_school_asignment_app/pubspec.yaml @@ -85,6 +85,9 @@ dependencies: event_bus: ^2.0.0 path_provider: ^2.1.3 uuid: ^3.0.7 + flutter_echarts: ^2.4.0 + # 饼图 + flutter_echart: ^2.0.0 dev_dependencies: flutter_test: