Compare commits
No commits in common. "76b15038c69079efd2c94d4846fc858a07602e7c" and "955d3254afca3284e9e47dd5fb8077cdbfddbce5" have entirely different histories.
76b15038c6
...
955d3254af
Binary file not shown.
|
Before Width: | Height: | Size: 537 B |
Binary file not shown.
|
Before Width: | Height: | Size: 371 B |
Binary file not shown.
|
Before Width: | Height: | Size: 983 B |
Binary file not shown.
|
Before Width: | Height: | Size: 997 B |
|
|
@ -48,9 +48,6 @@ class JobReportModel extends Object {
|
||||||
@JsonKey(name: 'studentAnswerInfos')
|
@JsonKey(name: 'studentAnswerInfos')
|
||||||
List<StudentAnswerInfos> studentAnswerInfos;
|
List<StudentAnswerInfos> studentAnswerInfos;
|
||||||
|
|
||||||
@JsonKey(name: 'overallInfos')
|
|
||||||
Map<String,overallInfo> overallInfos;
|
|
||||||
|
|
||||||
@JsonKey(name: 'overallTitles')
|
@JsonKey(name: 'overallTitles')
|
||||||
List<OverallTitles> overallTitles;
|
List<OverallTitles> overallTitles;
|
||||||
|
|
||||||
|
|
@ -69,14 +66,6 @@ class JobReportModel extends Object {
|
||||||
@JsonKey(name: 'validStudentNames')
|
@JsonKey(name: 'validStudentNames')
|
||||||
List<String> validStudentNames;
|
List<String> validStudentNames;
|
||||||
|
|
||||||
@JsonKey(name: 'noAnswerStudents')
|
|
||||||
List<AnswerOkStudents>? noAnswerStudents;
|
|
||||||
|
|
||||||
@JsonKey(name: 'allCorrectStudents')
|
|
||||||
List<AnswerOkStudents>? allCorrectStudents;
|
|
||||||
|
|
||||||
@JsonKey(name: 'validStudents')
|
|
||||||
List<AnswerOkStudents>? validStudents;
|
|
||||||
|
|
||||||
// 前端自定义 -- 全对学生
|
// 前端自定义 -- 全对学生
|
||||||
@JsonKey(name: 'allpairsStudents')
|
@JsonKey(name: 'allpairsStudents')
|
||||||
|
|
@ -109,16 +98,12 @@ class JobReportModel extends Object {
|
||||||
this.knowledgeInfos,
|
this.knowledgeInfos,
|
||||||
this.questionAnswerInfos,
|
this.questionAnswerInfos,
|
||||||
this.studentAnswerInfos,
|
this.studentAnswerInfos,
|
||||||
this.overallInfos,
|
|
||||||
this.overallTitles,
|
this.overallTitles,
|
||||||
this.kgReport,
|
this.kgReport,
|
||||||
this.zgReport,
|
this.zgReport,
|
||||||
this.noAnswerStudentNames,
|
this.noAnswerStudentNames,
|
||||||
this.allCorrectStudentNames,
|
this.allCorrectStudentNames,
|
||||||
this.validStudentNames,
|
this.validStudentNames,
|
||||||
this.noAnswerStudents,
|
|
||||||
this.allCorrectStudents,
|
|
||||||
this.validStudents,
|
|
||||||
[
|
[
|
||||||
this.allpairsStudents,
|
this.allpairsStudents,
|
||||||
this.passStudents,
|
this.passStudents,
|
||||||
|
|
@ -399,20 +384,7 @@ class Details extends Object {
|
||||||
@JsonKey(name: 'answerOkStudentNames')
|
@JsonKey(name: 'answerOkStudentNames')
|
||||||
List<String> answerOkStudentNames;
|
List<String> answerOkStudentNames;
|
||||||
|
|
||||||
@JsonKey(name: 'noAnswerStudents')
|
Details(this.questionNo,this.questionId,this.partName,this.questionType,this.validRate,
|
||||||
List<AnswerOkStudents>? noAnswerStudents;
|
|
||||||
|
|
||||||
@JsonKey(name: 'answerOkStudents')
|
|
||||||
List<AnswerOkStudents>? answerOkStudents;
|
|
||||||
|
|
||||||
@JsonKey(name: 'answerNgStudents')
|
|
||||||
List<AnswerOkStudents>? answerNgStudents;
|
|
||||||
|
|
||||||
@JsonKey(name: 'priorityStudents')
|
|
||||||
List<AnswerOkStudents>? priorityStudents;
|
|
||||||
|
|
||||||
Details(this.questionNo,this.questionId,this.partName,this.questionType,this.validRate, this.noAnswerStudents,
|
|
||||||
this.answerOkStudents,this.answerNgStudents,this.priorityStudents,
|
|
||||||
this.validCount,this.correctRate,this.questionAnswer,this.questionPicture,this.priorityGeneral,
|
this.validCount,this.correctRate,this.questionAnswer,this.questionPicture,this.priorityGeneral,
|
||||||
this.priorityStudentNames,this.answerNgStudentNames,this.noAnswerStudentNames,this.answerOkStudentNames);
|
this.priorityStudentNames,this.answerNgStudentNames,this.noAnswerStudentNames,this.answerOkStudentNames);
|
||||||
|
|
||||||
|
|
@ -420,39 +392,4 @@ class Details extends Object {
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => _$DetailsToJson(this);
|
Map<String, dynamic> toJson() => _$DetailsToJson(this);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@JsonSerializable()
|
|
||||||
class overallInfo extends Object {
|
|
||||||
|
|
||||||
@JsonKey(name: 'count')
|
|
||||||
int count;
|
|
||||||
|
|
||||||
@JsonKey(name: 'students')
|
|
||||||
List<AnswerOkStudents> students;
|
|
||||||
|
|
||||||
overallInfo(this.count,this.students,);
|
|
||||||
|
|
||||||
factory overallInfo.fromJson(Map<String, dynamic> srcJson) => _$overallInfoFromJson(srcJson);
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => _$overallInfoToJson(this);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonSerializable()
|
|
||||||
class AnswerOkStudents extends Object {
|
|
||||||
|
|
||||||
@JsonKey(name: 'id')
|
|
||||||
int id;
|
|
||||||
|
|
||||||
@JsonKey(name: 'name')
|
|
||||||
String name;
|
|
||||||
|
|
||||||
AnswerOkStudents(this.id,this.name,);
|
|
||||||
|
|
||||||
factory AnswerOkStudents.fromJson(Map<String, dynamic> srcJson) => _$AnswerOkStudentsFromJson(srcJson);
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => _$AnswerOkStudentsToJson(this);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -13,7 +13,6 @@ import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart';
|
||||||
import 'package:marking_app/utils/index.dart';
|
import 'package:marking_app/utils/index.dart';
|
||||||
import 'package:marking_app/utils/my_text.dart';
|
import 'package:marking_app/utils/my_text.dart';
|
||||||
import 'package:marking_app/utils/request/rest_client.dart';
|
import 'package:marking_app/utils/request/rest_client.dart';
|
||||||
import 'package:marking_app/utils/right_home_icon.dart';
|
|
||||||
import 'package:percent_indicator/percent_indicator.dart';
|
import 'package:percent_indicator/percent_indicator.dart';
|
||||||
import 'package:syncfusion_flutter_datepicker/datepicker.dart';
|
import 'package:syncfusion_flutter_datepicker/datepicker.dart';
|
||||||
|
|
||||||
|
|
@ -111,14 +110,6 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
icon: Icon(Icons.arrow_back_ios, color: Colors.black),
|
icon: Icon(Icons.arrow_back_ios, color: Colors.black),
|
||||||
onPressed: () => Navigator.of(context).pop(),
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
),
|
),
|
||||||
actions: [
|
|
||||||
InkWell(
|
|
||||||
onTap: (){
|
|
||||||
CommonUtils.JumpPage('job', 2);
|
|
||||||
},
|
|
||||||
child: homeIcon(),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,10 @@ import 'package:marking_app/common/model/job/job_report_knowledge_model.dart';
|
||||||
import 'package:marking_app/common/model/job/job_report_model.dart';
|
import 'package:marking_app/common/model/job/job_report_model.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/widget/report_table.dart';
|
import 'package:marking_app/pages/homework_correction/widget/report_table.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/widget/top_count.dart';
|
import 'package:marking_app/pages/homework_correction/widget/top_count.dart';
|
||||||
import 'package:marking_app/pages/mainPage.dart';
|
|
||||||
import 'package:marking_app/routes/RouterManager.dart';
|
import 'package:marking_app/routes/RouterManager.dart';
|
||||||
import 'package:marking_app/utils/index.dart';
|
import 'package:marking_app/utils/index.dart';
|
||||||
import 'package:marking_app/utils/my_text.dart';
|
import 'package:marking_app/utils/my_text.dart';
|
||||||
import 'package:marking_app/utils/request/rest_client.dart';
|
import 'package:marking_app/utils/request/rest_client.dart';
|
||||||
import 'package:marking_app/utils/right_home_icon.dart';
|
|
||||||
import 'package:percent_indicator/linear_percent_indicator.dart';
|
import 'package:percent_indicator/linear_percent_indicator.dart';
|
||||||
import 'package:photo_view/photo_view.dart';
|
import 'package:photo_view/photo_view.dart';
|
||||||
|
|
||||||
|
|
@ -254,14 +252,6 @@ class _JobReportState extends State<JobReport> with CommonMixin {
|
||||||
icon: Icon(Icons.arrow_back_ios, color: Colors.black),
|
icon: Icon(Icons.arrow_back_ios, color: Colors.black),
|
||||||
onPressed: () => Navigator.of(context).pop(),
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
),
|
),
|
||||||
actions: [
|
|
||||||
InkWell(
|
|
||||||
onTap: (){
|
|
||||||
CommonUtils.JumpPage('job', 2);
|
|
||||||
},
|
|
||||||
child: homeIcon(),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
/*actions: [
|
/*actions: [
|
||||||
// 下拉框
|
// 下拉框
|
||||||
$DropdownSelection(involveClasses, classData, call: (JobReportJoinClass _classData) {
|
$DropdownSelection(involveClasses, classData, call: (JobReportJoinClass _classData) {
|
||||||
|
|
@ -306,7 +296,7 @@ class _JobReportState extends State<JobReport> with CommonMixin {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
//完成率、正确率
|
//完成率、正确率
|
||||||
TopCount(data,classData == null?'':classData!.className,widget.id),
|
TopCount(data,classData == null?'':classData!.className),
|
||||||
/* InkWell(
|
/* InkWell(
|
||||||
onTap: (){
|
onTap: (){
|
||||||
RouterManager.router.navigateTo(
|
RouterManager.router.navigateTo(
|
||||||
|
|
@ -355,7 +345,6 @@ class _JobReportState extends State<JobReport> with CommonMixin {
|
||||||
bodyList: data.kgReport.details,
|
bodyList: data.kgReport.details,
|
||||||
fixedCols: 1,
|
fixedCols: 1,
|
||||||
fixedRows: 1,
|
fixedRows: 1,
|
||||||
jobId: widget.id,
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
@ -399,7 +388,6 @@ class _JobReportState extends State<JobReport> with CommonMixin {
|
||||||
fixedCols: 1,
|
fixedCols: 1,
|
||||||
fixedRows: 1,
|
fixedRows: 1,
|
||||||
isKG: true,
|
isKG: true,
|
||||||
jobId: widget.id,
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
@ -412,13 +400,13 @@ class _JobReportState extends State<JobReport> with CommonMixin {
|
||||||
margin: EdgeInsets.symmetric(horizontal: 10.r),
|
margin: EdgeInsets.symmetric(horizontal: 10.r),
|
||||||
child: $MasterKnowledgePoint(data.knowledgeInfos, detailKnowledgeCall)),
|
child: $MasterKnowledgePoint(data.knowledgeInfos, detailKnowledgeCall)),
|
||||||
// 掌握知识点的情况
|
// 掌握知识点的情况
|
||||||
/* Container(
|
Container(
|
||||||
margin: EdgeInsets.symmetric(horizontal: 10.r),
|
margin: EdgeInsets.symmetric(horizontal: 10.r),
|
||||||
child: $OverallPerformance(data.studentCount, data.overallTitles)),
|
child: $OverallPerformance(data.studentCount, data.overallTitles)),
|
||||||
// 单位时间答题情况
|
// 单位时间答题情况
|
||||||
Container(
|
Container(
|
||||||
margin: EdgeInsets.symmetric(horizontal: 10.r),
|
margin: EdgeInsets.symmetric(horizontal: 10.r),
|
||||||
child: $UnitTimeAnsweringSituation(widget.id, data.questionAnswerInfos)),*/
|
child: $UnitTimeAnsweringSituation(widget.id, data.questionAnswerInfos)),
|
||||||
// 人员数据概况
|
// 人员数据概况
|
||||||
Container(
|
Container(
|
||||||
margin: EdgeInsets.symmetric(horizontal: 10.r), child: $PersonnelDataOverview(data.studentAnswerInfos)),
|
margin: EdgeInsets.symmetric(horizontal: 10.r), child: $PersonnelDataOverview(data.studentAnswerInfos)),
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import 'package:marking_app/common/model/job/job_data_report.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/widget/student_kg_table.dart';
|
import 'package:marking_app/pages/homework_correction/widget/student_kg_table.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/widget/student_zg_table.dart';
|
import 'package:marking_app/pages/homework_correction/widget/student_zg_table.dart';
|
||||||
import 'package:marking_app/routes/RouterManager.dart';
|
import 'package:marking_app/routes/RouterManager.dart';
|
||||||
import 'package:marking_app/utils/common_utils.dart';
|
|
||||||
import 'package:marking_app/utils/request/rest_client.dart';
|
import 'package:marking_app/utils/request/rest_client.dart';
|
||||||
import 'package:marking_app/utils/toast_utils.dart';
|
import 'package:marking_app/utils/toast_utils.dart';
|
||||||
|
|
||||||
|
|
@ -72,16 +71,8 @@ class _QuickCheckPersonalState extends State<QuickCheckPersonal>
|
||||||
onPressed: () => Navigator.of(context).pop(),
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
),
|
),
|
||||||
actions: [
|
actions: [
|
||||||
InkWell(
|
Title(
|
||||||
onTap: (){
|
|
||||||
CommonUtils.JumpPage('job', 2);
|
|
||||||
},
|
|
||||||
child: Padding(
|
|
||||||
padding: EdgeInsets.only(top:5.r,right: 8.r),
|
|
||||||
child: Image.asset('assets/images/home_icon_black.png',width: 18.r,height: 18.r,),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
/* Title(
|
|
||||||
color: Color(0xFF6888FD),
|
color: Color(0xFF6888FD),
|
||||||
child: Container(
|
child: Container(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
|
|
@ -95,7 +86,7 @@ class _QuickCheckPersonalState extends State<QuickCheckPersonal>
|
||||||
),
|
),
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
),
|
),
|
||||||
),*/
|
),
|
||||||
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -103,41 +94,6 @@ class _QuickCheckPersonalState extends State<QuickCheckPersonal>
|
||||||
body: SingleChildScrollView(
|
body: SingleChildScrollView(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.only(top: 14.r,left: 14.r),
|
|
||||||
child: Row(
|
|
||||||
children: [
|
|
||||||
InkWell(
|
|
||||||
onTap: (){
|
|
||||||
RouterManager.router.navigateTo(context, '${RouterManager.jobPersonalDetailPath}?studentId=${widget.studentId}&studentName=${Uri.encodeComponent(studentInfo!.studentName!)}');
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
width: 93.r,
|
|
||||||
height: 28.r,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Color(0xFFEAF3FF),
|
|
||||||
borderRadius: BorderRadius.circular(4.r),
|
|
||||||
),
|
|
||||||
child: Center(
|
|
||||||
child: Text('历史查询',style: TextStyle(fontSize: 10.r,color: Color(0xFF2080F7)),),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(width: 10.r,),
|
|
||||||
Container(
|
|
||||||
width: 93.r,
|
|
||||||
height: 28.r,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Color(0xFFEDFFF7),
|
|
||||||
borderRadius: BorderRadius.circular(4.r),
|
|
||||||
),
|
|
||||||
child: Center(
|
|
||||||
child: Text('查看原稿',style: TextStyle(fontSize: 10.r,color: Color(0xFF4CC793)),),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
//客观题
|
//客观题
|
||||||
Container(
|
Container(
|
||||||
padding: EdgeInsets.symmetric(vertical: 14.r, horizontal: 10.r),
|
padding: EdgeInsets.symmetric(vertical: 14.r, horizontal: 10.r),
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import 'package:marking_app/pages/homework_correction/widget/report_table.dart';
|
||||||
import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart';
|
import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart';
|
||||||
import 'package:marking_app/utils/index.dart';
|
import 'package:marking_app/utils/index.dart';
|
||||||
import 'package:marking_app/utils/request/rest_client.dart';
|
import 'package:marking_app/utils/request/rest_client.dart';
|
||||||
import 'package:marking_app/utils/right_home_icon.dart';
|
|
||||||
import 'package:percent_indicator/linear_percent_indicator.dart';
|
import 'package:percent_indicator/linear_percent_indicator.dart';
|
||||||
|
|
||||||
class QuickDataCheckPage extends StatefulWidget {
|
class QuickDataCheckPage extends StatefulWidget {
|
||||||
|
|
@ -150,11 +149,8 @@ class _QuickDataCheckPageState extends State<QuickDataCheckPage>
|
||||||
style: TextStyle(fontSize: 14.sp, color: Colors.white),
|
style: TextStyle(fontSize: 14.sp, color: Colors.white),
|
||||||
)),
|
)),
|
||||||
)),
|
)),
|
||||||
InkWell(
|
SizedBox(
|
||||||
onTap: (){
|
width: 24.r,
|
||||||
CommonUtils.JumpPage('job', 2);
|
|
||||||
},
|
|
||||||
child: homeIcon(color: 'white'),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -408,7 +404,6 @@ class _QuickDataCheckPageState extends State<QuickDataCheckPage>
|
||||||
bodyList: jobData!.kgReport.details,
|
bodyList: jobData!.kgReport.details,
|
||||||
fixedCols: 1,
|
fixedCols: 1,
|
||||||
fixedRows: 1,
|
fixedRows: 1,
|
||||||
jobId: widget.jobId,
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
@ -452,7 +447,6 @@ class _QuickDataCheckPageState extends State<QuickDataCheckPage>
|
||||||
fixedCols: 1,
|
fixedCols: 1,
|
||||||
fixedRows: 1,
|
fixedRows: 1,
|
||||||
isKG: true,
|
isKG: true,
|
||||||
jobId: widget.jobId,
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@ import 'package:data_table_2/data_table_2.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
|
import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
|
||||||
import 'package:marking_app/common/model/job/job_report_model.dart';
|
|
||||||
import 'package:marking_app/routes/RouterManager.dart';
|
|
||||||
import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart';
|
import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart';
|
||||||
import 'package:marking_app/utils/index.dart';
|
import 'package:marking_app/utils/index.dart';
|
||||||
import 'package:marking_app/utils/toast_utils.dart';
|
import 'package:marking_app/utils/toast_utils.dart';
|
||||||
|
|
@ -15,13 +13,11 @@ class ReportTable extends StatefulWidget {
|
||||||
final int? fixedRows;
|
final int? fixedRows;
|
||||||
final int? fixedCols;
|
final int? fixedCols;
|
||||||
final bool? isKG;
|
final bool? isKG;
|
||||||
final int jobId;
|
|
||||||
|
|
||||||
const ReportTable({
|
const ReportTable({
|
||||||
Key? key,
|
Key? key,
|
||||||
required this.headList,
|
required this.headList,
|
||||||
required this.bodyList,
|
required this.bodyList,
|
||||||
required this.jobId,
|
|
||||||
this.fixedCols = 0,
|
this.fixedCols = 0,
|
||||||
this.fixedRows = 0,
|
this.fixedRows = 0,
|
||||||
this.isKG = false,
|
this.isKG = false,
|
||||||
|
|
@ -37,11 +33,7 @@ class _ReportTableState extends State<ReportTable> {
|
||||||
bool _sortAscending = true;
|
bool _sortAscending = true;
|
||||||
|
|
||||||
void showPeopleListDialog(
|
void showPeopleListDialog(
|
||||||
{required BuildContext context,
|
{required BuildContext context, required String title, required String questionNo,required List arr,List? dcList}) {
|
||||||
required String title,
|
|
||||||
required String questionNo,
|
|
||||||
required List arr,
|
|
||||||
List? dcList}) {
|
|
||||||
print(dcList);
|
print(dcList);
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
|
|
@ -88,143 +80,62 @@ class _ReportTableState extends State<ReportTable> {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(height: 15.r,),
|
||||||
height: 15.r,
|
dcList != null?Row(
|
||||||
),
|
children: [
|
||||||
dcList != null
|
Expanded(
|
||||||
? Row(
|
flex: 1,
|
||||||
children: [
|
child: Center(child: Text('未作答人',style: TextStyle(fontSize: 12.sp,color: Color(0xFF6A6A6A)),))),
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 1,
|
flex: 1,
|
||||||
child: Center(
|
child: Center(child: Text('答对人数',style: TextStyle(fontSize: 12.sp,color: Color(0xFF6A6A6A)),))),
|
||||||
child: Text(
|
Expanded(
|
||||||
'未作答人',
|
flex: 1,
|
||||||
style: TextStyle(
|
child: Center(child: Text('答错人',style: TextStyle(fontSize: 12.sp,color: Color(0xFF6A6A6A)),))),
|
||||||
fontSize: 12.sp,
|
],
|
||||||
color: Color(0xFF6A6A6A)),
|
):Padding(padding: EdgeInsets.only(left: 15.r),child: Text(title,style: TextStyle(fontSize: 12.sp,color: Color(0xFF6A6A6A)),),),
|
||||||
))),
|
SizedBox(height: 5.r,),
|
||||||
Expanded(
|
if(dcList != null)
|
||||||
flex: 1,
|
|
||||||
child: Center(
|
|
||||||
child: Text(
|
|
||||||
'答对人数',
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 12.sp,
|
|
||||||
color: Color(0xFF6A6A6A)),
|
|
||||||
))),
|
|
||||||
Expanded(
|
|
||||||
flex: 1,
|
|
||||||
child: Center(
|
|
||||||
child: Text(
|
|
||||||
'答错人',
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 12.sp,
|
|
||||||
color: Color(0xFF6A6A6A)),
|
|
||||||
))),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
: Padding(
|
|
||||||
padding: EdgeInsets.only(left: 15.r),
|
|
||||||
child: Text(
|
|
||||||
title,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 12.sp, color: Color(0xFF6A6A6A)),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 5.r,
|
|
||||||
),
|
|
||||||
if (dcList != null)
|
|
||||||
Expanded(
|
Expanded(
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context,index){
|
||||||
var item = arr[index];
|
var item = arr[index];
|
||||||
return Container(
|
return Container(
|
||||||
padding: EdgeInsets.symmetric(vertical: 5.r),
|
padding: EdgeInsets.symmetric(vertical: 5.r),
|
||||||
color:
|
color: index.isOdd?Colors.white:Color(0xFFF0F0F0),
|
||||||
index.isOdd ? Colors.white : Color(0xFFF0F0F0),
|
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 1,
|
flex:1,
|
||||||
child: InkWell(
|
child: Center(child: Text(item['noAnswerStudentNames'],style: TextStyle(fontSize: 12.sp,color: Color(0xFF323232)),))),
|
||||||
onTap: () {
|
|
||||||
goQuickCheckPersonalPath(
|
|
||||||
item['noAnswerStudents'].id);
|
|
||||||
},
|
|
||||||
child: Center(
|
|
||||||
child: Text(
|
|
||||||
item['noAnswerStudents'].name,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 12.sp,
|
|
||||||
color: Color(0xFF323232)),
|
|
||||||
)))),
|
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 1,
|
flex:1,
|
||||||
child: InkWell(
|
child: Center(child: Text(item['answerOkStudentNames'],style: TextStyle(fontSize: 12.sp,color: Color(0xFF323232)),))),
|
||||||
onTap: () {
|
|
||||||
goQuickCheckPersonalPath(
|
|
||||||
item['answerOkStudents'].id);
|
|
||||||
},
|
|
||||||
child: Center(
|
|
||||||
child: Text(
|
|
||||||
item['answerOkStudents'].name,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 12.sp,
|
|
||||||
color: Color(0xFF323232)),
|
|
||||||
)))),
|
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 1,
|
flex:1,
|
||||||
child: InkWell(
|
child: Center(child: Text(item['answerNgStudentNames'],style: TextStyle(fontSize: 12.sp,color: Color(0xFF323232)),))),
|
||||||
onTap: () {
|
|
||||||
goQuickCheckPersonalPath(
|
|
||||||
item['answerNgStudents'].id);
|
|
||||||
},
|
|
||||||
child: Center(
|
|
||||||
child: Text(
|
|
||||||
item['answerNgStudents'].name,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 12.sp,
|
|
||||||
color: Color(0xFF323232)),
|
|
||||||
)))),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},itemCount: arr.length,),
|
||||||
itemCount: arr.length,
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
else
|
else
|
||||||
arr.length > 0
|
arr.length>0?Expanded(
|
||||||
? Expanded(
|
child: ListView.builder(
|
||||||
child: ListView.builder(
|
shrinkWrap: true,
|
||||||
shrinkWrap: true,
|
itemBuilder: (context,index){
|
||||||
itemBuilder: (context, index) {
|
var item = arr[index];
|
||||||
AnswerOkStudents item = arr[index];
|
return Container(
|
||||||
return InkWell(
|
padding: EdgeInsets.symmetric(vertical: 5.r,horizontal: 15.r),
|
||||||
onTap: () {
|
color: index.isOdd?Colors.white:Color(0xFFF0F0F0),
|
||||||
goQuickCheckPersonalPath(item.id);
|
child: Text(item,style: TextStyle(fontSize: 12.sp,color: Color(0xFF323232)),),
|
||||||
},
|
);
|
||||||
child: Container(
|
},itemCount: arr.length,),
|
||||||
padding: EdgeInsets.symmetric(
|
):MyEmptyWidget()
|
||||||
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,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
: MyEmptyWidget()
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -232,71 +143,34 @@ class _ReportTableState extends State<ReportTable> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void goQuickCheckPersonalPath(id) {
|
void zdHandle( BuildContext context, String title, String questionNo,List noAnswerStudentNames,List answerNgStudentNames, List answerOkStudentNames){
|
||||||
if (id != -1) {
|
List list = [];
|
||||||
RouterManager.router.navigateTo(
|
|
||||||
context,
|
if(noAnswerStudentNames.length>answerNgStudentNames.length && noAnswerStudentNames.length>answerOkStudentNames.length){
|
||||||
RouterManager.quickCheckPersonalPath +
|
for(int i = 0;i<noAnswerStudentNames.length;i++){
|
||||||
'?jobId=${widget.jobId}&studentId=$id',
|
var obj = {'noAnswerStudentNames':noAnswerStudentNames[i],'answerNgStudentNames':answerNgStudentNames.length>i?answerNgStudentNames[i]:'-',
|
||||||
transition: getTransition(),
|
'answerOkStudentNames':answerOkStudentNames.length>i?answerOkStudentNames[i]:'-'};
|
||||||
);
|
list.add(obj);
|
||||||
}
|
}
|
||||||
|
}else if(answerNgStudentNames.length>noAnswerStudentNames.length && answerNgStudentNames.length>answerOkStudentNames.length){
|
||||||
|
for(int i = 0;i<answerNgStudentNames.length;i++){
|
||||||
|
var obj = {'noAnswerStudentNames':noAnswerStudentNames.length>i?noAnswerStudentNames[i]:'-','answerNgStudentNames':answerNgStudentNames[i],
|
||||||
|
'answerOkStudentNames':answerOkStudentNames.length>i?answerOkStudentNames[i]:'-'};
|
||||||
|
list.add(obj);
|
||||||
|
}
|
||||||
|
}else if(answerOkStudentNames.length>noAnswerStudentNames.length && answerOkStudentNames.length>answerNgStudentNames.length){
|
||||||
|
for(int i = 0;i<answerOkStudentNames.length;i++){
|
||||||
|
var obj = {'noAnswerStudentNames':noAnswerStudentNames.length>i?noAnswerStudentNames[i]:'-','answerNgStudentNames':answerNgStudentNames.length>i?answerNgStudentNames[i]:'-',
|
||||||
|
'answerOkStudentNames':answerOkStudentNames[i]};
|
||||||
|
list.add(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
showPeopleListDialog(context:context, title:title, questionNo:questionNo,arr:list,dcList:[]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void zdHandle(BuildContext context, String title, String questionNo,
|
void dcHandle( BuildContext context, String title, String questionNo,List arr){
|
||||||
List noAnswerStudents, List answerNgStudents, List answerOkStudents) {
|
showPeopleListDialog(context:context, title:title, questionNo:questionNo,arr: arr);
|
||||||
List list = [];
|
|
||||||
AnswerOkStudents student = AnswerOkStudents(-1, '-');
|
|
||||||
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] : student,
|
|
||||||
'answerOkStudents':
|
|
||||||
answerOkStudents.length > i ? answerOkStudents[i] : student
|
|
||||||
};
|
|
||||||
list.add(obj);
|
|
||||||
}
|
|
||||||
} 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] : student,
|
|
||||||
'answerNgStudents': answerNgStudents[i],
|
|
||||||
'answerOkStudents':
|
|
||||||
answerOkStudents.length > i ? answerOkStudents[i] : student
|
|
||||||
};
|
|
||||||
list.add(obj);
|
|
||||||
}
|
|
||||||
} 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] : student,
|
|
||||||
'answerNgStudents':
|
|
||||||
answerNgStudents.length > i ? answerNgStudents[i] : student,
|
|
||||||
'answerOkStudents': answerOkStudents[i]
|
|
||||||
};
|
|
||||||
list.add(obj);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DataRow _getRow(int index, [Color? color]) {
|
DataRow _getRow(int index, [Color? color]) {
|
||||||
|
|
@ -322,8 +196,8 @@ class _ReportTableState extends State<ReportTable> {
|
||||||
)),
|
)),
|
||||||
DataCell(InkWell(
|
DataCell(InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
zdHandle(context, '作答人数', item.questionNo, item.noAnswerStudents,
|
zdHandle(context, '作答人数', item.questionNo,item.noAnswerStudentNames,item.answerNgStudentNames,item.answerOkStudentNames);
|
||||||
item.answerNgStudents, item.answerOkStudents);
|
|
||||||
},
|
},
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
|
|
@ -387,10 +261,9 @@ class _ReportTableState extends State<ReportTable> {
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
DataCell(InkWell(
|
DataCell(InkWell(
|
||||||
onTap: () {
|
onTap: (){
|
||||||
List<String> parts = item.priorityGeneral.split('人');
|
List<String> parts = item.priorityGeneral.split('人');
|
||||||
dcHandle(context, '${parts[1]}人', item.questionNo,
|
dcHandle(context, '${parts[1]}人', item.questionNo,item.priorityStudentNames);
|
||||||
item.priorityStudents);
|
|
||||||
},
|
},
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
|
|
@ -449,9 +322,7 @@ class _ReportTableState extends State<ReportTable> {
|
||||||
fixedCornerColor: Colors.grey[400],
|
fixedCornerColor: Colors.grey[400],
|
||||||
minWidth: widget.headList.length > 6
|
minWidth: widget.headList.length > 6
|
||||||
? 80.r * widget.headList.length
|
? 80.r * widget.headList.length
|
||||||
: isPadFlag
|
: isPadFlag?MediaQuery.of(context).size.width:85.r * widget.headList.length,
|
||||||
? MediaQuery.of(context).size.width
|
|
||||||
: 85.r * widget.headList.length,
|
|
||||||
fixedTopRows: widget.fixedRows!,
|
fixedTopRows: widget.fixedRows!,
|
||||||
fixedLeftColumns: widget.fixedCols!,
|
fixedLeftColumns: widget.fixedCols!,
|
||||||
sortColumnIndex: _sortColumnIndex,
|
sortColumnIndex: _sortColumnIndex,
|
||||||
|
|
@ -469,10 +340,8 @@ class _ReportTableState extends State<ReportTable> {
|
||||||
? 40.r
|
? 40.r
|
||||||
: widget.headList.length > 6
|
: widget.headList.length > 6
|
||||||
? 80.r
|
? 80.r
|
||||||
: isPadFlag
|
: isPadFlag?(MediaQuery.of(context).size.width - 8.r) /
|
||||||
? (MediaQuery.of(context).size.width - 8.r) /
|
widget.headList.length:85.r,
|
||||||
widget.headList.length
|
|
||||||
: 85.r,
|
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
rows: List<DataRow>.generate(widget.bodyList.length,
|
rows: List<DataRow>.generate(widget.bodyList.length,
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,16 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:functional_widget_annotation/functional_widget_annotation.dart';
|
|
||||||
import 'package:marking_app/common/model/job/job_report_model.dart';
|
import 'package:marking_app/common/model/job/job_report_model.dart';
|
||||||
import 'package:marking_app/routes/RouterManager.dart';
|
|
||||||
import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart';
|
import 'package:marking_app/utils/easy_refresh/MyEmptyWidget.dart';
|
||||||
import 'package:marking_app/utils/index.dart';
|
import 'package:marking_app/utils/index.dart';
|
||||||
|
|
||||||
class TopCount extends StatelessWidget {
|
class TopCount extends StatelessWidget {
|
||||||
final JobReportModel data;
|
final JobReportModel data;
|
||||||
final String className;
|
final String className;
|
||||||
final int jobId;
|
const TopCount(this.data,this.className,{Key? key}) : super(key: key);
|
||||||
|
|
||||||
const TopCount(this.data, this.className, this.jobId,{Key? key}) : super(key: key);
|
|
||||||
|
|
||||||
void showStudentListDialog(
|
void showStudentListDialog(
|
||||||
{required BuildContext context,
|
{required BuildContext context, required String title,required List arr}) {
|
||||||
required String title,
|
|
||||||
required List arr}) {
|
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
|
|
@ -43,42 +37,20 @@ class TopCount extends StatelessWidget {
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: 5.r,
|
height: 5.r,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(height: 15.r,),
|
||||||
height: 15.r,
|
arr.length>0?Expanded(
|
||||||
),
|
child: ListView.builder(
|
||||||
arr.length > 0
|
shrinkWrap: true,
|
||||||
? Expanded(
|
itemBuilder: (context,index){
|
||||||
child: ListView.builder(
|
var item = arr[index];
|
||||||
shrinkWrap: true,
|
return Container(
|
||||||
itemBuilder: (context, index) {
|
padding: EdgeInsets.symmetric(vertical: 5.r,horizontal: 15.r),
|
||||||
AnswerOkStudents item = arr[index];
|
color: index.isOdd?Colors.white:Color(0xFFF0F0F0),
|
||||||
return InkWell(
|
child: Text(item,style: TextStyle(fontSize: 12.sp,color: Color(0xFF323232)),),
|
||||||
onTap: (){
|
);
|
||||||
RouterManager.router.navigateTo(
|
},itemCount: arr.length,),
|
||||||
context,
|
):MyEmptyWidget()
|
||||||
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,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
: MyEmptyWidget()
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -86,12 +58,11 @@ class TopCount extends StatelessWidget {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
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(
|
return Container(
|
||||||
padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 10.r),
|
padding: EdgeInsets.symmetric(vertical: 20.r),
|
||||||
margin: EdgeInsets.symmetric(vertical: 10.r, horizontal: 10.r),
|
margin: EdgeInsets.symmetric(vertical: 10.r, horizontal: 10.r),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
|
|
@ -100,113 +71,16 @@ class TopCount extends StatelessWidget {
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
showStudentListDialog(
|
|
||||||
context: context,
|
|
||||||
title: '未提交作业学生',
|
|
||||||
arr: data.noAnswerStudents!);
|
|
||||||
},
|
|
||||||
child:leftContainer(context,count: data.noAnswerCount,name: '未提交',nameColor: Color(0xFFD92F2F),bgColor: Color(0xFFEEEEEE)),
|
|
||||||
),
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
showStudentListDialog(
|
|
||||||
context: context,
|
|
||||||
title: '已提交作业学生',
|
|
||||||
arr: data.validStudents!);
|
|
||||||
},
|
|
||||||
child: leftContainer(context,count: data.validCount,name: '已提交',nameColor: Color(0xFF4CC793),bgColor: Color(0xFFF5F5F5)),
|
|
||||||
),
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
showStudentListDialog(
|
|
||||||
context: context,
|
|
||||||
title: '全对作业学生',
|
|
||||||
arr: 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: '优等作业学生',
|
|
||||||
arr: data.overallInfos['优']!.students);
|
|
||||||
},
|
|
||||||
child: rightContainer(count: data.overallInfos['优']!.count,bgColor: Color(0xFF56FFB8),nameColor: Color(0xFF009254),name: '优',),
|
|
||||||
)
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: InkWell(
|
|
||||||
onTap: (){
|
|
||||||
showStudentListDialog(
|
|
||||||
context: context,
|
|
||||||
title: '中等作业学生',
|
|
||||||
arr: data.overallInfos['中']!.students);
|
|
||||||
},
|
|
||||||
child: rightContainer(count: data.overallInfos['中']!.count,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: '良等作业学生',
|
|
||||||
arr: data.overallInfos['良']!.students);
|
|
||||||
},
|
|
||||||
child: rightContainer(count: data.overallInfos['良']!.count,bgColor: Color(0xFFFFC38C),nameColor: Color(0xFFD36500),name: '良' ),
|
|
||||||
)
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: InkWell(
|
|
||||||
onTap: (){
|
|
||||||
showStudentListDialog(
|
|
||||||
context: context,
|
|
||||||
title: '差等作业学生',
|
|
||||||
arr: data.overallInfos['差']!.students);
|
|
||||||
},
|
|
||||||
child: rightContainer(count: data.overallInfos['差']!.count,bgColor: Color(0xFFFF9D94),nameColor: Color(0xFFD12616),name: '差' ),
|
|
||||||
)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
/* Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||||
children: [
|
children: [
|
||||||
InkWell(
|
InkWell(
|
||||||
onTap: () {
|
onTap: (){
|
||||||
showStudentListDialog(
|
showStudentListDialog(context:context,title: '未提交作业学生',arr: data.noAnswerStudentNames);
|
||||||
context: context,
|
|
||||||
title: '未提交作业学生',
|
|
||||||
arr: data.noAnswerStudentNames);
|
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 81.r,
|
width: 81.r,
|
||||||
padding:
|
padding: EdgeInsets.symmetric(
|
||||||
EdgeInsets.symmetric(vertical: 10.r, horizontal: 6.r),
|
vertical: 10.r, horizontal: 6.r),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
width: 1.r,
|
width: 1.r,
|
||||||
|
|
@ -217,9 +91,7 @@ class TopCount extends StatelessWidget {
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
SizedBox(
|
SizedBox(height: 5.r,),
|
||||||
height: 5.r,
|
|
||||||
),
|
|
||||||
Row(
|
Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
|
|
@ -252,16 +124,13 @@ class TopCount extends StatelessWidget {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
InkWell(
|
InkWell(
|
||||||
onTap: () {
|
onTap: (){
|
||||||
showStudentListDialog(
|
showStudentListDialog(context:context,title: '已提交作业学生',arr: data.validStudentNames);
|
||||||
context: context,
|
|
||||||
title: '已提交作业学生',
|
|
||||||
arr: data.validStudentNames);
|
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 81.r,
|
width: 81.r,
|
||||||
padding:
|
padding: EdgeInsets.symmetric(
|
||||||
EdgeInsets.symmetric(vertical: 10.r, horizontal: 6.r),
|
vertical: 10.r, horizontal: 6.r),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
width: 1.r,
|
width: 1.r,
|
||||||
|
|
@ -272,9 +141,7 @@ class TopCount extends StatelessWidget {
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
SizedBox(
|
SizedBox(height: 5.r,),
|
||||||
height: 5.r,
|
|
||||||
),
|
|
||||||
Row(
|
Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
|
|
@ -307,16 +174,13 @@ class TopCount extends StatelessWidget {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
InkWell(
|
InkWell(
|
||||||
onTap: () {
|
onTap: (){
|
||||||
showStudentListDialog(
|
showStudentListDialog(context:context,title: '全对作业学生',arr: data.allCorrectStudentNames);
|
||||||
context: context,
|
|
||||||
title: '全对作业学生',
|
|
||||||
arr: data.allCorrectStudentNames);
|
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 81.r,
|
width: 81.r,
|
||||||
padding:
|
padding: EdgeInsets.symmetric(
|
||||||
EdgeInsets.symmetric(vertical: 10.r, horizontal: 6.r),
|
vertical: 10.r, horizontal: 6.r),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
width: 1.r,
|
width: 1.r,
|
||||||
|
|
@ -327,9 +191,7 @@ class TopCount extends StatelessWidget {
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
SizedBox(
|
SizedBox(height: 5.r,),
|
||||||
height: 5.r,
|
|
||||||
),
|
|
||||||
Row(
|
Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
|
|
@ -365,186 +227,91 @@ class TopCount extends StatelessWidget {
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: 15.r,
|
height: 15.r,
|
||||||
),*/
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 15.r),
|
padding: EdgeInsets.symmetric(horizontal: 15.r),
|
||||||
child: GridView.builder(
|
child: GridView.builder(
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
||||||
childAspectRatio: 150 / 46,
|
childAspectRatio: 150 / 46,
|
||||||
crossAxisSpacing: 2.r, //水平子 Widget 之间间距
|
crossAxisSpacing: 2.r, //水平子 Widget 之间间距
|
||||||
mainAxisSpacing: 2.r, //垂直子 Widget 之间间距
|
mainAxisSpacing: 2.r, //垂直子 Widget 之间间距
|
||||||
crossAxisCount: 2, //一行的 Widget 数量
|
crossAxisCount: 2, //一行的 Widget 数量
|
||||||
),
|
|
||||||
itemCount: data.overallTitles.length,
|
|
||||||
itemBuilder: (BuildContext context, index) {
|
|
||||||
var item = data.overallTitles[index];
|
|
||||||
Color bgColor = Color(0xFF4CC793);
|
|
||||||
if (item.title == '优') {
|
|
||||||
bgColor = Color(0xFF4CC793);
|
|
||||||
} else if (item.title == '良') {
|
|
||||||
bgColor = Color(0xFFF8700D);
|
|
||||||
} else if (item.title == '中') {
|
|
||||||
bgColor = Color(0xFF4CC7B8);
|
|
||||||
} else if (item.title == '差') {
|
|
||||||
bgColor = Color(0xFFFF6F6F);
|
|
||||||
}
|
|
||||||
return InkWell(
|
|
||||||
onTap: () {
|
|
||||||
showStudentListDialog(
|
|
||||||
context: context,
|
|
||||||
title: item.title + '等作业学生',
|
|
||||||
arr: item.studentNames);
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
padding: EdgeInsets.symmetric(vertical: 10.r),
|
|
||||||
width: (MediaQuery.of(context).size.width - 55.r) / 2,
|
|
||||||
color: Color(0xFFF5F5F5),
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
SizedBox(
|
|
||||||
width: (MediaQuery.of(context).size.width - 55.r) / 4,
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
|
||||||
children: [
|
|
||||||
Container(
|
|
||||||
width: 28.r,
|
|
||||||
height: 28.r,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Colors.white,
|
|
||||||
border: Border.all(
|
|
||||||
color: bgColor,
|
|
||||||
width: 1.r,
|
|
||||||
style: BorderStyle.solid),
|
|
||||||
borderRadius: BorderRadius.circular(14.r)),
|
|
||||||
child: Center(
|
|
||||||
child: Text(
|
|
||||||
item.title,
|
|
||||||
style:
|
|
||||||
TextStyle(color: bgColor, fontSize: 12.r),
|
|
||||||
)),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
width: 10.r,
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
item.count.toString(),
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 20.sp, color: Color(0xFF595959)),
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
'人',
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 14.sp, color: Color(0xFF595959)),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
itemCount: data.overallTitles.length,
|
||||||
},
|
itemBuilder: (BuildContext context, index){
|
||||||
),
|
var item = data.overallTitles[index];
|
||||||
|
Color bgColor = Color(0xFF4CC793);
|
||||||
|
if(item.title == '优'){
|
||||||
|
bgColor = Color(0xFF4CC793);
|
||||||
|
}else if(item.title == '良'){
|
||||||
|
bgColor = Color(0xFFF8700D);
|
||||||
|
}else if(item.title == '中'){
|
||||||
|
bgColor = Color(0xFF4CC7B8);
|
||||||
|
}else if(item.title == '差'){
|
||||||
|
bgColor = Color(0xFFFF6F6F);
|
||||||
|
}
|
||||||
|
return InkWell(
|
||||||
|
onTap: (){
|
||||||
|
showStudentListDialog(context:context,title:item.title+'等作业学生',arr: item.studentNames);
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 10.r),
|
||||||
|
width: (MediaQuery.of(context).size.width - 55.r) / 2,
|
||||||
|
color: Color(0xFFF5F5F5),
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
width: (MediaQuery.of(context).size.width - 55.r)/4 ,
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
width: 28.r,
|
||||||
|
height: 28.r,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
border: Border.all(
|
||||||
|
color: bgColor,
|
||||||
|
width: 1.r,
|
||||||
|
style: BorderStyle.solid),
|
||||||
|
borderRadius: BorderRadius.circular(14.r)),
|
||||||
|
child: Center(
|
||||||
|
child: Text(
|
||||||
|
item.title,
|
||||||
|
style: TextStyle(
|
||||||
|
color: bgColor, fontSize: 12.r),
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 10.r,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
item.count.toString(),
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 20.sp,
|
||||||
|
color: Color(0xFF595959)),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'人',
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 14.sp,
|
||||||
|
color: Color(0xFF595959)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@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),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
||||||
|
|
||||||
class ReportHistory extends StatefulWidget {
|
|
||||||
const ReportHistory({Key? key}) : super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<ReportHistory> createState() => _ReportHistoryState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _ReportHistoryState extends State<ReportHistory> {
|
|
||||||
bool isWork = true;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
backgroundColor: Color(0xFFEDF0FF),
|
|
||||||
appBar: AppBar(
|
|
||||||
backgroundColor: Colors.white,
|
|
||||||
title: Text(
|
|
||||||
'已完成报告',
|
|
||||||
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(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
body: Column(
|
|
||||||
children: [
|
|
||||||
Container(
|
|
||||||
width: MediaQuery.of(context).size.width * 0.8,
|
|
||||||
height: 40.r,
|
|
||||||
margin: EdgeInsets.only(
|
|
||||||
top: 10.r, left: MediaQuery.of(context).size.width * 0.2 / 2),
|
|
||||||
padding: EdgeInsets.all(2.r),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Colors.white,
|
|
||||||
borderRadius: BorderRadius.circular(8.r),
|
|
||||||
),
|
|
||||||
child: Row(
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: InkWell(
|
|
||||||
onTap: (){
|
|
||||||
isWork = true;
|
|
||||||
setState(() {
|
|
||||||
|
|
||||||
});
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: isWork ? Color(0xFF6988FD) : Colors.white,
|
|
||||||
borderRadius: BorderRadius.circular(8.r),
|
|
||||||
),
|
|
||||||
child: Center(
|
|
||||||
child: Text(
|
|
||||||
'作业',
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 14.r,
|
|
||||||
color: isWork ? Colors.white : Color(0xFF505E6E)),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)),
|
|
||||||
Expanded(
|
|
||||||
child: InkWell(
|
|
||||||
onTap: (){
|
|
||||||
isWork = false;
|
|
||||||
setState(() {
|
|
||||||
|
|
||||||
});
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: !isWork ? Color(0xFF6988FD) : Colors.white,
|
|
||||||
borderRadius: BorderRadius.circular(8.r),
|
|
||||||
),
|
|
||||||
child: Center(
|
|
||||||
child: Text(
|
|
||||||
'考试',
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 14.r,
|
|
||||||
color: !isWork ? Colors.white : Color(0xFF505E6E)),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -34,7 +34,6 @@ import 'package:marking_app/pages/mine/index.dart';
|
||||||
import 'package:marking_app/pages/mine/other_pages/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/other/agreement_page.dart';
|
||||||
import 'package:marking_app/pages/report_detail/index.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';
|
import 'package:marking_app/pages/reports/report_class_teacher.dart';
|
||||||
import 'package:marking_app/pages/reports/report_personal_subject.dart';
|
import 'package:marking_app/pages/reports/report_personal_subject.dart';
|
||||||
import 'package:marking_app/pages/reports/report_subject_teacher.dart';
|
import 'package:marking_app/pages/reports/report_subject_teacher.dart';
|
||||||
|
|
@ -75,8 +74,6 @@ class RouterManager {
|
||||||
static const String jobPriorityReviewSetPath = '/homework_correction/job_priority_review_set';
|
static const String jobPriorityReviewSetPath = '/homework_correction/job_priority_review_set';
|
||||||
static const String jobStudentGroupPath = '/homework_correction/job_student_group';
|
static const String jobStudentGroupPath = '/homework_correction/job_student_group';
|
||||||
static const String jobPersonalDetailPath = '/homework_correction/job_personal_detail';
|
static const String jobPersonalDetailPath = '/homework_correction/job_personal_detail';
|
||||||
static const String reportCardDialogPath = '/report_detail/widgets/report_card_dialog';
|
|
||||||
static const String reportHistoryPath = '/report_detail/report_history';
|
|
||||||
|
|
||||||
// TheMine
|
// TheMine
|
||||||
|
|
||||||
|
|
@ -345,23 +342,6 @@ class RouterManager {
|
||||||
return JobPersonalDetail(studentId: studentId,studentName:studentName);
|
return JobPersonalDetail(studentId: studentId,studentName:studentName);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
// 学生报告详情
|
|
||||||
static final _reportCardDialogPathHandler = Handler(
|
|
||||||
handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
|
|
||||||
/* String studentName = params['studentName']![0];
|
|
||||||
int studentId = int.parse(params['studentId']![0]);
|
|
||||||
return ReportCardDialog(studentId: studentId,studentName:studentName);*/
|
|
||||||
},
|
|
||||||
);
|
|
||||||
// 学生历史报告
|
|
||||||
static final _reportHistoryPathHandler = Handler(
|
|
||||||
handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
|
|
||||||
/* String studentName = params['studentName']![0];
|
|
||||||
int studentId = int.parse(params['studentId']![0]);*/
|
|
||||||
return ReportHistory();
|
|
||||||
},
|
|
||||||
);
|
|
||||||
// 开始阅卷页面
|
// 开始阅卷页面
|
||||||
// static final _doMarkingPapers = Handler(handlerFunc: (BuildContext? context, Map<String, List<String>> params) => MarkingPapers());
|
// static final _doMarkingPapers = Handler(handlerFunc: (BuildContext? context, Map<String, List<String>> params) => MarkingPapers());
|
||||||
|
|
||||||
|
|
@ -406,8 +386,6 @@ class RouterManager {
|
||||||
router.define(jobStudentGroupPath, handler: _jobStudentGroupPageHandler, transitionType: TransitionType.material);
|
router.define(jobStudentGroupPath, handler: _jobStudentGroupPageHandler, transitionType: TransitionType.material);
|
||||||
router.define(jobFavoritePagePath, handler: _jobFavoritePagePathHandler, transitionType: TransitionType.material);
|
router.define(jobFavoritePagePath, handler: _jobFavoritePagePathHandler, transitionType: TransitionType.material);
|
||||||
router.define(jobPersonalDetailPath, handler: _jobPersonalDetailPathHandler, transitionType: TransitionType.material);
|
router.define(jobPersonalDetailPath, handler: _jobPersonalDetailPathHandler, transitionType: TransitionType.material);
|
||||||
router.define(reportCardDialogPath, handler: _reportCardDialogPathHandler, transitionType: TransitionType.material);
|
|
||||||
router.define(reportHistoryPath, handler: _reportHistoryPathHandler, transitionType: TransitionType.material);
|
|
||||||
|
|
||||||
// getTransition()
|
// getTransition()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,4 @@ class CommonUtils {
|
||||||
// 这里其实就是 digest.toString()
|
// 这里其实就是 digest.toString()
|
||||||
return hex.encode(digest.bytes);
|
return hex.encode(digest.bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
static JumpPage(name,index) {}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
import 'package:flutter/cupertino.dart';
|
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
||||||
|
|
||||||
Padding homeIcon({double? top = 5,double? right = 8,String? color = 'black'}){
|
|
||||||
return Padding(
|
|
||||||
padding: EdgeInsets.only(top:top!.r,right: right!.r),
|
|
||||||
child: Image.asset('assets/images/home_icon_$color.png',width: 18.r,height: 18.r,),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue