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 d742283..c295124 100644 --- a/making_school_asignment_app/lib/common/job/homework_details.dart +++ b/making_school_asignment_app/lib/common/job/homework_details.dart @@ -185,6 +185,9 @@ class Students extends Object { @JsonKey(name: 'useTime') int? useTime; + @JsonKey(name: 'ttlSec') + String? ttlSec; + 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); @@ -227,6 +230,9 @@ class Dtls extends Object { @JsonKey(name: 'useTime') int useTime; + @JsonKey(name: 'lastAnswerTime') + String? lastAnswerTime; + @JsonKey(name: 'annotatePicture') String? annotatePicture; diff --git a/making_school_asignment_app/lib/common/utils/utils.dart b/making_school_asignment_app/lib/common/utils/utils.dart index 223db1c..e938f50 100644 --- a/making_school_asignment_app/lib/common/utils/utils.dart +++ b/making_school_asignment_app/lib/common/utils/utils.dart @@ -152,6 +152,24 @@ class Utils { int okCount = stu.queDtls!.where((w) => w.state == 3).length; int ttlCount = stu.queDtls!.length; stu.okRate = Utils.calcRate(okCount, ttlCount); + + var stuDtls = data.dtls.where((w) => w.studentId == stu.studentId); + var secList = []; + for(var sec in stuDtls){ + if(sec.useTime >= 1){ + var date = DateTime.parse(sec.lastAnswerTime!); + var lastSec =(date.difference(DateTime(1970)).inSeconds).floor(); + + secList.add(lastSec); + secList.add(lastSec - sec.useTime); + } + } + secList.sort(); + var maxSec = secList.isNotEmpty?secList.last:0; + var minSec = secList.isNotEmpty?secList.first:0; + var secTime = secList.isNotEmpty?maxSec-minSec:0; + stu.ttlSec = second2HMS(secTime); + } data.students.sort((a, b) { diff --git a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/quick_data_check_bottom.dart b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/quick_data_check_bottom.dart index a490d8f..6bbbbc8 100644 --- a/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/quick_data_check_bottom.dart +++ b/making_school_asignment_app/lib/page/home_page/children/quick_data_check/widget/quick_data_check_bottom.dart @@ -232,7 +232,7 @@ class _QuickDataCheckBottomState extends State { return SizedBox( height: showList.value.length > 5 ? 350.r : showList.value.length * 50.r + 40.r, child: QuickStudentDataTable( - headList: ['学生姓名', '客观题', '主观题', '客观题状态', '主观题状态', '未批阅'], + headList: ['学生姓名', '总用时','客观题', '主观题', '客观题状态', '主观题状态', '未批阅'], bodyList: showList.value, jobId: widget.jobId, fixedRows: 1, 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 51f4f7f..b3f6475 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 @@ -72,6 +72,12 @@ class _QuickStudentDataTableState extends State { ), ), )), + DataCell(Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 5.r), + child: Text(item.ttlSec.toString(), style: TextStyle(fontSize: 10.sp, color: const Color(0xFF525252), overflow: TextOverflow.ellipsis)), + ), + )), DataCell(Center( child: Padding( padding: EdgeInsets.symmetric(horizontal: 5.r), @@ -203,7 +209,7 @@ class _QuickStudentDataTableState extends State { // onSelectAll: (val) => setState(() => selectAll(val)), columns: List.generate(widget.headList.length, (index) { var item = widget.headList[index]; - return index == 1 + return index == 2 ? DataColumn2( label: Row(mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Text(item, style: TextStyle(fontSize: 10.sp, color: Color(0xFF505767))), @@ -212,7 +218,7 @@ class _QuickStudentDataTableState extends State { // size: ColumnSize.S, fixedWidth: (MediaQuery.of(context).size.width - 20.r - 28.r) / widget.headList.length, ) - : index == 2 + : index == 3 ? DataColumn2( label: Row(mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Text(item, style: TextStyle(fontSize: 10.sp, color: Color(0xFF505767))),