From 83e328ceb80638e65c33531276918f6172086de9 Mon Sep 17 00:00:00 2001 From: machuanyu <840649825@qq.com> Date: Mon, 22 Apr 2024 14:25:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../images/report_student_history_bg.png | Bin 0 -> 156208 bytes .../report/report_student_history_record.dart | 50 ++ .../model/report/report_student_info.dart | 77 +++ .../pages/report_detail/completed_report.dart | 499 ++++++++++++++++++ .../lib/pages/report_detail/index.dart | 16 +- .../pages/report_detail/report_history.dart | 470 ++++++++++++++++- .../report_detail/widgets/card_table.dart | 39 +- .../report_detail/widgets/complete_table.dart | 161 ++++++ .../widgets/report_card_dialog.dart | 498 +++++++++++------ marking_app/lib/routes/RouterManager.dart | 20 +- .../lib/utils/request/rest_client_report.dart | 18 + 11 files changed, 1651 insertions(+), 197 deletions(-) create mode 100644 marking_app/assets/images/report_student_history_bg.png create mode 100644 marking_app/lib/common/model/report/report_student_history_record.dart create mode 100644 marking_app/lib/common/model/report/report_student_info.dart create mode 100644 marking_app/lib/pages/report_detail/completed_report.dart create mode 100644 marking_app/lib/pages/report_detail/widgets/complete_table.dart diff --git a/marking_app/assets/images/report_student_history_bg.png b/marking_app/assets/images/report_student_history_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..51b25267b4884e7833e692f8500adc7111b7ce8b GIT binary patch literal 156208 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 Dp8GMk literal 0 HcmV?d00001 diff --git a/marking_app/lib/common/model/report/report_student_history_record.dart b/marking_app/lib/common/model/report/report_student_history_record.dart new file mode 100644 index 0000000..88dca77 --- /dev/null +++ b/marking_app/lib/common/model/report/report_student_history_record.dart @@ -0,0 +1,50 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'report_student_history_record.g.dart'; + + +@JsonSerializable() +class ReportStudentHistoryRecord extends Object { + + @JsonKey(name: 'ExamId') + int examId; + + @JsonKey(name: 'ExamName') + String examName; + + @JsonKey(name: 'ExamStartTime') + String examStartTime; + + @JsonKey(name: 'StudentExamNum') + String studentExamNum; + + @JsonKey(name: 'ScoreInfo') + List scoreInfo; + + ReportStudentHistoryRecord(this.examId,this.examName,this.examStartTime,this.studentExamNum,this.scoreInfo,); + + factory ReportStudentHistoryRecord.fromJson(Map srcJson) => _$ReportStudentHistoryRecordFromJson(srcJson); + + Map toJson() => _$ReportStudentHistoryRecordToJson(this); + +} + + +@JsonSerializable() +class ScoreInfo extends Object { + + @JsonKey(name: 'Value') + double value; + + @JsonKey(name: 'Text') + String text; + + ScoreInfo(this.value,this.text,); + + factory ScoreInfo.fromJson(Map srcJson) => _$ScoreInfoFromJson(srcJson); + + Map toJson() => _$ScoreInfoToJson(this); + +} + + diff --git a/marking_app/lib/common/model/report/report_student_info.dart b/marking_app/lib/common/model/report/report_student_info.dart new file mode 100644 index 0000000..7345f50 --- /dev/null +++ b/marking_app/lib/common/model/report/report_student_info.dart @@ -0,0 +1,77 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'report_student_info.g.dart'; + + +@JsonSerializable() +class ReportStudentInfo extends Object { + + @JsonKey(name: 'ExamId') + int examId; + + @JsonKey(name: 'UserId') + int userId; + + @JsonKey(name: 'ClassId') + int classId; + + @JsonKey(name: 'ExamName') + String examName; + + @JsonKey(name: 'ExamNo') + String examNo; + + @JsonKey(name: 'UserName') + String userName; + + @JsonKey(name: 'ScoreInfo') + List scoreInfo; + + @JsonKey(name: 'Subject') + List subject; + + ReportStudentInfo(this.examId,this.userId,this.classId,this.examName,this.examNo,this.userName,this.scoreInfo,this.subject,); + + factory ReportStudentInfo.fromJson(Map srcJson) => _$ReportStudentInfoFromJson(srcJson); + + Map toJson() => _$ReportStudentInfoToJson(this); + +} + + +@JsonSerializable() +class ScoreInfo extends Object { + + @JsonKey(name: 'Value') + double value; + + @JsonKey(name: 'Text') + String text; + + ScoreInfo(this.value,this.text,); + + factory ScoreInfo.fromJson(Map srcJson) => _$ScoreInfoFromJson(srcJson); + + Map toJson() => _$ScoreInfoToJson(this); + +} + + +@JsonSerializable() +class Subject extends Object { + + @JsonKey(name: 'Value') + int value; + + @JsonKey(name: 'Text') + String text; + + Subject(this.value,this.text,); + + factory Subject.fromJson(Map srcJson) => _$SubjectFromJson(srcJson); + + Map toJson() => _$SubjectToJson(this); + +} + + diff --git a/marking_app/lib/pages/report_detail/completed_report.dart b/marking_app/lib/pages/report_detail/completed_report.dart new file mode 100644 index 0000000..c425874 --- /dev/null +++ b/marking_app/lib/pages/report_detail/completed_report.dart @@ -0,0 +1,499 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:marking_app/common/mixin/common.dart'; +import 'package:marking_app/common/model/common/base_structure_result_report.dart'; +import 'package:marking_app/common/model/report/report_marking_detail.dart'; +import 'package:marking_app/common/model/report/report_marking_detail.dart'; +import 'package:marking_app/common/model/report/report_marking_detail_params.dart'; +import 'package:marking_app/common/model/report/report_student_info.dart'; +import 'package:marking_app/components/ReturnToHomepage.dart'; +import 'package:marking_app/pages/report_detail/widgets/complete_table.dart'; +import 'package:marking_app/routes/RouterManager.dart'; +import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart'; +import 'package:marking_app/utils/request/rest_client_report.dart'; + +import 'widgets/custom_rect.dart'; + +class CompletedReport extends StatefulWidget { + final int examId; + final String studentNo; + + const CompletedReport( + {Key? key, required this.examId, required this.studentNo}) + : super(key: key); + + @override + State createState() => _CompletedReportState(); +} + +class _CompletedReportState extends State with CommonMixin { + ReportStudentInfo? studentInfo; + int currentSubjectId = 0; + ExamOriginPapers? examOrigin; + List examOriginList = []; + List questionAnswers = []; + final viewTransformationController = TransformationController(); + bool isList = false; + + @override + void initState() { + final zoomFactor = 0.5; + final xTranslate = 0.0; + final yTranslate = 0.0; + // final yTranslate = examOrigin!.width/2; + viewTransformationController.value.setEntry(0, 0, zoomFactor); + viewTransformationController.value.setEntry(1, 1, zoomFactor); + viewTransformationController.value.setEntry(2, 2, zoomFactor); + viewTransformationController.value.setEntry(0, 3, -xTranslate); + viewTransformationController.value.setEntry(1, 3, -yTranslate); + super.initState(); + getInfo(); + } + + void getInfo() async { + EasyLoading.show(status: 'loading...'); + RestClientReport clientReport = await getClientReport(); + BaseStructureResultReport res = + await clientReport.getStudentInfo(widget.examId, widget.studentNo); + if (res.success) { + setState(() { + studentInfo = res.data!; + currentSubjectId = + studentInfo!.subject.length > 0 ? studentInfo!.subject[0].value : 0; + getImageDetail(); + }); + } else { + EasyLoading.dismiss(); + } + } + + void getImageDetail() async { + RestClientReport clientReport = await getClientReport(); + ReportMarkingDetailParams params = + ReportMarkingDetailParams(currentSubjectId, widget.studentNo); + BaseStructureResultReport res = + await clientReport.getMarkingDetail(params); + + setState(() { + if (res.data != null) { + examOrigin = res.data!.examOriginPapers[0]; + examOriginList = res.data!.examOriginPapers; + questionAnswers = res.data!.questionAnswers; + } else { + examOriginList = []; + examOrigin = null; + questionAnswers = []; + } + }); + EasyLoading.dismiss(); + } + + @override + Widget build(BuildContext context) { + if (studentInfo == null) { + return Container(); + } + return Scaffold( + backgroundColor: Color(0xFFEDF0FF), + appBar: AppBar( + backgroundColor: Colors.white, + title: Text( + '${studentInfo!.userName}已完成考试报告', + style: TextStyle(fontSize: 14.r, color: Color(0xFF000000)), + ), + centerTitle: true, + leading: IconButton( + icon: Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () => Navigator.of(context).pop(), + ), + actions: [ + ReturnToHomepage(), + InkWell( + onTap: () { + RouterManager.router.navigateTo(context, + '${RouterManager.reportHistoryPath}?classId=${studentInfo!.classId}&userId=${studentInfo!.userId}&studentName=${Uri.encodeComponent(studentInfo!.userName)}'); + }, + child: UnconstrainedBox( + child: Container( + padding: EdgeInsets.symmetric(horizontal: 5.r), + margin: EdgeInsets.only(right: 14.r), + height: 22.r, + decoration: BoxDecoration( + border: Border.all(width: 1.r, color: Color(0xFF6988FD)), + borderRadius: BorderRadius.circular(5.r), + ), + child: Center( + child: Text( + '历次成绩', + style: TextStyle(fontSize: 10.r, color: Color(0xFF6988FD)), + ), + ), + ), + ), + ), + ], + ), + body: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(top: 10.r, left: 14.r, right: 14.r), + child: Text( + '${studentInfo!.userName}${studentInfo!.examName}', + style: TextStyle( + fontSize: 14.sp, + color: Color(0xFF6787FD), + fontWeight: FontWeight.w500), + ), + ), + Container( + margin: EdgeInsets.only(top: 10.r, left: 14.r, right: 14.r), + padding: EdgeInsets.symmetric(horizontal: 10.r), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.r), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: const Color.fromRGBO(0, 0, 0, 0.1), + offset: Offset(0, 0), //阴影y轴偏移量 + blurRadius: 2, //阴影模糊程度 + spreadRadius: 1, //阴影扩散程度 + ) + ], + ), + child: Column( + children: [ + Container( + margin: EdgeInsets.only(top: 10.r), + width: double.infinity, + height: 30.r, + decoration: BoxDecoration( + color: Color(0xFFEFF1FF), + borderRadius: BorderRadius.all(Radius.circular(2.r))), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: List.generate( + studentInfo!.scoreInfo.length > 7 + ? 7 + : studentInfo!.scoreInfo.length, (index) { + var item = studentInfo!.scoreInfo[index]; + return Container( + width: (MediaQuery.of(context).size.width - 48.r) / 7, + child: _subjectText(item.text)); + }), + ), + ), + Container( + width: double.infinity, + height: 30.r, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(2.r))), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: List.generate( + studentInfo!.scoreInfo.length > 7 + ? 7 + : studentInfo!.scoreInfo.length, (index) { + var item = studentInfo!.scoreInfo[index]; + return Container( + width: (MediaQuery.of(context).size.width - 48.r) / 7, + child: _subjectText(item.value.toString())); + }), + ), + ), + if (studentInfo!.scoreInfo.length > 7) + Container( + width: double.infinity, + height: 30.r, + decoration: BoxDecoration( + color: Color(0xFFEFF1FF), + borderRadius: BorderRadius.all(Radius.circular(2.r))), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: List.generate(studentInfo!.scoreInfo.length - 7, + (index) { + var item = studentInfo!.scoreInfo[index + 7]; + return Container( + width: + (MediaQuery.of(context).size.width - 48.r) / 7, + child: _subjectText(item.text)); + }), + ), + ), + if (studentInfo!.scoreInfo.length > 7) + Container( + width: double.infinity, + height: 30.r, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(2.r))), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: List.generate(studentInfo!.scoreInfo.length - 7, + (index) { + var subject = studentInfo!.scoreInfo[index + 7]; + return Container( + width: + (MediaQuery.of(context).size.width - 48.r) / 7, + child: _subjectText(subject.value.toString())); + }), + ), + ), + ], + ), + ), + SizedBox( + height: 10.r, + ), + Expanded( + child: Stack( + children: [ + Container( + margin: EdgeInsets.only(top: 10.r, left: 14.r, right: 14.r), + padding: EdgeInsets.symmetric(vertical: 15.r, horizontal: 10.r), + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.r), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: const Color.fromRGBO(0, 0, 0, 0.1), + offset: Offset(0, 0), //阴影y轴偏移量 + blurRadius: 2, //阴影模糊程度 + spreadRadius: 1, //阴影扩散程度 + ) + ], + ), + child: Column( + children: [ + SizedBox( + height: 30.r, + width: MediaQuery.of(context).size.width, + child: ListView.builder( + itemBuilder: (BuildContext context, int index) { + Subject item = studentInfo!.subject[index]; + return InkWell( + onTap: () { + setState(() { + currentSubjectId = item.value; + EasyLoading.show(status: 'loading...'); + getImageDetail(); + }); + }, + child: Container( + width: 30.r, + height: 30.r, + margin: EdgeInsets.only( + right: index == studentInfo!.subject.length + ? 0 + : (MediaQuery.of(context).size.width - + 30.r * 9 - + 104.r) / + 8), + decoration: BoxDecoration( + color: currentSubjectId == item.value + ? Color(0xFF6787FD) + : Color(0xFFFFFFFF), + shape: BoxShape.circle, + // borderRadius: BorderRadius.all(Radius.circular(13.r)), + ), + child: Center( + child: Text( + item.text, + style: TextStyle( + fontSize: 11.sp, + color: currentSubjectId == item.value + ? Colors.white + : Color(0xFF667095), + fontWeight: FontWeight.w400), + )), + ), + ); + }, + itemCount: studentInfo!.subject.length, + scrollDirection: Axis.horizontal, + ), + ), + Expanded( + child: examOrigin != null && examOrigin!.imageUrl != '' + ? !isList + ? Padding( + padding: EdgeInsets.only(top: 5.r), + child: InteractiveViewer( + transformationController: + viewTransformationController, + constrained: false, + boundaryMargin: EdgeInsets.all(140.r), + minScale: 0.1, + // 最小缩放 + maxScale: 4.0, + // 最大缩放 + child: CustomRect(examOrigin!)), + ) + : Padding( + padding: EdgeInsets.only(top: 10.r), + child: questionAnswers.length > 0 + ? CompleteTable( + fixedCols: 0, + fixedRows: 1, + bodyList: questionAnswers, + ) + : MyEmptyWidget(), + ) + : MyEmptyWidget(), + ), + SizedBox( + height: 15.r, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + flex: 1, + child: InkWell( + onTap: () { + isList = false; + setState(() {}); + }, + child: Container( + height: 27.r, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.r), + color: !isList + ? Color(0xFF6988FD) + : Color(0xFFEDEFFF), + ), + child: Center( + child: Text( + '查看原卷', + style: TextStyle( + fontSize: 12.sp, + color: !isList + ? Colors.white + : Color(0xFF7B7B7E)), + ), + ), + ), + ), + ), + SizedBox( + width: 20.r, + ), + Flexible( + flex: 1, + child: InkWell( + onTap: () { + isList = true; + setState(() {}); + }, + child: Container( + height: 27.r, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.r), + color: isList + ? Color(0xFF6988FD) + : Color(0xFFEDEFFF), + ), + child: Center( + child: Text( + '查看列题', + style: TextStyle( + fontSize: 12.sp, + color: isList + ? Colors.white + : Color(0xFF7B7B7E)), + ), + ), + ), + ), + ), + ], + ), + ], + ), + ), + if (!isList) + Positioned( + left: 0.r, + top: MediaQuery.of(context).size.height / 4, + child: InkWell( + onTap: () { + var num = examOrigin!.pageIndex; + if (num > 1) { + setState(() { + examOrigin = examOriginList[num - 1 - 1]; + }); + } + }, + child: Opacity( + opacity: examOrigin != null && examOrigin!.pageIndex > 1 + ? 1 + : 0.3, + child: Image.asset( + 'assets/images/report_left_icon.png', + width: 33.r, + height: 33.r, + )), + ), + ), + if (!isList) + Positioned( + right: 0, + top: MediaQuery.of(context).size.height / 4, + child: InkWell( + onTap: () { + var num = examOrigin!.pageIndex; + if (num < examOriginList.length) { + setState(() { + examOrigin = examOriginList[num]; + }); + } + }, + child: Opacity( + opacity: examOrigin != null && + examOrigin!.pageIndex < examOriginList.length + ? 1 + : 0.3, + child: Image.asset( + 'assets/images/report_right_icon.png', + width: 33.r, + height: 33.r, + )), + /* Image.asset( + 'assets/images/report_right_icon.png', + width: 33.r, + height: 33.r, + )*/ + ), + ) + ], + )), + SizedBox( + height: 10.r, + ), + ], + ), + ); + } +} + +class _subjectText extends StatelessWidget { + final String name; + final bool isTitle; + + const _subjectText(this.name, {this.isTitle = true, Key? key}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Center( + child: Text( + name, + style: TextStyle( + fontSize: isTitle ? 11.sp : 12.sp, + color: isTitle ? Color(0xFF667095) : Color(0xFF424242), + fontWeight: FontWeight.w400), + ), + ); + } +} diff --git a/marking_app/lib/pages/report_detail/index.dart b/marking_app/lib/pages/report_detail/index.dart index a4506b4..16a185e 100644 --- a/marking_app/lib/pages/report_detail/index.dart +++ b/marking_app/lib/pages/report_detail/index.dart @@ -23,6 +23,7 @@ import 'package:marking_app/pages/report_detail/widgets/no_data.dart'; import 'package:marking_app/pages/report_detail/widgets/overall_level_table.dart'; import 'package:marking_app/pages/report_detail/widgets/report_card_dialog.dart'; import 'package:marking_app/pages/report_detail/widgets/question_table.dart'; +import 'package:marking_app/routes/RouterManager.dart'; import 'package:marking_app/utils/request/rest_client_report.dart'; import 'package:marking_app/utils/toast_utils.dart'; @@ -105,7 +106,6 @@ class _ReportDetailState extends ConsumerState with CommonMixin { BaseStructureResultReport result = await clientReport.getReportDetail(widget.examId, widget.showGrade && isGrade ? -1 : currentClass.value); - // print('*************result=${result.message}'); if (result.code == 200) { setState(() { currentPage = 1; @@ -139,9 +139,7 @@ class _ReportDetailState extends ConsumerState with CommonMixin { limit: pageSize); BaseStructureResultReport res = await clientReport.getQuestion(params); - print( - 'res.data!.total=${res.code == 200 ? res.data!.bodyExcelData.sheets[0].bodyData.length : ''}'); - if (res.code != 200 || res.data == null) { + if (res.code != 200 || res.data == null) { setState(() { smallQuestionRes = null; questionTotalPage = 0; @@ -212,7 +210,10 @@ class _ReportDetailState extends ConsumerState with CommonMixin { }); EasyLoading.dismiss(); } + goCompleteReport(BuildContext context, int index,{String studentNo = 'true'}){ + RouterManager.router.navigateTo(context, '${RouterManager.completedReportPath}?examId=${widget.examId}&studentNo=${studentNo == 'true'?initialList[index].examStudentId:studentNo}'); + } //成绩单详情 void showAlertDialog(BuildContext context, int index) { List detailHead = []; @@ -518,6 +519,7 @@ class _ReportDetailState extends ConsumerState with CommonMixin { isHtml:true, fixedRows: 1, fixedCols: 1, + showCardDetail: goCompleteReport, ), ) : NoData(), @@ -540,6 +542,7 @@ class _ReportDetailState extends ConsumerState with CommonMixin { isHtml:true, fixedRows: 1, fixedCols: 1, + showCardDetail: goCompleteReport, ), ), Row( @@ -668,6 +671,8 @@ class _ReportDetailState extends ConsumerState with CommonMixin { isScore: true, fixedRows: 1, fixedCols: 3, + showCardDetail: goCompleteReport, + smallQuestion:true, ), ) : NoData(), @@ -797,7 +802,8 @@ class _ReportDetailState extends ConsumerState with CommonMixin { child: CardList( headList: cardHeadList, bodyList: cardBodyList, - showCardDetail: showAlertDialog, + // showCardDetail: showAlertDialog, + showCardDetail: goCompleteReport, fixedRows: 1, fixedCols: 3, ), diff --git a/marking_app/lib/pages/report_detail/report_history.dart b/marking_app/lib/pages/report_detail/report_history.dart index 34ec256..449b0be 100644 --- a/marking_app/lib/pages/report_detail/report_history.dart +++ b/marking_app/lib/pages/report_detail/report_history.dart @@ -1,15 +1,81 @@ import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:functional_widget_annotation/functional_widget_annotation.dart'; +import 'package:marking_app/common/mixin/common.dart'; +import 'package:marking_app/common/model/common/base_structure_result_report.dart'; +import 'package:marking_app/common/model/report/report_student_history_record.dart'; +import 'package:marking_app/components/ReturnToHomepage.dart'; +import 'package:marking_app/routes/RouterManager.dart'; +import 'package:marking_app/utils/common_utils.dart'; +import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart'; +import 'package:marking_app/utils/index.dart'; +import 'package:marking_app/utils/request/rest_client_report.dart'; +import 'package:syncfusion_flutter_datepicker/datepicker.dart'; class ReportHistory extends StatefulWidget { - const ReportHistory({Key? key}) : super(key: key); + final int userId; + final int classId; + final String studentName; + + const ReportHistory({Key? key, required this.classId, required this.userId,required this.studentName}) + : super(key: key); @override State createState() => _ReportHistoryState(); } -class _ReportHistoryState extends State { +class _ReportHistoryState extends State + with CommonMixin, TickerProviderStateMixin { bool isWork = true; + String startDataTime = + CommonUtils.getWeekStartDate().toString().substring(0, 10); + String endDataTime = CommonUtils.getWeekEndDate().toString().substring(0, 10); + String customTimeStr = '自定义'; + late TabController tabController; + List dataList = []; + late final EasyRefreshController refreshController; + + @override + void initState() { + print('userId=${widget.userId}&classId=${widget.classId}'); + super.initState(); + refreshController = EasyRefreshController(); + tabController = TabController(length: 3, vsync: this); + EasyLoading.show(status: 'loading...'); + getList(); + } + + void getList() async { + if (startDataTime == DateTime.now().toString().substring(0, 10) || + DateTime.parse(startDataTime).isAfter(DateTime.now())) { + DateTime now = DateTime.parse(startDataTime); + endDataTime = now.add(Duration(days: 1)).toString().substring(0, 10); + print(now.add(Duration(days: 1))); + } else { + endDataTime = DateTime.now().toString().substring(0, 10); + } + RestClientReport clientReport = await getClientReport(); + BaseStructureResultReport> res = + // 488491659239519, 488491659190341, '2023-03-08', '2024-04-19' + await clientReport.getStudentHistroyRecords( + widget.userId, widget.classId, startDataTime, endDataTime); + if (res.success) { + setState(() { + dataList = res.data!; + }); + } + + EasyLoading.dismiss(); + } + + @override + void dispose() { + // TODO: implement dispose + super.dispose(); + tabController.dispose(); + } @override Widget build(BuildContext context) { @@ -18,7 +84,7 @@ class _ReportHistoryState extends State { appBar: AppBar( backgroundColor: Colors.white, title: Text( - '已完成报告', + '${widget.studentName}已完成考试报告', style: TextStyle(fontSize: 14.r, color: Color(0xFF000000)), ), centerTitle: true, @@ -26,10 +92,13 @@ class _ReportHistoryState extends State { icon: Icon(Icons.arrow_back_ios, color: Colors.black), onPressed: () => Navigator.of(context).pop(), ), + actions: [ + ReturnToHomepage(), + ], ), body: Column( children: [ - Container( + /* Container( width: MediaQuery.of(context).size.width * 0.8, height: 40.r, margin: EdgeInsets.only( @@ -89,9 +158,400 @@ class _ReportHistoryState extends State { )), ], ), - ) + ),*/ + SizedBox( + height: 10.r, + ), + jobConditionFilter(context, + controller: tabController, + customTimeStr: customTimeStr, + customTime: tabController.index != 3 || + ((endDataTime == null || endDataTime == '') && + (startDataTime == null || startDataTime == '')) + ? null + : PickerDateRange( + startDataTime == null || startDataTime == '' + ? null + : DateTime.parse(startDataTime!), + endDataTime == null || endDataTime == '' + ? null + : DateTime.parse(endDataTime!), + ), onTimeFilter: (String? startTime, String? endTime) { + if (startTime == null && endTime == null) { + if (tabController.index == 3) { + tabController.animateTo(0); + } + startDataTime = ''; + endDataTime = ''; + customTimeStr = '自定义'; + } else { + EasyLoading.show(status: 'loading...'); + startDataTime = startTime != null ? startTime : ''; + endDataTime = endTime != null ? endTime : ''; + setState(() {}); + getList(); + } + + // _refreshController2.callRefresh(); + }, refreshTime: (value) { + if (value != null && value.startDate != null) { + customTimeStr = + value.startDate?.toString().substring(0, 10) ?? ''; + setState(() {}); + if (value.endDate != null) { + if (value.startDate!.year == value.endDate!.year) { + customTimeStr = value.startDate.toString().substring(5, 10) + + '~${value.endDate.toString().substring(5, 10)}'; + setState(() {}); + } else { + customTimeStr = + '$customTimeStr~${value.endDate?.toString().substring(0, 10)}'; + setState(() {}); + } + } + } + }), + Expanded( + child: Padding( + padding: EdgeInsets.symmetric(vertical: 14.r, horizontal: 14.r), + child: EasyRefresh( + firstRefresh: false, + taskIndependence: true, + controller: refreshController, + header: MaterialHeader(), + footer: TaurusFooter(), + onRefresh: () async { + getList(); + }, + child: dataList.length > 0 + ? ListView.builder( + itemCount: dataList.length, + itemBuilder: (context, index) { + ReportStudentHistoryRecord item = dataList[index]; + return InkWell( + onTap: (){ + RouterManager.router.navigateTo(context, '${RouterManager.completedReportPath}?examId=${item.examId}&studentNo=${item.studentExamNum}'); + }, + child: Container( + // padding: EdgeInsets.all(6.r), + margin: EdgeInsets.only(bottom: 10.r), + width: double.infinity, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage( + 'assets/images/report_student_history_bg.png'), + fit: BoxFit.fill, + ), + border: Border.all( + width: 1.r, + color: Color.fromRGBO(46, 91, 255, 0.2)), + borderRadius: BorderRadius.circular(5.r), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.symmetric( + vertical: 10.r, + horizontal: 10.r, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Text( + item.examName, + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF000000)), + ), + Spacer(), + Text( + item.examStartTime, + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF4A4A4A)), + ) + ], + ), + ), + SizedBox( + height: 2.r, + ), + Container( + padding: + EdgeInsets.symmetric(horizontal: 10.r), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5.r), + ), + child: item.scoreInfo.length > 0 + ? Scrollbar( + // thumbVisibility:true, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: List.generate( + item.scoreInfo.length, (i) { + ScoreInfo score = + item.scoreInfo[i]; + return Row( + children: [ + Column( + children: [ + Container( + height: 22.r, + width: item.scoreInfo + .length > + 4 + ? 90.r + : (MediaQuery.of( + context) + .size + .width - + 48.r - + (item.scoreInfo + .length - 1) * + 1.5 + .r) / + item.scoreInfo + .length, + decoration: + BoxDecoration( + borderRadius: BorderRadius.only( + topLeft: i == 0 + ? Radius + .circular( + 4.r) + : Radius + .zero, + topRight: i == + item.scoreInfo.length - + 1 + ? Radius + .circular( + 4.r) + : Radius + .zero), + color: Color( + 0xFFECECEC), + ), + child: Center( + child: Text( + score.text, + style: TextStyle( + fontSize: + 12.sp, + color: Color( + 0xFF8A8A8A)), + ), + ), + ), + Container( + height: 30.r, + width: item.scoreInfo + .length > + 4 + ? 90.r + : (MediaQuery.of( + context) + .size + .width - + 48.r - + (item.scoreInfo + .length - 1) * + 1.5.r) / + item.scoreInfo + .length, + decoration: + BoxDecoration( + borderRadius: BorderRadius.only( + bottomLeft: i == + 0 + ? Radius + .circular( + 4.r) + : Radius + .zero, + bottomRight: i == + item.scoreInfo.length - + 1 + ? Radius + .circular( + 4.r) + : Radius + .zero), + color: Colors.white, + ), + child: Center( + child: Text( + score.value + .toString(), + style: TextStyle( + fontSize: + 12.sp, + color: Color( + 0xFF4A4A4A)), + ), + ), + ), + ], + ), + SizedBox( + width: i < + item.scoreInfo + .length - 1 + ? 1.5.r + : 0.r, + ), + ], + ); + }), + ), + ), + ) + : Center( + child: Text( + '-暂无数据-', + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF8A8A8A)), + )), + ), + SizedBox( + height: 20.r, + ), + ], + ), + ), + ); + }) + : MyEmptyWidget(), + ), + ), + ), ], ), ); } } + +@hwidget +Widget jobConditionFilter(BuildContext context, + {required TabController controller, + PickerDateRange? customTime, + required Function refreshTime, + required String customTimeStr, + required Function(String? startTime, String? endTime) onTimeFilter}) { + var customTimeState = PickerDateRange(null, null); + if (customTime != null) { + customTimeState = PickerDateRange( + customTime!.startDate != null ? customTime!.startDate : null, + customTime!.endDate != null ? customTime!.endDate : null); + } + + DateTime getMonthStartDate() { + DateTime now = DateTime.now(); + return DateTime(now.year, now.month, 1); // 获取当前月份的第一天 + } + + DateTime getMonthEndDate() { + DateTime now = DateTime.now(); + int nextMonth = now.month + 1; + if (nextMonth > 12) { + nextMonth = 1; + now = now.add(Duration(days: 31 - now.day)); // 跨年了,所以加到当前月的最后一天 + } else { + now = now.add(Duration( + days: DateTime(now.year, nextMonth, 0).day - + now.day)); // 加到下个月的第一天的前一天,即本月最后一天 + } + return now; + } + + return Container( + decoration: BoxDecoration( + // color: Color.fromRGBO(244, 244, 244, 1), + // border: Border(bottom: BorderSide(color: Color.fromRGBO(204, 204, 204, 1), width: 1)), + ), + child: Container( + alignment: Alignment.centerLeft, + decoration: BoxDecoration( + border: + Border(bottom: BorderSide(width: 1.r, color: Color(0xFFCCCCCC)))), + child: TabBar( + controller: controller, + unselectedLabelStyle: TextStyle( + fontSize: 12.sp, color: const Color.fromRGBO(102, 102, 102, 1)), + labelStyle: TextStyle( + fontSize: 12.sp, + fontWeight: FontWeight.bold, + color: Color.fromRGBO(116, 145, 253, 1), + ), + isScrollable: true, + labelColor: Color(0xFF7491FD), + unselectedLabelColor: Color(0xFF505E6E), + padding: EdgeInsets.symmetric(horizontal: 14.r), + // indicatorSize: TabBarIndicatorSize.label, // 设置指示器高度和标签一样高 + onTap: (int val) async { + switch (val) { + case 0: // 近一周 + onTimeFilter( + CommonUtils.getWeekStartDate().toString().substring(0, 10), + CommonUtils.getWeekEndDate().toString().substring(0, 10), + ); + break; + case 1: // 近一个月 + onTimeFilter( + getMonthStartDate().toString().substring(0, 10), + getMonthEndDate().toString().substring(0, 10), + ); + break; + default: // 自定义 + var dialogData = await showDialog( + context: context, + builder: (BuildContext context1) { + return Center( + child: Container( + color: Colors.white, + width: isPad() + ? ScreenUtil().screenWidth / 2 + : ScreenUtil().screenWidth / 1.3, + height: ScreenUtil().screenHeight / 2, + child: SfDateRangePicker( + showActionButtons: true, + confirmText: '确定', + cancelText: '取消', + onSubmit: (p0) { + print(p0); + Navigator.of(context1).pop(p0); + refreshTime(p0); + }, + onCancel: () { + Navigator.of(context1).pop(); + }, + selectionMode: DateRangePickerSelectionMode.range, + initialSelectedRange: customTimeState, + ), + ), + ); + }); + // startDate: 2024-03-04 18:47:00.117958, endDate: 2024-03-11 18:47:00.117986 + // if (dialogData != null && (dialogData.startDate != null || dialogData.endDate != null)) {} + onTimeFilter( + dialogData?.startDate?.toString().substring(0, 10), + dialogData?.endDate?.toString().substring(0, 10), + ); + // customTimeState = dialogData!; + customTimeState = dialogData ?? PickerDateRange(null, null); + } + }, + tabs: [ + const Tab(text: '近一周'), + const Tab(text: '近一月'), + Tab(text: customTimeStr), + ], + ), + ), + ); +} diff --git a/marking_app/lib/pages/report_detail/widgets/card_table.dart b/marking_app/lib/pages/report_detail/widgets/card_table.dart index d860f95..640d3fa 100644 --- a/marking_app/lib/pages/report_detail/widgets/card_table.dart +++ b/marking_app/lib/pages/report_detail/widgets/card_table.dart @@ -2,6 +2,7 @@ import 'package:data_table_2/data_table_2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart'; +import 'package:marking_app/routes/RouterManager.dart'; class CardList extends StatefulWidget { final List headList; @@ -11,6 +12,7 @@ class CardList extends StatefulWidget { final int? fixedRows; final int? fixedCols; final bool? isHtml; + final bool? smallQuestion; const CardList({ Key? key, @@ -19,6 +21,7 @@ class CardList extends StatefulWidget { this.showCardDetail, this.isScore = false, this.isHtml = false, + this.smallQuestion = false, this.fixedCols, this.fixedRows, }) : super(key: key); @@ -32,6 +35,7 @@ class _CardListState extends State { int? _sortColumnIndex; bool _sortAscending = true; + DataRow _getRow(int index, [Color? color]) { assert(index >= 0); var body = widget.bodyList[index]; @@ -40,16 +44,19 @@ class _CardListState extends State { color: color != null ? MaterialStateProperty.all(color) : null, cells: List.generate(widget.headList.length, (itemIndex) { var item = body[itemIndex]; + // print(item); return itemIndex == 0 && widget.isScore == false ?DataCell(Center( child: Text((index + 1).toString(), style: TextStyle(fontSize: 12.sp, color: Color(0xFF262626))), )): - DataCell(itemIndex == 2 && widget.isScore == false + DataCell((itemIndex == 2 && widget.isScore == false)||(itemIndex == 1 && widget.smallQuestion == true) ? InkWell( onTap: () { - if (widget.showCardDetail != null) { + if (widget.showCardDetail != null && itemIndex == 1 && item.toString().contains('{') && item['ExamNo'] != '') { + widget.showCardDetail!(context, index,studentNo:item['ExamNo']); + }else if (widget.showCardDetail != null && itemIndex == 2) { widget.showCardDetail!(context, index); } }, @@ -58,7 +65,7 @@ class _CardListState extends State { children: [ Expanded( child: Center( - child: Text(item.toString(), + child: Text(item.toString().contains('{')?item['Name']:item.toString(), style: TextStyle( fontSize: 12.sp, color: Color(0xFF262626))), ), @@ -74,16 +81,24 @@ class _CardListState extends State { ], ), ) - : Center( - child: Padding( - padding: EdgeInsets.symmetric(horizontal: 5.r), - child: - widget.isHtml == true?HtmlWidget(item.toString(),textStyle: TextStyle(fontSize: 12.sp,color: Color(0xFF262626)),): - Text(item.toString(), - style: - TextStyle(fontSize: 12.sp, color: Color(0xFF262626))), + : InkWell( + onTap: (){ + if (widget.showCardDetail != null && item.toString().contains('{') && item['ExamNo'] != '') { + // print(item); + widget.showCardDetail!(context, index,studentNo:item['ExamNo']); + } + }, + child: Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 5.r), + child: + widget.isHtml == true?HtmlWidget(item.toString().contains('{')?item['Name']: item.toString(),textStyle: TextStyle(fontSize: 12.sp,color: item.toString().contains('{') && item['ExamNo'] != ''?Color(0xFF6988FD):Color(0xFF262626)),): + Text(item.toString().contains('{')?item['Name']:item.toString(), + style: + TextStyle(fontSize: 12.sp, color: Color(0xFF262626))), + ), ), - )); + )); }), ); } diff --git a/marking_app/lib/pages/report_detail/widgets/complete_table.dart b/marking_app/lib/pages/report_detail/widgets/complete_table.dart new file mode 100644 index 0000000..fa8bc0e --- /dev/null +++ b/marking_app/lib/pages/report_detail/widgets/complete_table.dart @@ -0,0 +1,161 @@ +import 'package:data_table_2/data_table_2.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart'; +import 'package:marking_app/common/model/report/report_marking_detail.dart'; +import 'package:photo_view/photo_view.dart'; + +class CompleteTable extends StatefulWidget { + final List bodyList; + final int? fixedRows; + final int? fixedCols; + + const CompleteTable({ + Key? key, + required this.bodyList, + this.fixedCols, + this.fixedRows, + }) : super(key: key); + + @override + State createState() => _CompleteTableState(); +} + +class _CompleteTableState extends State { + final ScrollController _controller = ScrollController(); + int? _sortColumnIndex; + bool _sortAscending = true; + final List headList = ['题号','小题分','得分','用户答案','正确答案']; + + showImg(String imgUrl) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + // insetPadding: EdgeInsets.symmetric(vertical: 10.r,horizontal: 45.r), + backgroundColor: Colors.transparent, + contentPadding: EdgeInsets.all(0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(15.r))), + content: Container( + width: MediaQuery.of(context).size.width - 48.r, + height: MediaQuery.of(context).size.height * 0.6, + color: Colors.white, + child: PhotoView(imageProvider: NetworkImage(imgUrl),backgroundDecoration: BoxDecoration(color: Colors.transparent),)), + ); + }, + ); + } + + DataRow _getRow(int index, [Color? color]) { + assert(index >= 0); + QuestionAnswers body = widget.bodyList[index]; + return DataRow2.byIndex( + index: index, + color: color != null ? MaterialStateProperty.all(color) : null, + cells: [ + DataCell( + Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 5.r), + child: Text(body.questionNum, + style: + TextStyle(fontSize: 12.sp, color: Color(0xFF262626))), + ), + )), + DataCell( + Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 5.r), + child: Text(body.totalScore.toString(), + style: + TextStyle(fontSize: 12.sp, color: Color(0xFF262626))), + ), + )), + DataCell( + Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 5.r), + child: Text(body.score.toString(), + style: + TextStyle(fontSize: 12.sp, color: Color(0xFF262626))), + ), + )), + DataCell( + Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 5.r), + child: + body.yourAnswer.contains('http')? + InkWell( + onTap: (){ + showImg(body.yourAnswer); + }, + child: Text('查看原题',style: TextStyle(fontSize: 12.sp,color: Color(0xFF6988FD)),), + ): + Text(body.yourAnswer, + style: + TextStyle(fontSize: 12.sp, color: Color(0xFF262626))) + , + ), + )), + DataCell( + Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 5.r), + child: Text(body.answer, + style: + TextStyle(fontSize: 12.sp, color: Color(0xFF262626))), + ), + )), + ], + ); + } + + @override + Widget build(BuildContext context) { + return DataTable2( + dividerThickness: 0, + scrollController: _controller, + columnSpacing: 0, + horizontalMargin: 0, + dataRowHeight:40.r, + headingRowHeight: 30.r, + bottomMargin: 0, + border: TableBorder( + left: BorderSide( + width: 1, color: Color(0xFFEAEAEA), style: BorderStyle.solid), + right: BorderSide( + width: 1, color: Color(0xFFEAEAEA), style: BorderStyle.solid), + horizontalInside: BorderSide( + width: 1, color: Color(0xFFEAEAEA), style: BorderStyle.solid), + bottom: BorderSide( + width: 1, color: Color(0xFFEAEAEA), style: BorderStyle.solid), + verticalInside: BorderSide( + width: 1, color: Color(0xFFEAEAEA), style: BorderStyle.solid)), + headingRowColor: MaterialStateProperty.resolveWith((states) => + widget.fixedCols! > 0 ? Color(0xFFF0F3FF) : Colors.transparent), + headingRowDecoration: BoxDecoration(color: Color(0xFFF0F3FF)), + fixedColumnsColor: Color(0xFFF0F3FF), + fixedCornerColor: Colors.grey[400], + minWidth:MediaQuery.of(context).size.width, + fixedTopRows: widget.fixedRows!, + fixedLeftColumns: widget.fixedCols!, + sortColumnIndex: _sortColumnIndex, + sortAscending: _sortAscending, + // onSelectAll: (val) => setState(() => selectAll(val)), + columns: List.generate(headList.length, (index) { + var item = headList[index]; + return DataColumn2( + label: Center( + child: Text(item, + style: TextStyle(fontSize: 12.sp, color: Color(0xFF505767))), + ), + // size: ColumnSize.S, + fixedWidth:(MediaQuery.of(context).size.width - 48.r)/headList.length, + ); + }), + rows: List.generate(widget.bodyList.length, + (index) => _getRow(index, Colors.transparent))); + } +} diff --git a/marking_app/lib/pages/report_detail/widgets/report_card_dialog.dart b/marking_app/lib/pages/report_detail/widgets/report_card_dialog.dart index a142e72..993a77e 100644 --- a/marking_app/lib/pages/report_detail/widgets/report_card_dialog.dart +++ b/marking_app/lib/pages/report_detail/widgets/report_card_dialog.dart @@ -10,6 +10,7 @@ import 'package:marking_app/common/model/report/report_card.dart'; import 'package:marking_app/common/model/report/report_marking_detail.dart'; import 'package:marking_app/common/model/report/report_marking_detail_params.dart'; import 'package:marking_app/pages/report_detail/widgets/custom_rect.dart'; +import 'package:marking_app/routes/RouterManager.dart'; import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart'; import 'package:marking_app/utils/request/rest_client_report.dart'; @@ -32,6 +33,7 @@ class _ReportCardDialogState extends ConsumerState int currentSubjectId = 0; final viewTransformationController = TransformationController(); + bool isList = false; void initState() { final zoomFactor = 0.5; @@ -68,7 +70,6 @@ class _ReportCardDialogState extends ConsumerState if(res.data!=null){ examOrigin = res.data!.examOriginPapers[0]; examOriginList = res.data!.examOriginPapers; - // print('examOrigin!.width=${examOrigin!.width}'); }else{ examOriginList = []; examOrigin = null; @@ -83,28 +84,66 @@ class _ReportCardDialogState extends ConsumerState return Container( width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).size.height, - child: Column(children: [ - Padding( - padding: EdgeInsets.only(top: 10.r, left: 20.r, right: 20.r), + color: Color(0xFFEDEFFF), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + widget.cardItem.name, + style: TextStyle( + fontSize: 14.sp, + color: Color(0xFF6787FD), + fontWeight: FontWeight.w500), + ), + InkWell( + onTap: (){ + Navigator.pop(context); + }, + child: Icon(Icons.close,color: Colors.grey,size: 20.r,)) + ], + ), + Text( + '张沫凡重庆八中2023.2024 高二定时训练', + style: TextStyle( + fontSize: 14.sp, + color: Color(0xFF6787FD), + fontWeight: FontWeight.w500), + ), + InkWell( + onTap: (){ + RouterManager.router.navigateTo(context, RouterManager.reportHistoryPath); + }, + child: Container( + padding: EdgeInsets.symmetric(vertical: 3.r,horizontal: 5.r), + decoration: BoxDecoration( + border: Border.all(width: 1.r,color: Color(0xFF6988FD)), + borderRadius: BorderRadius.circular(5.r), + ), + child: Center( + child: Text('历次成绩',style: TextStyle(fontSize: 10.r,color: Color(0xFF6988FD)),), + ), + ), + ), + Container( + margin: EdgeInsets.only(top: 10.r, left: 14.r, right: 14.r), + padding: EdgeInsets.symmetric(horizontal: 10.r), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.r), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: const Color.fromRGBO(0, 0, 0, 0.1), + offset: Offset(0, 0), //阴影y轴偏移量 + blurRadius: 2, //阴影模糊程度 + spreadRadius: 1, //阴影扩散程度 + ) + ], + ), child: Column( children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - widget.cardItem.name, - style: TextStyle( - fontSize: 14.sp, - color: Color(0xFF6787FD), - fontWeight: FontWeight.w500), - ), - InkWell( - onTap: (){ - Navigator.pop(context); - }, - child: Icon(Icons.close,color: Colors.grey,size: 20.r,)) - ], - ), Container( margin: EdgeInsets.only(top: 10.r), width: double.infinity, @@ -119,7 +158,7 @@ class _ReportCardDialogState extends ConsumerState (index) { var item = widget.headList[index]; return Container( - width: (MediaQuery.of(context).size.width - 90.r) / 7, + width: (MediaQuery.of(context).size.width - 104.r) / 7, child: _subjectText(item)); }), ), @@ -133,20 +172,20 @@ class _ReportCardDialogState extends ConsumerState mainAxisAlignment: MainAxisAlignment.start, children: [ Container( - width: (MediaQuery.of(context).size.width - 90.r) / 7, + width: (MediaQuery.of(context).size.width - 104.r) / 7, child: _subjectText( widget.cardItem.totalScore.toString())), Container( - width: (MediaQuery.of(context).size.width - 90.r) / 7, + width: (MediaQuery.of(context).size.width - 104.r) / 7, child: _subjectText( widget.cardItem.totalClassRanking.toString())), Container( - width: (MediaQuery.of(context).size.width - 90.r) / 7, + width: (MediaQuery.of(context).size.width - 104.r) / 7, child: _subjectText( widget.cardItem.totalRanking.toString())), SizedBox( width: - (MediaQuery.of(context).size.width - 90.r) / 7 * 4, + (MediaQuery.of(context).size.width - 104.r) / 7 * 4, child: Row( children: List.generate( widget.cardItem.subjectDetails.length > 4 @@ -156,7 +195,7 @@ class _ReportCardDialogState extends ConsumerState var subject = widget.cardItem.subjectDetails[index]; return Container( width: - (MediaQuery.of(context).size.width - 90.r) / + (MediaQuery.of(context).size.width - 104.r) / 7, child: _subjectText(subject.score)); }), @@ -177,7 +216,7 @@ class _ReportCardDialogState extends ConsumerState List.generate(widget.headList.length - 7, (index) { var item = widget.headList[index + 7]; return Container( - width: (MediaQuery.of(context).size.width - 90.r) / 7, + width: (MediaQuery.of(context).size.width - 104.r) / 7, child: _subjectText(item)); }), ), @@ -194,7 +233,7 @@ class _ReportCardDialogState extends ConsumerState widget.cardItem.subjectDetails.length - 4, (index) { var subject = widget.cardItem.subjectDetails[index + 4]; return Container( - width: (MediaQuery.of(context).size.width - 90.r) / 7, + width: (MediaQuery.of(context).size.width - 104.r) / 7, child: _subjectText(subject.score)); }), ), @@ -202,161 +241,276 @@ class _ReportCardDialogState extends ConsumerState ], ), ), + SizedBox(height: 10.r,), Expanded( - child: Container( - margin: EdgeInsets.only(top: 0.r), - padding: EdgeInsets.symmetric(vertical: 5.r, horizontal: 20.r), + child: Stack( + children: [ + Container( + margin: EdgeInsets.only(top: 10.r, left: 14.r, right: 14.r), + padding: EdgeInsets.symmetric(vertical:15.r,horizontal: 10.r), + /* margin: EdgeInsets.only(top: 0.r), + padding: EdgeInsets.symmetric(vertical: 5.r, horizontal: 20.r),*/ width: double.infinity, - decoration: BoxDecoration( - color: Color(0xFFEFF1FF), - borderRadius: BorderRadius.only( - bottomLeft: Radius.circular(15.r), - bottomRight: Radius.circular(15.r))), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.r), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: const Color.fromRGBO(0, 0, 0, 0.1), + offset: Offset(0, 0), //阴影y轴偏移量 + blurRadius: 2, //阴影模糊程度 + spreadRadius: 1, //阴影扩散程度 + ) + ], + ), child: Column( - children: [ - SizedBox( - height: 30.r, - width: MediaQuery.of(context).size.width, - child: ListView.builder( - itemBuilder: (BuildContext context, int index) { - var item = subjectList[index]; - return InkWell( - onTap: () { - setState(() { - subjectList.forEach((element) { - element.isCheck = false; - }); - item.isCheck = true; - currentSubjectId = item.value; - EasyLoading.show(status: 'loading...'); - getImageDetail(); - }); - }, - child: Container( - width: 30.r, - height: 30.r, - margin: EdgeInsets.only( - right: index == subjectList.length - ? 0 - : (MediaQuery.of(context).size.width - - 30.r * 9 - - 110.r) / - 8), - decoration: BoxDecoration( - color: item.isCheck - ? Color(0xFF6787FD) - : Color(0xFFFFFFFF), - shape: BoxShape.circle, - // borderRadius: BorderRadius.all(Radius.circular(13.r)), - ), - child: Center( - child: Text( - item.text, - style: TextStyle( - fontSize: 11.sp, - color: item.isCheck - ? Colors.white - : Color(0xFF667095), - fontWeight: FontWeight.w400), - )), - ), - ); - }, - itemCount: subjectList.length, - scrollDirection: Axis.horizontal, - ), - ), - Expanded( - child: examOrigin != null && examOrigin!.imageUrl != '' - ? Padding( - padding: EdgeInsets.only(top:5.r), - child: InteractiveViewer( - transformationController: viewTransformationController, - constrained: false, - boundaryMargin: EdgeInsets.all(140.r), - minScale: 0.1, // 最小缩放 - maxScale: 4.0, // 最大缩放 - child: CustomRect(examOrigin!)), - ) - : MyEmptyWidget(), - ), - SizedBox(height: 6.r,), - Row( - mainAxisAlignment: MainAxisAlignment.center, children: [ - InkWell( - onTap: () { - var num = examOrigin!.pageIndex; - if (num > 1) { - setState(() { - examOrigin = examOriginList[num - 1 - 1]; - }); - } - }, - child:Container( - padding: EdgeInsets.symmetric( - vertical: 2.r, horizontal: 5.r), - decoration: BoxDecoration( - border: Border.all( - color: examOrigin != null && examOrigin!.pageIndex > 1?Color(0xFF6787FD): Color(0xFFB3B9B9), - width: 1.r), - borderRadius: BorderRadius.all( - Radius.circular(2.r)), - ), - child: Text( - '上一页', - style: TextStyle( - color: examOrigin != null && examOrigin!.pageIndex > 1?Color(0xFF6787FD): Color(0xFFB3B9B9), - ), - ), - ), - /* Image.asset( - 'assets/images/report_left_icon.png', - width: 33.r, - height: 33.r, - )*/ - ), SizedBox( - width: 15.r, - ), - InkWell( - onTap: () { - var num = examOrigin!.pageIndex; - if (num < examOriginList.length) { - setState(() { - examOrigin = examOriginList[num]; - }); - - } + height: 30.r, + width: MediaQuery.of(context).size.width, + child: ListView.builder( + itemBuilder: (BuildContext context, int index) { + var item = subjectList[index]; + return InkWell( + onTap: () { + setState(() { + subjectList.forEach((element) { + element.isCheck = false; + }); + item.isCheck = true; + currentSubjectId = item.value; + EasyLoading.show(status: 'loading...'); + getImageDetail(); + }); + }, + child: Container( + width: 30.r, + height: 30.r, + margin: EdgeInsets.only( + right: index == subjectList.length + ? 0 + : (MediaQuery.of(context).size.width - + 30.r * 9 - + 104.r) / + 8), + decoration: BoxDecoration( + color: item.isCheck + ? Color(0xFF6787FD) + : Color(0xFFFFFFFF), + shape: BoxShape.circle, + // borderRadius: BorderRadius.all(Radius.circular(13.r)), + ), + child: Center( + child: Text( + item.text, + style: TextStyle( + fontSize: 11.sp, + color: item.isCheck + ? Colors.white + : Color(0xFF667095), + fontWeight: FontWeight.w400), + )), + ), + ); }, - child: Container( - padding: EdgeInsets.symmetric( - vertical: 2.r, horizontal: 5.r), - decoration: BoxDecoration( - border: Border.all( - color: examOrigin != null && examOrigin!.pageIndex < examOriginList.length?Color(0xFF6787FD): Color(0xFFB3B9B9), - width: 1.r), - borderRadius: BorderRadius.all( - Radius.circular(2.r)), - ), - child: Text( - '下一页', - style: TextStyle( - color: examOrigin != null && examOrigin!.pageIndex < examOriginList.length?Color(0xFF6787FD): Color(0xFFB3B9B9), + itemCount: subjectList.length, + scrollDirection: Axis.horizontal, + ), + ), + Expanded( + child: examOrigin != null && examOrigin!.imageUrl != '' + ? !isList?Padding( + padding: EdgeInsets.only(top:5.r), + child: InteractiveViewer( + transformationController: viewTransformationController, + constrained: false, + boundaryMargin: EdgeInsets.all(140.r), + minScale: 0.1, // 最小缩放 + maxScale: 4.0, // 最大缩放 + child: CustomRect(examOrigin!)), + ):Text('list') + : MyEmptyWidget(), + ), + SizedBox(height: 6.r,), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + flex: 1, + child: InkWell( + onTap:(){ + isList = false; + setState(() { + + }); + }, + child: Container( + height: 27.r, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.r), + color: !isList?Color(0xFF6988FD):Color(0xFFEDEFFF), + ), + child: Center( + child: Text('查看原卷',style: TextStyle(fontSize: 12.sp,color: !isList?Colors.white:Color(0xFF7B7B7E)),), + ), ), ), ), - /* Image.asset( - 'assets/images/report_right_icon.png', - width: 33.r, - height: 33.r, - )*/ + SizedBox(width: 20.r,), + Flexible( + flex: 1, + child: InkWell( + onTap: (){ + isList = true; + setState(() { + + }); + }, + child: Container( + height: 27.r, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.r), + color: isList?Color(0xFF6988FD):Color(0xFFEDEFFF), + ), + child: Center( + child: Text('查看列题',style: TextStyle(fontSize: 12.sp,color: isList?Colors.white:Color(0xFF7B7B7E)),), + ), + ), + ), + ), + ], ), + /*if(!isList) + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + InkWell( + onTap: () { + var num = examOrigin!.pageIndex; + if (num > 1) { + setState(() { + examOrigin = examOriginList[num - 1 - 1]; + }); + } + }, + child:Column( + children: [ + Opacity( + opacity: examOrigin != null && examOrigin!.pageIndex > 1?1:0.3, + child: Image.asset('assets/images/report_left_icon.png',width: 33.r,height: 33.r,)), + Container( + padding: EdgeInsets.symmetric( horizontal: 5.r), + decoration: BoxDecoration( + *//* border: Border.all( + color: examOrigin != null && examOrigin!.pageIndex > 1?Color(0xFF6787FD): Color(0xFFB3B9B9), + width: 1.r),*//* + borderRadius: BorderRadius.all( + Radius.circular(2.r)), + ), + child: Text( + '上一页', + style: TextStyle( + color: examOrigin != null && examOrigin!.pageIndex > 1?Color(0xFF6787FD): Color(0xFFB3B9B9), + ), + ), + ), + ], + ), + *//* Image.asset( + 'assets/images/report_left_icon.png', + width: 33.r, + height: 33.r, + )*//* + ), + SizedBox( + width: 15.r, + ), + InkWell( + onTap: () { + var num = examOrigin!.pageIndex; + if (num < examOriginList.length) { + setState(() { + examOrigin = examOriginList[num]; + }); + + } + }, + child: Column( + children: [ + Opacity( + opacity:examOrigin != null && examOrigin!.pageIndex < examOriginList.length?1:0.3, + child: Image.asset('assets/images/report_right_icon.png',width: 33.r,height: 33.r,)), + Container( + padding: EdgeInsets.symmetric(horizontal: 5.r), + decoration: BoxDecoration( + *//* border: Border.all( + color: examOrigin != null && examOrigin!.pageIndex < examOriginList.length?Color(0xFF6787FD): Color(0xFFB3B9B9), + width: 1.r),*//* + borderRadius: BorderRadius.all( + Radius.circular(2.r)), + ), + child: Text( + '下一页', + style: TextStyle( + color: examOrigin != null && examOrigin!.pageIndex < examOriginList.length?Color(0xFF6787FD): Color(0xFFB3B9B9), + ), + ), + ), + ], + ), + *//* Image.asset( + 'assets/images/report_right_icon.png', + width: 33.r, + height: 33.r, + )*//* + ), + ], + ),*/ ], - ), - ], ), - )) + ), + if(!isList) + Positioned( + left:0.r, + top: MediaQuery.of(context).size.height/4, + child: InkWell( + onTap: () { + var num = examOrigin!.pageIndex; + if (num > 1) { + setState(() { + examOrigin = examOriginList[num - 1 - 1]; + }); + } + }, + child:Opacity( + opacity: examOrigin != null && examOrigin!.pageIndex > 1?1:0.3, + child: Image.asset('assets/images/report_left_icon.png',width: 33.r,height: 33.r,)), + ),), + if(!isList) + Positioned( + right: 0, + top: MediaQuery.of(context).size.height/4, + child: InkWell( + onTap: () { + var num = examOrigin!.pageIndex; + if (num < examOriginList.length) { + setState(() { + examOrigin = examOriginList[num]; + }); + + } + }, + child: Opacity( + opacity:examOrigin != null && examOrigin!.pageIndex < examOriginList.length?1:0.3, + child: Image.asset('assets/images/report_right_icon.png',width: 33.r,height: 33.r,)), + /* Image.asset( + 'assets/images/report_right_icon.png', + width: 33.r, + height: 33.r, + )*/ + ),) + ], + )) ]), ); } diff --git a/marking_app/lib/routes/RouterManager.dart b/marking_app/lib/routes/RouterManager.dart index 197370c..65b50ec 100644 --- a/marking_app/lib/routes/RouterManager.dart +++ b/marking_app/lib/routes/RouterManager.dart @@ -38,6 +38,7 @@ import 'package:marking_app/pages/marking/review.dart'; import 'package:marking_app/pages/mine/index.dart'; import 'package:marking_app/pages/mine/other_pages/index.dart'; import 'package:marking_app/pages/other/agreement_page.dart'; +import 'package:marking_app/pages/report_detail/completed_report.dart'; import 'package:marking_app/pages/report_detail/index.dart'; import 'package:marking_app/pages/report_detail/report_history.dart'; import 'package:marking_app/pages/reports/report_class_teacher.dart'; @@ -88,6 +89,7 @@ class RouterManager { static const String jobKnowledgePointsDetailPath = '/homework_correction/job_knowledge_points_detail'; static const String answerTrajectoryPath = '/homework_correction/answer_trajectory'; static const String answerTrajectoryJobDetailPath = '/homework_correction/answer_trajectory_job_detail'; + static const String completedReportPath = '/report_detail/completed_report'; // TheMine static final FluroRouter router = FluroRouter(); @@ -375,9 +377,10 @@ class RouterManager { // 学生历史报告 static final _reportHistoryPathHandler = Handler( handlerFunc: (BuildContext? context, Map> params) { - /* String studentName = params['studentName']![0]; - int studentId = int.parse(params['studentId']![0]);*/ - return ReportHistory(); + int classId = int.parse(params['classId']![0]); + int userId = int.parse(params['userId']![0]); + String studentName = params['studentName']![0]; + return ReportHistory(classId:classId,userId:userId,studentName:studentName); }, ); @@ -415,6 +418,16 @@ class RouterManager { return AnswerTrajectoryJobDetail(jobId:jobId,jobName:jobName,genderName:genderName); }, ); + + //已完成考试报告 + static final _completedReportPathHandler = Handler( + handlerFunc: (BuildContext? context, Map> params) { + int examId = int.parse(params['examId']![0]); + String studentNo = params['studentNo']![0]; + return CompletedReport(examId:examId,studentNo:studentNo); + }, + ); + // 开始阅卷页面 // static final _doMarkingPapers = Handler(handlerFunc: (BuildContext? context, Map> params) => MarkingPapers()); @@ -466,6 +479,7 @@ class RouterManager { router.define(jobKnowledgePointsDetailPath, handler: _jobKnowledgePointsDetailPathHandler, transitionType: TransitionType.material); router.define(answerTrajectoryPath, handler: _answerTrajectoryPathHandler, transitionType: TransitionType.material); router.define(answerTrajectoryJobDetailPath, handler: _answerTrajectoryJobDetailPathHandler, transitionType: TransitionType.material); + router.define(completedReportPath, handler: _completedReportPathHandler, transitionType: TransitionType.material); // getTransition() diff --git a/marking_app/lib/utils/request/rest_client_report.dart b/marking_app/lib/utils/request/rest_client_report.dart index bd07c13..8bc43c5 100644 --- a/marking_app/lib/utils/request/rest_client_report.dart +++ b/marking_app/lib/utils/request/rest_client_report.dart @@ -30,6 +30,8 @@ import 'package:marking_app/common/model/report/report_for_subject_teacher_param import 'package:marking_app/common/model/report/report_home_model.dart'; import 'package:marking_app/common/model/report/report_marking_detail.dart'; import 'package:marking_app/common/model/report/report_marking_detail_params.dart'; +import 'package:marking_app/common/model/report/report_student_history_record.dart'; +import 'package:marking_app/common/model/report/report_student_info.dart'; import 'package:marking_app/common/model/report/small_question.dart'; import 'package:marking_app/common/model/user/user_info_report.dart'; import 'package:retrofit/retrofit.dart' as the_retrofit; @@ -143,4 +145,20 @@ abstract class RestClientReport { Future> getQuestion( @the_retrofit.Body() ReportCardParams params ); + + // 报告 => 考试学生信息 + @the_retrofit.GET("/api/exam/report/examstudentinfo") + Future> getStudentInfo( + @the_retrofit.Query("examId") int examId, + @the_retrofit.Query("studentNo") String studentNo, + ); + + // 报告 => 学生考试历史记录 + @the_retrofit.GET("/api/exam/report/studentexamrecords") + Future>> getStudentHistroyRecords( + @the_retrofit.Query("userId") int userId, + @the_retrofit.Query("classId") int classId, + @the_retrofit.Query("startTime") String startTime, + @the_retrofit.Query("endTime") String endTime, + ); }