job_report_revision #2

Merged
wangyang merged 30 commits from job_report_revision into main 2024-03-13 15:11:28 +08:00
1 changed files with 226 additions and 221 deletions
Showing only changes of commit 2ca30595d9 - Show all commits

View File

@ -73,250 +73,255 @@ class _QuickDataCheckState extends State<QuickDataCheck> with CommonMixin {
0.09, 0.09,
0.3 0.3
])), ])),
child: SingleChildScrollView( child: Column(
child: Column( children: [
children: [ Row(
Row( children: [
children: [ IconButton(
IconButton( icon: Icon(Icons.arrow_back_ios, color: Colors.white),
icon: Icon(Icons.arrow_back_ios, color: Colors.white), onPressed: () => Navigator.of(context).pop(),
onPressed: () => Navigator.of(context).pop(),
),
Expanded(
child: Center(
child: Text(
'数据快查',
style: TextStyle(fontSize: 16.sp, color: Colors.white),
))),
],
),
Padding(
padding: EdgeInsets.only(left: 14.r, top: 10.r),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Image.asset(
'assets/images/job_report_class_icon.png',
width: 22.r,
height: 22.r,
),
SizedBox(
width: 6.r,
),
Text(
widget.className,
style: TextStyle(fontSize: 14.r, color: Colors.white),
)
],
), ),
), Expanded(
Container( child: Center(
padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 15.r), child: Text(
margin: EdgeInsets.symmetric(vertical: 10.r, horizontal: 14.r), '数据快查',
decoration: BoxDecoration( style: TextStyle(fontSize: 16.sp, color: Colors.white),
color: Colors.white, ))),
borderRadius: BorderRadius.all(Radius.circular(6.r))), ],
child: Column( ),
crossAxisAlignment: CrossAxisAlignment.start, SizedBox(height:10.r),
children: [ Expanded(child: SingleChildScrollView(
Row( child: Column(
mainAxisAlignment: MainAxisAlignment.center, children: [
Padding(
padding: EdgeInsets.only(left: 14.r, top: 2.r),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Container( Image.asset(
width: 14.r, 'assets/images/job_report_class_icon.png',
height: 14.r, width: 22.r,
decoration: BoxDecoration( height: 22.r,
color: Color(0xFF4CC793),
borderRadius:
BorderRadius.all(Radius.circular(7.r))),
), ),
SizedBox( SizedBox(
width: 6.r, width: 6.r,
), ),
Text( Text(
'已提交', widget.className,
style: TextStyle( style: TextStyle(fontSize: 14.r, color: Colors.white),
fontSize: 12.sp, color: Color(0xFF333333)),
),
SizedBox(
width: 35.r,
),
Container(
width: 14.r,
height: 14.r,
decoration: BoxDecoration(
color: Color(0xFF6888FD),
borderRadius:
BorderRadius.all(Radius.circular(7.r))),
),
SizedBox(
width: 6.r,
),
Text(
'未提交',
style: TextStyle(
fontSize: 12.sp, color: Color(0xFF333333)),
) )
], ],
), ),
// ),
SizedBox( Container(
height: MediaQuery.of(context).size.width * 0.5, padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 15.r),
child: PieChart( margin: EdgeInsets.symmetric(vertical: 10.r, horizontal: 14.r),
PieChartData( decoration: BoxDecoration(
borderData: FlBorderData(show: false), color: Colors.white,
sectionsSpace: 0, borderRadius: BorderRadius.all(Radius.circular(6.r))),
centerSpaceRadius: MediaQuery.of(context).size.width * 0.1, child: Column(
sections: [ crossAxisAlignment: CrossAxisAlignment.start,
PieChartSectionData( children: [
color: Color(0xFF4CC793), Row(
value: jobData!.validCount/(jobData!.validCount+jobData!.noAnswerCount) * 100, mainAxisAlignment: MainAxisAlignment.center,
radius: MediaQuery.of(context).size.width * 0.1 + 5, children: [
title: '${jobData!.validCount}', Container(
titleStyle: TextStyle( width: 14.r,
fontSize: 14.sp, height: 14.r,
color: Colors.white, decoration: BoxDecoration(
), color: Color(0xFF4CC793),
borderRadius:
BorderRadius.all(Radius.circular(7.r))),
), ),
PieChartSectionData( SizedBox(
color: Color(0xFF6888FD), width: 6.r,
value: jobData!.noAnswerCount/(jobData!.validCount+jobData!.noAnswerCount) * 100, ),
radius: MediaQuery.of(context).size.width * 0.1, Text(
title: '${jobData!.noAnswerCount}', '已提交',
titleStyle: TextStyle( style: TextStyle(
fontSize: 14.sp, fontSize: 12.sp, color: Color(0xFF333333)),
color: Colors.white, ),
), SizedBox(
width: 35.r,
),
Container(
width: 14.r,
height: 14.r,
decoration: BoxDecoration(
color: Color(0xFF6888FD),
borderRadius:
BorderRadius.all(Radius.circular(7.r))),
),
SizedBox(
width: 6.r,
),
Text(
'未提交',
style: TextStyle(
fontSize: 12.sp, color: Color(0xFF333333)),
)
],
),
//
SizedBox(
height: MediaQuery.of(context).size.width * 0.5,
child: PieChart(
PieChartData(
borderData: FlBorderData(show: false),
sectionsSpace: 0,
centerSpaceRadius: MediaQuery.of(context).size.width * 0.1,
sections: [
PieChartSectionData(
color: Color(0xFF4CC793),
value: jobData!.validCount/(jobData!.validCount+jobData!.noAnswerCount) * 100,
radius: MediaQuery.of(context).size.width * 0.1 + 5,
title: '${jobData!.validCount}',
titleStyle: TextStyle(
fontSize: 14.sp,
color: Colors.white,
),
),
PieChartSectionData(
color: Color(0xFF6888FD),
value: jobData!.noAnswerCount/(jobData!.validCount+jobData!.noAnswerCount) * 100,
radius: MediaQuery.of(context).size.width * 0.1,
title: '${jobData!.noAnswerCount}',
titleStyle: TextStyle(
fontSize: 14.sp,
color: Colors.white,
),
),
],
),
),
),
//
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'客观题答题进度',
style: TextStyle(
fontSize: 10.sp, color: Color(0xFF8B8B8B)),
),
Text('${doubleToStringAsFixed(jobData!.kgValidRate)}%',
style: TextStyle(
fontSize: 10.sp, color: Color(0xFF333333)),
), ),
], ],
), ),
), SizedBox(height: 6.r),
), Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
Row( children: [
mainAxisAlignment: MainAxisAlignment.spaceBetween, Expanded(
children: [ flex: 10,
Text( child: LinearPercentIndicator(
'客观题答题进度', padding: EdgeInsets.zero,
style: TextStyle( animation: true,
fontSize: 10.sp, color: Color(0xFF8B8B8B)), lineHeight: 9.h,
animationDuration: 2500,
percent: jobData!.kgValidRate/100,
progressColor: Color(0xFFFF7F22),
backgroundColor: Color(0xFFEAEAEA),
barRadius: Radius.circular(10.r),
)),
],
), ),
Text('${doubleToStringAsFixed(jobData!.kgValidRate)}%', SizedBox(height: 20.r),
style: TextStyle( //
fontSize: 10.sp, color: Color(0xFF333333)), Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'主观题答题进度',
style: TextStyle(
fontSize: 10.sp, color: Color(0xFF8B8B8B)),
),
Text(
'${doubleToStringAsFixed(jobData!.zgValidRate)}%',
style: TextStyle(
fontSize: 10.sp, color: Color(0xFF333333)),
),
],
),
SizedBox(height: 6.r),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 10,
child: LinearPercentIndicator(
padding: EdgeInsets.zero,
animation: true,
lineHeight: 9.h,
animationDuration: 2500,
percent: jobData!.zgValidRate/100,
progressColor: Color(0xFFFF7F22),
backgroundColor: Color(0xFFEAEAEA),
barRadius: Radius.circular(10.r),
)),
],
), ),
], ],
), ),
SizedBox(height: 6.r), ),
Row( Container(
mainAxisAlignment: MainAxisAlignment.spaceBetween, padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 10.r),
margin: EdgeInsets.symmetric(vertical: 10.r, horizontal: 14.r),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(6.r))),
child: Column(
children: [ children: [
Expanded( InkWell(
flex: 10, onTap: (){
child: LinearPercentIndicator( jobData!.studentDetails.sort((a, b) {
padding: EdgeInsets.zero, int num1 = a.kgValidRate + a.zgValidRate;
animation: true, int num2 = b.kgValidRate + b.zgValidRate;
lineHeight: 9.h, return num2.compareTo(num1);
animationDuration: 2500, });
percent: jobData!.kgValidRate/100, setState(() {
progressColor: Color(0xFFFF7F22), jobData!.studentDetails;
backgroundColor: Color(0xFFEAEAEA), });
barRadius: Radius.circular(10.r), },
)), child: Row(
], mainAxisAlignment: MainAxisAlignment.end,
), children: [
SizedBox(height: 20.r), Text(
// '未提交排序',
Row( style: TextStyle(
mainAxisAlignment: MainAxisAlignment.spaceBetween, fontSize: 12.sp, color: Color(0xFF6888FD)),
children: [ ),
Text( SizedBox(
'主观题答题进度', width: 10.r,
style: TextStyle( ),
fontSize: 10.sp, color: Color(0xFF8B8B8B)), Image.asset(
), 'assets/images/sort_icon.png',
Text( width: 14.r,
'${doubleToStringAsFixed(jobData!.zgValidRate)}%', height: 14.r,
style: TextStyle( ),
fontSize: 10.sp, color: Color(0xFF333333)), ],
),
), ),
SizedBox(height: 10.r,),
SizedBox(
height: jobData!.studentDetails.length>5?350.r:jobData!.studentDetails.length * 50.r + 40.r,
child: QuickStudentDataTable(
headList: ['学生姓名','客观题','主观题','客观题错题','主观题错题'],
bodyList: jobData!.studentDetails,
jobId: widget.jobId,
fixedRows: 1,
fixedCols: 0,
),
)
], ],
), ),
SizedBox(height: 6.r), ),
Row( ],
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 10,
child: LinearPercentIndicator(
padding: EdgeInsets.zero,
animation: true,
lineHeight: 9.h,
animationDuration: 2500,
percent: jobData!.zgValidRate/100,
progressColor: Color(0xFFFF7F22),
backgroundColor: Color(0xFFEAEAEA),
barRadius: Radius.circular(10.r),
)),
],
),
],
),
), ),
Container( ))
padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 10.r), ],
margin: EdgeInsets.symmetric(vertical: 10.r, horizontal: 14.r),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(6.r))),
child: Column(
children: [
InkWell(
onTap: (){
jobData!.studentDetails.sort((a, b) {
int num1 = a.kgValidRate + a.zgValidRate;
int num2 = b.kgValidRate + b.zgValidRate;
return num2.compareTo(num1);
});
setState(() {
jobData!.studentDetails;
});
},
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
'未提交排序',
style: TextStyle(
fontSize: 12.sp, color: Color(0xFF6888FD)),
),
SizedBox(
width: 10.r,
),
Image.asset(
'assets/images/sort_icon.png',
width: 14.r,
height: 14.r,
),
],
),
),
SizedBox(height: 10.r,),
SizedBox(
height: jobData!.studentDetails.length>5?300.r:jobData!.studentDetails.length * 50.r + 40.r,
child: QuickStudentDataTable(
headList: ['学生姓名','客观题','主观题','客观题错题','主观题错题'],
bodyList: jobData!.studentDetails,
jobId: widget.jobId,
fixedRows: 1,
fixedCols: 0,
),
)
],
),
),
],
),
), ),
), ),
); );