diff --git a/marking_app/lib/pages/homework_correction/index.dart b/marking_app/lib/pages/homework_correction/index.dart index 0706791..722f730 100644 --- a/marking_app/lib/pages/homework_correction/index.dart +++ b/marking_app/lib/pages/homework_correction/index.dart @@ -260,7 +260,9 @@ class _HomeworkCorrectionState extends ConsumerState Expanded( flex: 1, child: InkWell( - onTap: () {}, + onTap: () { + RouterManager.router.navigateTo(context, RouterManager.jobPriorityReviewSetPath,transition: getTransition()); + }, child: Icon(Icons.settings_outlined, color: Color.fromRGBO(44, 48, 63, 1), size: 24.sp), ), ), diff --git a/marking_app/lib/pages/homework_correction/job_priority_review_set.dart b/marking_app/lib/pages/homework_correction/job_priority_review_set.dart new file mode 100644 index 0000000..3c958ed --- /dev/null +++ b/marking_app/lib/pages/homework_correction/job_priority_review_set.dart @@ -0,0 +1,125 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_easyrefresh/easy_refresh.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class JobPriorityReviewSet extends StatefulWidget { + const JobPriorityReviewSet({Key? key}) : super(key: key); + + @override + State createState() => _JobPriorityReviewSetState(); +} + +class _JobPriorityReviewSetState extends State + with SingleTickerProviderStateMixin { + late final EasyRefreshController refreshController; + late TabController tabController; + int tabIndex = 0; + + @override + void initState() { + super.initState(); + refreshController = EasyRefreshController(); + tabController = + TabController(initialIndex: tabIndex, length: 2, vsync: this); + } + + @override + void dispose() { + super.dispose(); + refreshController.dispose(); + tabController.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromRGBO(245, 245, 245, 1), + appBar: AppBar( + backgroundColor: Colors.white, + title: Text( + '优先批阅人配置', + style: TextStyle(fontSize: 16.sp, color: Color(0xFF333333)), + ), + centerTitle: true, + leading: IconButton( + icon: Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () => Navigator.of(context).pop(), + ), + ), + body: EasyRefresh( + firstRefresh: true, + taskIndependence: true, + enableControlFinishLoad: true, + enableControlFinishRefresh: true, + // emptyWidget: data.isEmpty ? const MyEmptyWidget() : null, + controller: refreshController, + header: MaterialHeader(), + footer: TaurusFooter(), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 14.r), + child: TabBar( + onTap: (int val) { + setState(() { + tabIndex = val; + }); + }, + tabs: [ + SizedBox( + width: (MediaQuery.of(context).size.width - 28.r) /2, + child: Tab( + text: '优先批阅', + ), + ), + SizedBox( + width: (MediaQuery.of(context).size.width - 28.r) /2, + child: Tab( + text: '默认批阅', + ), + ) + ], + controller: tabController, + unselectedLabelStyle: TextStyle( + fontSize: 14.sp, color:Color(0xFF666666)), + labelStyle: TextStyle( + fontSize: 14.sp, + color: Color(0xFF6888FD), + ), + isScrollable: true, + labelColor: Color(0xFF6888FD), + unselectedLabelColor: Color(0xFF666666), + indicatorSize: TabBarIndicatorSize.label, + labelPadding: const EdgeInsets.all(0), + ), + ), + Container( + padding: EdgeInsets.symmetric(horizontal: 15.r), + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(10.r)), + color: Colors.white, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('张小凡',style: TextStyle(fontSize: 12.sp,color: Color(0xFF6888FD)),), + Container( + padding: EdgeInsets.symmetric(vertical: 2.r,horizontal: 10.r), + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(20.r)), + color: Color(0xFF6888FD), + ), + child: Center( + child: Text('取消优先',style: TextStyle(fontSize: 10.sp,color: Colors.white),), + ), + ) + ], + ), + ) + ], + ), + ), + ); + } +} diff --git a/marking_app/lib/pages/homework_correction/job_report.dart b/marking_app/lib/pages/homework_correction/job_report.dart index 7eaab53..7600cdd 100644 --- a/marking_app/lib/pages/homework_correction/job_report.dart +++ b/marking_app/lib/pages/homework_correction/job_report.dart @@ -23,9 +23,10 @@ part 'job_report.g.dart'; /// 作业报告 class JobReport extends StatefulWidget { final int id; + final String uniqueId; final String title; - const JobReport({required this.id, required this.title, super.key}); + const JobReport({required this.id, required this.title,required this.uniqueId, super.key}); @override State createState() => _JobReportState(); diff --git a/marking_app/lib/pages/homework_correction/widget/quick_student_data_table.dart b/marking_app/lib/pages/homework_correction/widget/quick_student_data_table.dart index 7fb44fd..4631bc6 100644 --- a/marking_app/lib/pages/homework_correction/widget/quick_student_data_table.dart +++ b/marking_app/lib/pages/homework_correction/widget/quick_student_data_table.dart @@ -35,21 +35,25 @@ class _QuickStudentDataTableState extends State { StudentDetails item = widget.bodyList[index]; int num = 0; item.kgDetails.forEach((element) { - if(element.state == 0){ + if (element.state == 0) { num = num + 1; } }); item.zgDetails.forEach((element) { - if(element.state == 0){ + if (element.state == 0) { num = num + 1; } }); return DataRow2.byIndex( index: index, - color: color != null ? num == 0?MaterialStateProperty.all(color):MaterialStateProperty.all(Color(0xFFFFD79C)): null, + color: color != null + ? num == 0 + ? MaterialStateProperty.all(color) + : MaterialStateProperty.all(Color(0xFFFFD79C)) + : null, cells: [ DataCell(InkWell( - onTap: (){ + onTap: () { RouterManager.router.navigateTo( context, RouterManager.quickCheckPersonalPath + @@ -65,9 +69,16 @@ class _QuickStudentDataTableState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text(item.studentName, - style: TextStyle(fontSize: 12.sp, color: Color(0xFF6888FD))), - SizedBox(width: 5.r,), - Image.asset('assets/images/job_data_right_icon.png',width: 10.r,height: 10.r,) + style: + TextStyle(fontSize: 12.sp, color: Color(0xFF6888FD))), + SizedBox( + width: 5.r, + ), + Image.asset( + 'assets/images/job_data_right_icon.png', + width: 10.r, + height: 10.r, + ) ], ), ), @@ -91,50 +102,74 @@ class _QuickStudentDataTableState extends State { )), DataCell( Padding( - padding: EdgeInsets.symmetric(vertical:2.r,horizontal: 5.r), + padding: EdgeInsets.symmetric(vertical: 2.r, horizontal: 5.r), child: SingleChildScrollView( child: Wrap( direction: Axis.horizontal, alignment: WrapAlignment.center, spacing: 2, runSpacing: 2, - children: List.generate(item.kgDetails.length, (index) { + children: List.generate(item.kgDetails.length, (index) { KgDetails kgInfo = item.kgDetails[index]; return Container( width: 14.r, height: 14.r, decoration: BoxDecoration( - color: kgInfo.state == 0?Color(0xFFD9D9D9):kgInfo.state == 1?Color(0xFFFF7474):Color(0xFF4CC793), - borderRadius: BorderRadius.all(Radius.circular(7.r)) - ), - child: Center(child: Text(kgInfo.questionNo,style: TextStyle(fontSize:10.sp,color: kgInfo.state == 0?Color(0xFF525252):Colors.white),)), + color: kgInfo.state == 0 + ? Color(0xFFD9D9D9) + : kgInfo.state == 1 + ? Color(0xFFFF7474) + : Color(0xFF4CC793), + borderRadius: BorderRadius.all(Radius.circular(7.r))), + child: Center( + child: Text( + kgInfo.questionNo, + style: TextStyle( + fontSize: 10.sp, + color: kgInfo.state == 0 + ? Color(0xFF525252) + : Colors.white), + )), ); })), ), ), ), - DataCell( Padding( - padding: EdgeInsets.symmetric(vertical:2.r,horizontal: 5.r), - child: SingleChildScrollView( - child: Wrap( - direction: Axis.horizontal, - alignment: WrapAlignment.center, - spacing: 2, - runSpacing: 2, - children: List.generate(item.zgDetails.length, (index) { - KgDetails kgInfo = item.zgDetails[index]; - return Container( - width: 14.r, - height: 14.r, - decoration: BoxDecoration( - color: kgInfo.state == 0?Color(0xFFD9D9D9):kgInfo.state == 1?Color(0xFFFF7474):Color(0xFF4CC793), - borderRadius: BorderRadius.all(Radius.circular(7.r)) - ), - child: Center(child: Text(kgInfo.questionNo,style: TextStyle(fontSize:10.sp,color: kgInfo.state == 0?Color(0xFF525252):Colors.white),)), - ); - })), + DataCell( + Padding( + padding: EdgeInsets.symmetric(vertical: 2.r, horizontal: 5.r), + child: SingleChildScrollView( + child: Wrap( + direction: Axis.horizontal, + alignment: WrapAlignment.center, + spacing: 2, + runSpacing: 2, + children: List.generate(item.zgDetails.length, (index) { + KgDetails kgInfo = item.zgDetails[index]; + return Container( + width: 14.r, + height: 14.r, + decoration: BoxDecoration( + color: kgInfo.state == 0 + ? Color(0xFFD9D9D9) + : kgInfo.state == 1 + ? Color(0xFFFF7474) + : Color(0xFF4CC793), + borderRadius: BorderRadius.all(Radius.circular(7.r))), + child: Center( + child: Text( + kgInfo.questionNo, + style: TextStyle( + fontSize: 10.sp, + color: kgInfo.state == 0 + ? Color(0xFF525252) + : Colors.white), + )), + ); + })), + ), ), - ),), + ), ], ); } @@ -184,7 +219,7 @@ class _QuickStudentDataTableState extends State { style: TextStyle(fontSize: 12.sp, color: Color(0xFF505767))), ), // size: ColumnSize.S, - fixedWidth: (MediaQuery.of(context).size.width - 20.r - 28.r)/5, + fixedWidth: (MediaQuery.of(context).size.width - 20.r - 28.r) / 5, ); }), rows: List.generate(widget.bodyList.length, diff --git a/marking_app/lib/routes/RouterManager.dart b/marking_app/lib/routes/RouterManager.dart index e98c78b..36b4990 100644 --- a/marking_app/lib/routes/RouterManager.dart +++ b/marking_app/lib/routes/RouterManager.dart @@ -14,6 +14,7 @@ import 'package:flutter/material.dart'; import 'package:marking_app/common/model/enum/marking_list_type.dart'; import 'package:marking_app/pages/common/startUpPage.dart'; import 'package:marking_app/pages/homework_correction/do_papers_job_exam.dart'; +import 'package:marking_app/pages/homework_correction/job_priority_review_set.dart'; import 'package:marking_app/pages/homework_correction/job_report.dart'; import 'package:marking_app/pages/homework_correction/pages/job_list_participate_in_class.dart'; import 'package:marking_app/pages/homework_correction/review_job.dart'; @@ -180,7 +181,8 @@ class RouterManager { static final _jobReportPageHandler = Handler(handlerFunc: (BuildContext? context, Map> params) { int id = int.parse(params['id']![0]); String title = params['title']![0]; - return JobReport(id: id, title: title); + String uniqueId = params['uniqueId']![0]; + return JobReport(id: id, title: title,uniqueId:uniqueId); }); // 作业报告页面 @@ -274,6 +276,14 @@ class RouterManager { return QuickCheckPersonal(jobId: jobId, studentId: studentId); }, ); + + //优先配置 + static final _jobPriorityReviewSetPageHandler = Handler( + handlerFunc: (BuildContext? context, Map> params){ + return JobPriorityReviewSet(); + }, + ); + // 开始阅卷页面 // static final _doMarkingPapers = Handler(handlerFunc: (BuildContext? context, Map> params) => MarkingPapers()); @@ -313,6 +323,7 @@ class RouterManager { router.define(quickDataCheckPath, handler: _quickDataCheckPageHandler, transitionType: TransitionType.material); router.define(quickCheckPersonalPath, handler: _quickCheckPersonalPageHandler, transitionType: TransitionType.material); + router.define(jobPriorityReviewSetPath, handler: _jobPriorityReviewSetPageHandler, transitionType: TransitionType.material); // getTransition()