job_report_revision #2
|
|
@ -18,6 +18,7 @@ import 'package:marking_app/common/config/request_config.dart';
|
|||
import 'package:marking_app/common/model/job/job_task_item.dart';
|
||||
import 'package:marking_app/pages/homework_correction/components/new_version_of_homework/homework_tasks_view_item.dart';
|
||||
import 'package:marking_app/provider/review_provider.dart';
|
||||
import 'package:marking_app/routes/RouterManager.dart';
|
||||
import 'package:marking_app/utils/index.dart';
|
||||
import 'package:marking_app/utils/my_text.dart';
|
||||
import 'package:marking_app/utils/request/rest_client.dart';
|
||||
|
|
@ -256,7 +257,9 @@ class _HomeworkCorrectionState extends ConsumerState<HomeworkCorrection>
|
|||
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),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -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<JobPriorityReviewSet> createState() => _JobPriorityReviewSetState();
|
||||
}
|
||||
|
||||
class _JobPriorityReviewSetState extends State<JobPriorityReviewSet>
|
||||
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),),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<JobReport> createState() => _JobReportState();
|
||||
|
|
|
|||
|
|
@ -46,7 +46,11 @@ class _QuickStudentDataTableState extends State<QuickStudentDataTable> {
|
|||
});
|
||||
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: () {
|
||||
|
|
@ -65,9 +69,16 @@ class _QuickStudentDataTableState extends State<QuickStudentDataTable> {
|
|||
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,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
@ -104,16 +115,28 @@ class _QuickStudentDataTableState extends State<QuickStudentDataTable> {
|
|||
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(
|
||||
DataCell(
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 2.r, horizontal: 5.r),
|
||||
child: SingleChildScrollView(
|
||||
child: Wrap(
|
||||
|
|
@ -127,14 +150,26 @@ class _QuickStudentDataTableState extends State<QuickStudentDataTable> {
|
|||
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),
|
||||
)),
|
||||
);
|
||||
})),
|
||||
),
|
||||
),),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
@ -65,6 +66,7 @@ class RouterManager {
|
|||
static const String reportDetailPath = '/report_detail/index';
|
||||
static const String quickDataCheckPath = '/homework_correction/quick_data_check';
|
||||
static const String quickCheckPersonalPath = '/homework_correction/quick_check_personal';
|
||||
static const String jobPriorityReviewSetPath = '/homework_correction/job_priority_review_set';
|
||||
|
||||
// TheMine
|
||||
|
||||
|
|
@ -180,7 +182,8 @@ class RouterManager {
|
|||
static final _jobReportPageHandler = Handler(handlerFunc: (BuildContext? context, Map<String, List<String>> 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);
|
||||
});
|
||||
|
||||
// 作业报告页面
|
||||
|
|
@ -273,6 +276,14 @@ class RouterManager {
|
|||
return QuickCheckPersonal(jobId: jobId,studentId:studentId);
|
||||
},
|
||||
);
|
||||
|
||||
//优先配置
|
||||
static final _jobPriorityReviewSetPageHandler = Handler(
|
||||
handlerFunc: (BuildContext? context, Map<String, List<String>> params){
|
||||
return JobPriorityReviewSet();
|
||||
},
|
||||
);
|
||||
|
||||
// 开始阅卷页面
|
||||
// static final _doMarkingPapers = Handler(handlerFunc: (BuildContext? context, Map<String, List<String>> params) => MarkingPapers());
|
||||
|
||||
|
|
@ -311,6 +322,7 @@ class RouterManager {
|
|||
handler: _jobListParticipateInClassHandler, transitionType: TransitionType.material);
|
||||
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()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue