This commit is contained in:
parent
1daadfedfb
commit
ec9a94f1ea
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 657 B |
|
|
@ -18,7 +18,10 @@ class HomeworkDetails extends Object {
|
|||
@JsonKey(name: 'dtls')
|
||||
List<Dtls> dtls;
|
||||
|
||||
HomeworkDetails(this.questions,this.knows,this.students,this.dtls);
|
||||
@JsonKey(name: 'subject')
|
||||
int? subject;
|
||||
|
||||
HomeworkDetails(this.questions,this.knows,this.students,this.dtls,this.subject);
|
||||
|
||||
factory HomeworkDetails.fromJson(Map<String, dynamic> srcJson) => _$HomeworkDetailsFromJson(srcJson);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@ class ShowStudentList extends StatelessWidget {
|
|||
final String title;
|
||||
final String homeworkId;
|
||||
final List<dynamic> studentList;
|
||||
const ShowStudentList({Key? key, required this.title, required this.studentList, required this.homeworkId}) : super(key: key);
|
||||
final int subject;
|
||||
const ShowStudentList({Key? key, required this.title, required this.studentList, required this.homeworkId,required this.subject}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -44,12 +45,12 @@ class ShowStudentList extends StatelessWidget {
|
|||
children: studentList.map((e) {
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': e.studentId, 'homeworkId': homeworkId});
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': e.studentId, 'homeworkId': homeworkId,'subject':subject});
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.symmetric(vertical: 4.r, horizontal: 8.r),
|
||||
decoration: BoxDecoration(
|
||||
color: e.state == 3 ? Color(0xFF4CC793) : Color(0xFFE2E2E2),
|
||||
color: e.state == 3 ? Color(0xFF4CC793) : Color(0xFFF0ECFF),
|
||||
borderRadius: BorderRadius.circular(4.r),
|
||||
),
|
||||
child: quickText(e.studentName, color: e.state == 3 ? Colors.white : Color(0xFF505E6E), size: 10.sp),
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class _AnnotateItemState extends State<AnnotateItem> {
|
|||
height: 27.r,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(20.r)),
|
||||
color: const Color(0xFF4CC793),
|
||||
color: Theme.of(context).primaryColor,
|
||||
),
|
||||
child: const Center(
|
||||
child: Text(
|
||||
|
|
@ -157,6 +157,7 @@ class _AnnotateItemState extends State<AnnotateItem> {
|
|||
widget.logic.getAllCorrect(widget.item.classId);
|
||||
}
|
||||
},
|
||||
bgColor: Theme.of(context).primaryColor,
|
||||
),
|
||||
),
|
||||
const Expanded(
|
||||
|
|
@ -196,55 +197,56 @@ class _AnnotateItemState extends State<AnnotateItem> {
|
|||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 14.r),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: LinearPercentIndicator(
|
||||
padding: EdgeInsets.zero,
|
||||
animation: true,
|
||||
lineHeight: 8.h,
|
||||
animationDuration: 2500,
|
||||
padding: EdgeInsets.only(top: 10.r,left: 14.r,right: 14.r),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
quickText('批阅进度', size: widget.font - 2.sp, color: const Color(0xFF8E8E8E)),
|
||||
quickText('${widget.item.annotateRate}%', size: widget.font + 10.sp, color: const Color(0xFF464646))
|
||||
],
|
||||
),),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 0.r, left: 14.r,right: 14.r,bottom: 10.r),
|
||||
child: LinearPercentIndicator(
|
||||
padding: EdgeInsets.zero,
|
||||
animation: true,
|
||||
lineHeight: 8.h,
|
||||
animationDuration: 2500,
|
||||
|
||||
percent: widget.item.annotateRate / 100,
|
||||
linearGradient: LinearGradient(
|
||||
tileMode: TileMode.mirror,
|
||||
stops: const [0.0, 1.0],
|
||||
colors: widget.item.annotateRate / 100 != 1
|
||||
? [Theme.of(context).primaryColor.withOpacity(0.1), Theme.of(context).primaryColor]
|
||||
: [
|
||||
const Color.fromRGBO(144, 224, 190, 1).withOpacity(0.1),
|
||||
const Color.fromRGBO(144, 224, 190, 1),
|
||||
],
|
||||
),
|
||||
// linearStrokeCap: LinearStrokeCap.butt,
|
||||
// progressColor: Theme.of(context).primaryColor,
|
||||
backgroundColor: const Color.fromRGBO(232, 232, 232, 1),
|
||||
barRadius: Radius.circular(10.r),
|
||||
),
|
||||
),
|
||||
SizedBox(width: 7.w),
|
||||
quickText('${widget.item.annotateRate}%', size: widget.font - 2.sp, color: const Color.fromRGBO(70, 70, 70, 1))
|
||||
],
|
||||
percent: widget.item.annotateRate / 100,
|
||||
linearGradient: LinearGradient(
|
||||
tileMode: TileMode.mirror,
|
||||
stops: const [0.0, 1.0],
|
||||
colors: widget.item.annotateRate / 100 != 1
|
||||
? [Theme.of(context).primaryColor.withOpacity(0.1), Theme.of(context).primaryColor]
|
||||
: [
|
||||
const Color.fromRGBO(144, 224, 190, 1).withOpacity(0.1),
|
||||
const Color.fromRGBO(144, 224, 190, 1),
|
||||
],
|
||||
),
|
||||
// linearStrokeCap: LinearStrokeCap.butt,
|
||||
// progressColor: Theme.of(context).primaryColor,
|
||||
backgroundColor: const Color.fromRGBO(232, 232, 232, 1),
|
||||
barRadius: Radius.circular(10.r),
|
||||
),
|
||||
),
|
||||
ProgressBar(
|
||||
title: '客观题正确率:',
|
||||
color: const Color(0xFF4CC793),
|
||||
color: const Color(0xFFADDCA5),
|
||||
percent: widget.item.kgtCorrectRate / 100,
|
||||
marginEdg: EdgeInsets.zero,
|
||||
padingEdg: EdgeInsets.only(top: 8.h, left: 14.r, right: 14.r),
|
||||
fontSize: widget.font - 2.sp),
|
||||
ProgressBar(
|
||||
title: '主观题正确率:',
|
||||
color: const Color(0xFF4CC793),
|
||||
color: const Color(0xFFADDCA5),
|
||||
percent: widget.item.zgtCorrectRate / 100,
|
||||
padingEdg: EdgeInsets.symmetric(horizontal: 10.r),
|
||||
marginEdg: EdgeInsets.only(top: 8.h),
|
||||
fontSize: widget.font - 2.sp),
|
||||
ProgressBar(
|
||||
title: '总正确率:',
|
||||
color: const Color(0xFF4CC793),
|
||||
color: const Color(0xFFADDCA5),
|
||||
percent: widget.item.correctRate / 100,
|
||||
padingEdg: EdgeInsets.symmetric(horizontal: 10.r),
|
||||
marginEdg: EdgeInsets.only(top: 8.h),
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ class CompletedAnnotateItem extends StatelessWidget {
|
|||
title: '${taskItem.className ?? ''} ${submitted ? '已提交' : '未提交'}作业学生',
|
||||
studentList: students,
|
||||
homeworkId: logic.state.homeworkId.value,
|
||||
subject:logic.state.subject,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
|
@ -43,13 +44,13 @@ class CompletedAnnotateItem extends StatelessWidget {
|
|||
decoration: BoxDecoration(
|
||||
border: Border(bottom: BorderSide(color: Color.fromRGBO(238, 238, 238, 1), width: 0.5.r)),
|
||||
),
|
||||
child: quickText(taskItem.className, color: Color(0xFF4CC793), size: 12.sp),
|
||||
child: quickText(taskItem.className, color: Theme.of(context).primaryColor, size: 12.sp),
|
||||
),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ProgressBar(
|
||||
color: const Color.fromRGBO(76, 199, 147, 1),
|
||||
color: const Color(0xFFADDCA5),
|
||||
percent: taskItem.kgtCorrectRate / 100,
|
||||
title: '客观题正确率:',
|
||||
padingEdg: EdgeInsets.only(left: 10.w, right: 10.w),
|
||||
|
|
@ -58,7 +59,7 @@ class CompletedAnnotateItem extends StatelessWidget {
|
|||
marginEdg: EdgeInsets.only(top: 5.h),
|
||||
),
|
||||
ProgressBar(
|
||||
color: const Color.fromRGBO(76, 199, 147, 1),
|
||||
color: const Color(0xFFADDCA5),
|
||||
percent: taskItem.zgtCorrectRate / 100,
|
||||
title: '主观题正确率:',
|
||||
fontSize: 8.sp,
|
||||
|
|
@ -67,7 +68,7 @@ class CompletedAnnotateItem extends StatelessWidget {
|
|||
marginEdg: EdgeInsets.only(top: 5.h),
|
||||
),
|
||||
ProgressBar(
|
||||
color: const Color.fromRGBO(76, 199, 147, 1),
|
||||
color: const Color(0xFFADDCA5),
|
||||
percent: taskItem.correctRate / 100,
|
||||
title: '总正确率:',
|
||||
fontSize: 8.sp,
|
||||
|
|
@ -86,7 +87,7 @@ class CompletedAnnotateItem extends StatelessWidget {
|
|||
Expanded(
|
||||
flex: 4,
|
||||
child: Material(
|
||||
color: Color.fromRGBO(244, 244, 244, 1),
|
||||
color: Theme.of(context).primaryColor,
|
||||
borderRadius: BorderRadius.circular(16.r),
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
|
|
@ -101,7 +102,7 @@ class CompletedAnnotateItem extends StatelessWidget {
|
|||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(20.r),
|
||||
),
|
||||
child: quickText('已提交:${taskItem.commitStudentCount}', size: 8.sp, color: Color.fromRGBO(102, 102, 102, 1)),
|
||||
child: quickText('已提交:${taskItem.commitStudentCount}', size: 8.sp, color: Colors.white),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -4,8 +4,9 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|||
class ItemBtn extends StatelessWidget {
|
||||
final String title;
|
||||
final double font;
|
||||
final Color? bgColor;
|
||||
final Function? clickFunction;
|
||||
const ItemBtn({Key? key,required this.title,required this.font,this.clickFunction}) : super(key: key);
|
||||
const ItemBtn({Key? key,required this.title,required this.font,this.clickFunction,this.bgColor}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -18,7 +19,7 @@ class ItemBtn extends StatelessWidget {
|
|||
const Color(0xFFE8E8E8)),
|
||||
backgroundColor:
|
||||
WidgetStateProperty.all(
|
||||
const Color(0xFFF4F4F4)),
|
||||
bgColor??const Color(0xFFF4F4F4)),
|
||||
// foregroundColor: MaterialStateProperty.all(Colors.red.shade200),//文字颜色
|
||||
shape: WidgetStateProperty.all(
|
||||
RoundedRectangleBorder(
|
||||
|
|
@ -37,7 +38,7 @@ class ItemBtn extends StatelessWidget {
|
|||
title,
|
||||
style: TextStyle(
|
||||
fontSize: font,
|
||||
color: const Color(0xFF666666)),
|
||||
color: bgColor != null?Colors.white:const Color(0xFF666666)),
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class _AnswerTrajectoryPageState extends State<AnswerTrajectoryPage> {
|
|||
tabAlignment: TabAlignment.start,
|
||||
indicator: const UnderlineTabIndicator(
|
||||
borderSide: BorderSide(
|
||||
color: const Color(0xFF4CC793),
|
||||
color: Color(0xFF8C68FF),
|
||||
),
|
||||
|
||||
),
|
||||
|
|
@ -97,10 +97,10 @@ class _AnswerTrajectoryPageState extends State<AnswerTrajectoryPage> {
|
|||
TextStyle(fontSize: 14.sp, color: Color(0xFF666666)),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: Color(0xFF4CC793),
|
||||
color: Color(0xFF8C68FF),
|
||||
),
|
||||
isScrollable: true,
|
||||
labelColor: Color(0xFF4CC793),
|
||||
labelColor: Color(0xFF8C68FF),
|
||||
unselectedLabelColor: Color(0xFF666666),
|
||||
indicatorSize: TabBarIndicatorSize.label,
|
||||
labelPadding: const EdgeInsets.all(0),
|
||||
|
|
@ -133,13 +133,13 @@ class _AnswerTrajectoryPageState extends State<AnswerTrajectoryPage> {
|
|||
borderRadius:
|
||||
BorderRadius.all(Radius.circular(20.r)),
|
||||
border: Border.all(
|
||||
width: 1.r, color: Color(0xFFFF9800)),
|
||||
width: 1.r, color: Color(0xFF7EB752)),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
'详情',
|
||||
style: TextStyle(
|
||||
fontSize: 10.sp, color: Color(0xFFFF9800)),
|
||||
fontSize: 10.sp, color: Color(0xFF7EB752)),
|
||||
),
|
||||
),
|
||||
)),
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class AnswerTrajectoryJob extends StatelessWidget {
|
|||
Items item = jobList[index];
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(Routes.answerTrajectoryDetailPage,arguments: {'homeworkId':item.id,'title':item.name,'grade':item.grade});
|
||||
Get.toNamed(Routes.answerTrajectoryDetailPage,arguments: {'homeworkId':item.id,'title':item.name,'grade':item.grade,'subject':item.subject});
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.only(top: 10.h),
|
||||
|
|
@ -58,17 +58,13 @@ class AnswerTrajectoryJob extends StatelessWidget {
|
|||
children: [
|
||||
Container(
|
||||
width: 32.w,
|
||||
height: 18.h,
|
||||
height: 22.h,
|
||||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.only(left: 2.w),
|
||||
// padding: EdgeInsets.only(left: 2.w),
|
||||
decoration: BoxDecoration(
|
||||
color:
|
||||
const Color(0xFF4CC793),
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(14.r),
|
||||
topRight: Radius.circular(3.r),
|
||||
bottomLeft: Radius.circular(4.r),
|
||||
bottomRight: Radius.circular(4.r),
|
||||
color:Theme.of(context).primaryColor,
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(5.r)
|
||||
),
|
||||
),
|
||||
margin: EdgeInsets.only(top:3.h,right: 4.w),
|
||||
|
|
@ -92,14 +88,14 @@ class AnswerTrajectoryJob extends StatelessWidget {
|
|||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(4.r),
|
||||
border: Border.all(
|
||||
width: 1.r, color: Color(0xFF4CC793)),
|
||||
width: 1.r, color: Theme.of(context).primaryColor),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
EnumUtils.formatSubject(item.subject),
|
||||
style: TextStyle(
|
||||
fontSize: 8.r,
|
||||
color: Color(0xFF4CC793)),
|
||||
color: Theme.of(context).primaryColor),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
|
@ -190,17 +186,13 @@ class AnswerTrajectoryJob extends StatelessWidget {
|
|||
children: [
|
||||
Container(
|
||||
width: 32.w,
|
||||
height: 18.h,
|
||||
height: 22.h,
|
||||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.only(left: 2.w),
|
||||
// padding: EdgeInsets.only(left: 2.w),
|
||||
decoration: BoxDecoration(
|
||||
color:
|
||||
const Color(0xFF4CC793),
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(14.r),
|
||||
topRight: Radius.circular(3.r),
|
||||
bottomLeft: Radius.circular(4.r),
|
||||
bottomRight: Radius.circular(4.r),
|
||||
color:Theme.of(context).primaryColor,
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(5.r)
|
||||
),
|
||||
),
|
||||
margin: EdgeInsets.only(top:3.h,right: 4.w),
|
||||
|
|
@ -224,14 +216,14 @@ class AnswerTrajectoryJob extends StatelessWidget {
|
|||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(4.r),
|
||||
border: Border.all(
|
||||
width: 1.r, color: Color(0xFF4CC793)),
|
||||
width: 1.r, color: Theme.of(context).primaryColor),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
EnumUtils.formatSubject(item.subject),
|
||||
style: TextStyle(
|
||||
fontSize: 12.r,
|
||||
color: Color(0xFF4CC793)),
|
||||
color: Theme.of(context).primaryColor),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ class AnswerTrajectoryDetailLogic extends GetxController with RequestToolMixin{
|
|||
state.homeworkId.value = Get.arguments['homeworkId'] ?? '';
|
||||
state.title.value = Get.arguments['title'] ?? '';
|
||||
state.grade = Get.arguments['grade'] ?? -1;
|
||||
state.subject = Get.arguments['subject'] ?? -1;
|
||||
refreshController = EasyRefreshController();
|
||||
EasyLoading.show(status: 'loading...');
|
||||
getList();
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ class AnswerTrajectoryDetailState {
|
|||
late RxString homeworkId = ''.obs;
|
||||
late RxString title = ''.obs;
|
||||
late int grade = -1;
|
||||
late int subject = -1;
|
||||
late RxList<AnnotatedClass> classList = RxList();
|
||||
late Rx<AnnotatedClass> currentClass=Rx(AnnotatedClass('',-1,'','','',-1,-1,-1,-1,-1,[],[],-1,-1,-1,-1,-1,[],[]));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ class _AnswerTrajectoryDetailPageState
|
|||
fontSize: 10.sp,
|
||||
color: state.currentClass.value
|
||||
.classId == item.classId
|
||||
? Color(0xFF4CC793)
|
||||
? Theme.of(context).primaryColor
|
||||
: Color(0xFF686868)),
|
||||
),
|
||||
),
|
||||
|
|
@ -141,7 +141,7 @@ class _AnswerTrajectoryDetailPageState
|
|||
AnnotatedStudents item = state.currentClass.value.students[index];
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': item.studentId, 'homeworkId': state.homeworkId.value});
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': item.studentId, 'homeworkId': state.homeworkId.value,'subject':state.subject});
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.symmetric(horizontal: 10.r),
|
||||
|
|
@ -159,7 +159,7 @@ class _AnswerTrajectoryDetailPageState
|
|||
item.studentName,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: Color(0xFF4CC793)),
|
||||
color: Color(0xFF5E5E5E)),
|
||||
)),
|
||||
|
||||
Container(
|
||||
|
|
@ -167,14 +167,14 @@ class _AnswerTrajectoryDetailPageState
|
|||
width: 70.r,
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(
|
||||
width: 1.r, color: Color(0xFFFFA41E)),
|
||||
width: 1.r, color: Color(0xFFB2DA93)),
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(20.r)),
|
||||
|
||||
),
|
||||
child: Center(child: Text('详情',
|
||||
style: TextStyle(fontSize: 10.r,
|
||||
color: Color(0xFFFFA41E))),
|
||||
color: Color(0xFFB2DA93))),
|
||||
)),
|
||||
],
|
||||
),
|
||||
|
|
@ -188,7 +188,7 @@ class _AnswerTrajectoryDetailPageState
|
|||
.students[index];
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': item.studentId, 'homeworkId': state.homeworkId.value});
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': item.studentId, 'homeworkId': state.homeworkId.value,'subject':state.subject});
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.symmetric(
|
||||
|
|
@ -208,21 +208,21 @@ class _AnswerTrajectoryDetailPageState
|
|||
item.studentName,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: Color(0xFF4CC793)),
|
||||
color: Color(0xFF5E5E5E)),
|
||||
)),
|
||||
Container(
|
||||
height: 24.r,
|
||||
width: 72.r,
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(
|
||||
width: 1.r, color: Color(0xFFFFA41E)),
|
||||
width: 1.r, color: Color(0xFFB2DA93)),
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(20.r)),
|
||||
|
||||
),
|
||||
child: Center(child: Text('详情',
|
||||
style: TextStyle(fontSize: 10.r,
|
||||
color: Color(0xFFFFA41E))),
|
||||
color: Color(0xFFB2DA93))),
|
||||
)),
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ class _ClassStudentPageState extends State<ClassStudentPage> {
|
|||
item.name,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: const Color(0xFF4CC793)),
|
||||
color: Theme.of(context).primaryColor),
|
||||
)),
|
||||
state.page == 'answerTrajectory'
|
||||
? Container(
|
||||
|
|
@ -106,7 +106,7 @@ class _ClassStudentPageState extends State<ClassStudentPage> {
|
|||
decoration: BoxDecoration(
|
||||
border: Border.all(
|
||||
width: 1.r,
|
||||
color: const Color(0xFFFFA41E)),
|
||||
color: const Color(0xFFB2DA93)),
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(20.r)),
|
||||
),
|
||||
|
|
@ -114,7 +114,7 @@ class _ClassStudentPageState extends State<ClassStudentPage> {
|
|||
child: Text('详情',
|
||||
style: TextStyle(
|
||||
fontSize: 10.r,
|
||||
color: Color(0xFFFFA41E))),
|
||||
color: Color(0xFFB2DA93))),
|
||||
))
|
||||
: state.page == 'history'
|
||||
? Container(
|
||||
|
|
@ -122,7 +122,7 @@ class _ClassStudentPageState extends State<ClassStudentPage> {
|
|||
width: 70.r,
|
||||
decoration: BoxDecoration(
|
||||
color:
|
||||
const Color(0xFF4CC793),
|
||||
Theme.of(context).primaryColor,
|
||||
borderRadius:
|
||||
BorderRadius.all(
|
||||
Radius.circular(
|
||||
|
|
@ -152,7 +152,7 @@ class _ClassStudentPageState extends State<ClassStudentPage> {
|
|||
Radius.circular(
|
||||
4.r)),
|
||||
color: const Color(
|
||||
0xFFB7FFE0),
|
||||
0xFFEBE4FF),
|
||||
),
|
||||
child: Row(
|
||||
crossAxisAlignment:
|
||||
|
|
@ -178,8 +178,7 @@ class _ClassStudentPageState extends State<ClassStudentPage> {
|
|||
'优先批阅',
|
||||
style: TextStyle(
|
||||
fontSize: 10.sp,
|
||||
color: const Color(
|
||||
0xFF4CC793)),
|
||||
color: Theme.of(context).primaryColor),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
|
@ -283,7 +282,7 @@ class _ClassStudentPageState extends State<ClassStudentPage> {
|
|||
decoration: BoxDecoration(
|
||||
border: Border.all(
|
||||
width: 1.r,
|
||||
color: const Color(0xFFFFA41E)),
|
||||
color: const Color(0xFFB2DA93)),
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(20.r)),
|
||||
),
|
||||
|
|
@ -291,7 +290,7 @@ class _ClassStudentPageState extends State<ClassStudentPage> {
|
|||
child: Text('详情',
|
||||
style: TextStyle(
|
||||
fontSize: 10.r,
|
||||
color: Color(0xFFFFA41E))),
|
||||
color: Color(0xFFB2DA93))),
|
||||
))
|
||||
: state.page == 'history'
|
||||
? Container(
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ class _FavStudentPageState extends State<FavStudentPage> {
|
|||
height: 27.r,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(20.r)),
|
||||
color: const Color(0xFF4CC793),
|
||||
color: Theme.of(context).primaryColor,
|
||||
),
|
||||
child: const Center(
|
||||
child: Text(
|
||||
|
|
@ -194,7 +194,7 @@ class _FavStudentPageState extends State<FavStudentPage> {
|
|||
'第${item['questionPage']}页',
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: const Color(0xFF2E5BFF)),
|
||||
color:Theme.of(context).primaryColor),
|
||||
),
|
||||
),
|
||||
GridView(
|
||||
|
|
@ -294,7 +294,7 @@ class _FavStudentPageState extends State<FavStudentPage> {
|
|||
'第${item['questionPage']}页',
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: const Color(0xFF2E5BFF)),
|
||||
color:Theme.of(context).primaryColor),
|
||||
),
|
||||
),
|
||||
ListView.builder(
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ class _FavoriteStudentDialogState extends State<FavoriteStudentDialog> {
|
|||
return Text(
|
||||
'${currentStudent.value.className} ${currentStudent.value
|
||||
.studentName}',
|
||||
style: TextStyle(fontSize: 12.sp, color: Color(0xFF4E73FD)),
|
||||
style: TextStyle(fontSize: 12.sp, color: Theme.of(context).primaryColor),
|
||||
);
|
||||
}),
|
||||
Expanded(child: Container()),
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ class JobReportLogic extends GetxController with RequestToolMixin {
|
|||
HomeworkDetails data =
|
||||
await getClient().getHomeworkDetails(state.homeworkId.value, state.classData.value.classId != '-1' ? state.classData.value.classId : '');
|
||||
state.dataCount = Utils.getHomeworkData(data);
|
||||
state.subject = data.subject!;
|
||||
state.homeData = data;
|
||||
state.kgReport.value = data.questions.where((w) => w.questionType == 1).toList();
|
||||
state.zgReport.value = data.questions.where((w) => w.questionType == 2).toList();
|
||||
|
|
|
|||
|
|
@ -23,4 +23,5 @@ class JobReportState {
|
|||
late RxList<AnnotatedClass> involveClasses = RxList();
|
||||
late AnnotatedClass defaultClass = AnnotatedClass('', -1, '-1', '', '', -1, -1, -1, -1, -1, [], [], -1, -1, -1, -1, -1, [], []);
|
||||
late Rx<AnnotatedClass> classData = defaultClass.obs;
|
||||
late int subject = -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ class _JobReportPageState extends State<JobReportPage> {
|
|||
),
|
||||
//完成率、正确率
|
||||
TopCount(
|
||||
state.dataCount, state.classData == null ? '' : state.classData.value.className, state.homeworkId.value),
|
||||
state.dataCount, state.classData == null ? '' : state.classData.value.className, state.homeworkId.value,state.subject),
|
||||
//客观题、主观题
|
||||
KgtZgtTable(
|
||||
studentCount: state.dataCount.studentCount!,
|
||||
|
|
@ -87,7 +87,8 @@ class _JobReportPageState extends State<JobReportPage> {
|
|||
kgtOkRate: state.dataCount.kgtOkRate!.toStringAsFixed(0),
|
||||
zgtOkRate: state.dataCount.zgtOkRate!.toStringAsFixed(0),
|
||||
kgtCorrectRate: state.dataCount.kgtCorrectRate!.toStringAsFixed(0),
|
||||
zgtCorrectRate: state.dataCount.zgtCorrectRate!.toStringAsFixed(0)),
|
||||
zgtCorrectRate: state.dataCount.zgtCorrectRate!.toStringAsFixed(0),
|
||||
subject:state.subject),
|
||||
// 掌握知识点的情况
|
||||
Container(
|
||||
margin: EdgeInsets.symmetric(horizontal: 10.r),
|
||||
|
|
@ -95,7 +96,8 @@ class _JobReportPageState extends State<JobReportPage> {
|
|||
knowsList: state.knowsList,
|
||||
data: state.homeData,
|
||||
className: state.classData.value.className,
|
||||
homeworkId: state.homeworkId.value)),
|
||||
homeworkId: state.homeworkId.value,
|
||||
subject:state.subject,)),
|
||||
// 掌握知识点的情况
|
||||
/* Container(
|
||||
margin: EdgeInsets.symmetric(horizontal: 10.r),
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@ class KnowledgePoint extends StatefulWidget {
|
|||
final HomeworkDetails data;
|
||||
final String className;
|
||||
final String homeworkId;
|
||||
KnowledgePoint({Key? key, required this.knowsList, required this.data, required this.className, required this.homeworkId}) : super(key: key);
|
||||
final int subject;
|
||||
KnowledgePoint({Key? key, required this.knowsList, required this.data, required this.className, required this.homeworkId,required this.subject}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<KnowledgePoint> createState() => _KnowledgePointState();
|
||||
|
|
@ -22,7 +23,7 @@ class KnowledgePoint extends StatefulWidget {
|
|||
class _KnowledgePointState extends State<KnowledgePoint> {
|
||||
void goQuickCheckPersonalPath(studentId) {
|
||||
if (studentId != null) {
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': studentId, 'homeworkId': widget.homeworkId});
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': studentId, 'homeworkId': widget.homeworkId,'subject':widget.subject});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -166,7 +167,7 @@ class _KnowledgePointState extends State<KnowledgePoint> {
|
|||
? Colors.white
|
||||
: kgInfo.state == 2
|
||||
? const Color(0xFFFF7474)
|
||||
: const Color(0xFF4CC793),
|
||||
: Theme.of(context).primaryColor,
|
||||
borderRadius: BorderRadius.all(Radius.circular(10.r))),
|
||||
child: Center(
|
||||
child: Text(
|
||||
|
|
|
|||
|
|
@ -12,8 +12,9 @@ class TopCount extends StatelessWidget {
|
|||
final CountData data;
|
||||
final String className;
|
||||
final String jobId;
|
||||
final int subject;
|
||||
|
||||
const TopCount(this.data, this.className, this.jobId, {Key? key}) : super(key: key);
|
||||
const TopCount(this.data, this.className, this.jobId, this.subject,{Key? key}) : super(key: key);
|
||||
|
||||
void showStudentListDialog({required BuildContext context, required String title, required List<Students> students}) {
|
||||
showDialog(
|
||||
|
|
@ -23,6 +24,7 @@ class TopCount extends StatelessWidget {
|
|||
title: title,
|
||||
studentList: students,
|
||||
homeworkId: jobId,
|
||||
subject: subject,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
|
@ -91,7 +93,7 @@ class TopCount extends StatelessWidget {
|
|||
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(
|
||||
padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 10.r),
|
||||
padding: EdgeInsets.symmetric(vertical: 20.r, horizontal: 20.r),
|
||||
margin: EdgeInsets.symmetric(vertical: 10.r, horizontal: 10.r),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
|
|
@ -100,34 +102,80 @@ class TopCount extends StatelessWidget {
|
|||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '未提交作业学生', students: data.noAnswerStudents!);
|
||||
},
|
||||
child: leftContainer(context, count: data.noAnswerCount!, name: '未提交', nameColor: Color(0xFFD92F2F), bgColor: Color(0xFFEEEEEE)),
|
||||
child: leftContainer(context, count: data.noAnswerCount!, name: '未提交', nameColor: Color(0xFF10978E), bgColor: Color(0xFFE8F8F7)),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '已提交作业学生', students: data.studentSubmitStudents!);
|
||||
},
|
||||
child: leftContainer(context, count: data.studentSubmitCount!, name: '已提交', nameColor: Color(0xFF4CC793), bgColor: Color(0xFFF5F5F5)),
|
||||
child: leftContainer(context, count: data.studentSubmitCount!, name: '已提交', nameColor: Color(0xFFEF5614), bgColor: Color(0xFFFCEFEA)),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '全对作业学生', students: data.allCorrectStudents!);
|
||||
},
|
||||
child: leftContainer(context, count: data.allCorrect!, name: '全对', nameColor: Color(0xFFFF9800), bgColor: Color(0xFFEEEEEE)),
|
||||
child: leftContainer(context, count: data.allCorrect!, name: '全对', nameColor: Color(0xFF8C68FF), bgColor: Color(0xFFE9EBFD)),
|
||||
),
|
||||
Container(
|
||||
height: 92.r,
|
||||
width: rightWidth,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
|
||||
],
|
||||
),
|
||||
SizedBox(height: 15.r,),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '优等作业学生', students: data.levelOneStudents!);
|
||||
},
|
||||
child: rightContainer(
|
||||
context,
|
||||
count: data.levelOneCount!,
|
||||
bgColor: const Color(0xFFE8F8F7),
|
||||
nameColor: const Color(0xFF009254),
|
||||
borderColor: const Color(0xFF4CC793),
|
||||
name: '优',
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '良等作业学生', students: data.levelTwoStudents!);
|
||||
},
|
||||
child: rightContainer(context,count: data.levelTwoCount!, bgColor: Color(0xFFFEF9F6), nameColor: Color(0xFFE87F0B), borderColor: const Color(0xFFFF9F46), name: '良'),
|
||||
)
|
||||
],
|
||||
),
|
||||
SizedBox(height: 10.r,),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '中等作业学生', students: data.levelThreeStudents!);
|
||||
},
|
||||
child: rightContainer(context,count: data.levelThreeCount!, bgColor: Color(0xFFFFF6F6), nameColor: Color(0xFFFF7474), borderColor: const Color(0xFFFFCACA),name: '中'),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '差等作业学生', students: data.levelFourStudents!);
|
||||
},
|
||||
child: rightContainer(context,count: data.levelFourCount!, bgColor: Color(0xFFECEFEF), nameColor: Color(0xFF5C5B59), borderColor: const Color(0xFFD8D8D8),name: '差'),
|
||||
)
|
||||
],
|
||||
),
|
||||
/* Container(
|
||||
height: 92.r,
|
||||
width: rightWidth,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '优等作业学生', students: data.levelOneStudents!);
|
||||
},
|
||||
|
|
@ -138,41 +186,39 @@ class TopCount extends StatelessWidget {
|
|||
name: '优',
|
||||
),
|
||||
)),
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '中等作业学生', students: data.levelThreeStudents!);
|
||||
},
|
||||
child: rightContainer(count: data.levelThreeCount!, bgColor: Color(0xFFD3FF93), nameColor: Color(0xFF3F6605), name: '中'),
|
||||
)),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 92.r,
|
||||
width: rightWidth,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 92.r,
|
||||
width: rightWidth,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '良等作业学生', students: data.levelTwoStudents!);
|
||||
},
|
||||
child: rightContainer(count: data.levelTwoCount!, bgColor: Color(0xFFFFC38C), nameColor: Color(0xFFD36500), name: '良'),
|
||||
child: rightContainer(context,count: data.levelTwoCount!, bgColor: Color(0xFFFFC38C), nameColor: Color(0xFFD36500), name: '良'),
|
||||
)),
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
showStudentListDialog(context: context, title: '差等作业学生', students: data.levelFourStudents!);
|
||||
},
|
||||
child: rightContainer(count: data.levelFourCount!, bgColor: Color(0xFFFF9D94), nameColor: Color(0xFFD12616), name: '差'),
|
||||
child: rightContainer(context,count: data.levelFourCount!, bgColor: Color(0xFFFF9D94), nameColor: Color(0xFFD12616), name: '差'),
|
||||
)),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
)*/
|
||||
],
|
||||
),
|
||||
);
|
||||
|
|
@ -181,12 +227,15 @@ class TopCount extends StatelessWidget {
|
|||
|
||||
@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;
|
||||
double leftWidth = (MediaQuery.of(context).size.width - 100.r) / 3;
|
||||
return Container(
|
||||
width: leftWidth,
|
||||
height: 92.r,
|
||||
height: 108.r,
|
||||
padding: EdgeInsets.symmetric(vertical: 10.r, horizontal: 6.r),
|
||||
color: bgColor,
|
||||
decoration: BoxDecoration(
|
||||
color: bgColor,
|
||||
borderRadius: BorderRadius.all(Radius.circular(10.r)),
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
|
|
@ -208,7 +257,7 @@ Widget leftContainer(context, {required int count, required String name, require
|
|||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 20.r,
|
||||
height: 30.r,
|
||||
),
|
||||
Text(
|
||||
name,
|
||||
|
|
@ -220,35 +269,42 @@ Widget leftContainer(context, {required int count, required String name, require
|
|||
}
|
||||
|
||||
@swidget
|
||||
Widget rightContainer({required int count, required Color bgColor, required Color nameColor, required String name}) {
|
||||
Widget rightContainer(context,{required int count, required Color bgColor, required Color nameColor, required Color borderColor,required String name}) {
|
||||
return Container(
|
||||
color: bgColor,
|
||||
child: Column(
|
||||
width: (MediaQuery.of(context).size.width - 80.r) / 2,
|
||||
height: 48.r,
|
||||
decoration: BoxDecoration(
|
||||
color: bgColor,
|
||||
borderRadius: BorderRadius.all(Radius.circular(10.r)),
|
||||
border: Border.all(color: borderColor,width: 1.r),
|
||||
),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
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,
|
||||
),
|
||||
SizedBox(width: 20.r,),
|
||||
Expanded(child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
count.toString(),
|
||||
style: TextStyle(fontSize: 24.sp, color: const Color(0xFF505251), fontWeight: FontWeight.w300),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 3.r),
|
||||
child: Text(
|
||||
'人',
|
||||
style: TextStyle(fontSize: 10.sp, color: const Color(0xFF505251), fontWeight: FontWeight.w300),
|
||||
),
|
||||
),
|
||||
],
|
||||
)),
|
||||
|
||||
|
||||
Text(
|
||||
name,
|
||||
style: TextStyle(fontSize: 12.sp, color: nameColor, fontWeight: FontWeight.w500),
|
||||
)
|
||||
style: TextStyle(fontSize: 12.sp, color: nameColor, fontWeight: FontWeight.w600),
|
||||
),
|
||||
SizedBox(width: 20.r,),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ class _KnowledgePointsGraspPageState extends State<KnowledgePointsGraspPage> {
|
|||
height: 30.r,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(4.r),
|
||||
color: Color(0xFF4CC793),
|
||||
color: Theme.of(context).primaryColor,
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
|
|
@ -175,7 +175,8 @@ class _KnowledgePointsGraspPageState extends State<KnowledgePointsGraspPage> {
|
|||
'dateStart': state.dateStart,
|
||||
'dateEnd': state.dateEnd,
|
||||
'knowledgeId': item.knowledgeId,
|
||||
'knowledgeName': item.knowledgeName
|
||||
'knowledgeName': item.knowledgeName,
|
||||
'subject':state.subject
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
|
|
@ -200,7 +201,7 @@ class _KnowledgePointsGraspPageState extends State<KnowledgePointsGraspPage> {
|
|||
height: 22.r,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(20.r)),
|
||||
border: Border.all(width: 1.r, color: Color(0xFF4CC793)),
|
||||
border: Border.all(width: 1.r, color: Theme.of(context).primaryColor),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
|
|
@ -208,7 +209,7 @@ class _KnowledgePointsGraspPageState extends State<KnowledgePointsGraspPage> {
|
|||
children: [
|
||||
Text(
|
||||
'${item.count}次',
|
||||
style: TextStyle(fontSize: 10.sp, color: Color(0xFF4CC793)),
|
||||
style: TextStyle(fontSize: 10.sp, color: Theme.of(context).primaryColor),
|
||||
),
|
||||
Image.asset(
|
||||
'assets/images/job_data_right_icon.png',
|
||||
|
|
@ -225,7 +226,7 @@ class _KnowledgePointsGraspPageState extends State<KnowledgePointsGraspPage> {
|
|||
),
|
||||
ProgressBar(
|
||||
title: '正确率:',
|
||||
color: Color(0xFF90E0BE),
|
||||
color: Color(0xFFB2DA93),
|
||||
percent: item.correctRate / 100,
|
||||
padingEdg: EdgeInsets.zero,
|
||||
marginEdg: EdgeInsets.only(top: 8.h)),
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ class KnowledgePointsGraspDetailLogic extends GetxController with RequestToolMix
|
|||
state.dateEnd = Get.arguments['dateEnd'];
|
||||
state.knowledgeId = Get.arguments['knowledgeId'];
|
||||
state.knowledgeName.value = Get.arguments['knowledgeName'];
|
||||
state.subject = Get.arguments['subject'] ?? -1;
|
||||
refreshController = EasyRefreshController();
|
||||
EasyLoading.show(status: 'loading...');
|
||||
getList();
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ class KnowledgePointsGraspDetailState {
|
|||
late String dateStart = '';
|
||||
late String dateEnd = '';
|
||||
late int knowledgeId = 0;
|
||||
late int subject = -1;
|
||||
late RxList<KnowledgeReportDetail> dataList = RxList();
|
||||
late RxList<Students> studentList = RxList();
|
||||
late RxString knowledgeName = ''.obs;
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ class _KnowledgePointsGraspDetailPageState extends State<KnowledgePointsGraspDet
|
|||
title: title,
|
||||
studentList: state.studentList.value,
|
||||
homeworkId: homeworkId,
|
||||
subject: state.subject,
|
||||
);
|
||||
});
|
||||
},
|
||||
|
|
@ -183,13 +184,13 @@ class _KnowledgePointsGraspDetailPageState extends State<KnowledgePointsGraspDet
|
|||
width: 56.r,
|
||||
height: 20.r,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD4FFED),
|
||||
color: Color(0xFFE9FFD9),
|
||||
borderRadius: BorderRadius.circular(20.r),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
quickText('正确率', color: Color(0xFF4CC793), size: 10.sp),
|
||||
quickText('正确率', color: Color(0xFF313131), size: 10.sp),
|
||||
Image.asset(
|
||||
'assets/images/job_data_right_icon.png',
|
||||
width: 8.r,
|
||||
|
|
@ -214,7 +215,7 @@ class _KnowledgePointsGraspDetailPageState extends State<KnowledgePointsGraspDet
|
|||
lineHeight: 8.h,
|
||||
animationDuration: 2500,
|
||||
percent: item.correctRate / 100,
|
||||
progressColor: Color(0xFF90E0BE),
|
||||
progressColor: Color(0xFFB2DA93),
|
||||
backgroundColor: Color(0xFFE8E8E8),
|
||||
barRadius: Radius.circular(10.r),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ class QuickDataCheckLogic extends GetxController with RequestToolMixin {
|
|||
void getWorkData() async {
|
||||
HomeworkDetails data = await getClient().getHomeworkDetails(state.homeworkId.value, state.classId.value);
|
||||
EasyLoading.dismiss();
|
||||
state.subject = data.subject!;
|
||||
state.dataCount = Utils.getHomeworkData(data);
|
||||
state.homeData = data;
|
||||
state.kgReport.value = data.questions.where((w) => w.questionType == 1).toList();
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ class QuickDataCheckState {
|
|||
late RxList<Questions> zgReport = RxList();
|
||||
late RxList<Students> studentList = RxList();
|
||||
late HomeworkDetails homeData;
|
||||
late int subject = -1;
|
||||
}
|
||||
|
||||
class CountData extends Object {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class _QuickDataCheckPageState extends State<QuickDataCheckPage> {
|
|||
height: MediaQuery.of(context).size.height,
|
||||
decoration: const BoxDecoration(
|
||||
gradient: LinearGradient(begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [
|
||||
Color(0xFF4CC793),
|
||||
Color(0xFF8C68FF),
|
||||
Color(0xFFF5F5F5),
|
||||
], stops: [
|
||||
0.09,
|
||||
|
|
@ -201,7 +201,7 @@ class _QuickDataCheckPageState extends State<QuickDataCheckPage> {
|
|||
lineHeight: 9.h,
|
||||
animationDuration: 2500,
|
||||
percent: state.dataCount.kgtAnswerRate! / 100,
|
||||
progressColor: const Color(0xFFFF7F22),
|
||||
progressColor: const Color(0xFFB2DA93),
|
||||
backgroundColor: const Color(0xFFEAEAEA),
|
||||
barRadius: Radius.circular(10.r),
|
||||
)),
|
||||
|
|
@ -234,7 +234,7 @@ class _QuickDataCheckPageState extends State<QuickDataCheckPage> {
|
|||
lineHeight: 9.h,
|
||||
animationDuration: 2500,
|
||||
percent: state.dataCount.zgtAnswerRate! / 100,
|
||||
progressColor: const Color(0xFFFF7F22),
|
||||
progressColor: const Color(0xFFB2DA93),
|
||||
backgroundColor: const Color(0xFFEAEAEA),
|
||||
barRadius: Radius.circular(10.r),
|
||||
)),
|
||||
|
|
@ -248,6 +248,7 @@ class _QuickDataCheckPageState extends State<QuickDataCheckPage> {
|
|||
jobId: state.homeworkId.value,
|
||||
kgCount: state.dataCount.kgtDtlCount!,
|
||||
zgCount: state.dataCount.zgtDtlCount!,
|
||||
subject:state.subject,
|
||||
),
|
||||
//客观题、主观题
|
||||
KgtZgtTable(
|
||||
|
|
@ -258,7 +259,8 @@ class _QuickDataCheckPageState extends State<QuickDataCheckPage> {
|
|||
kgtOkRate: state.dataCount.kgtOkRate!.toStringAsFixed(0),
|
||||
kgtCorrectRate: state.dataCount.kgtCorrectRate!.toStringAsFixed(0),
|
||||
zgtOkRate: state.dataCount.zgtOkRate!.toStringAsFixed(0),
|
||||
zgtCorrectRate: state.dataCount.zgtCorrectRate!.toStringAsFixed(0)),
|
||||
zgtCorrectRate: state.dataCount.zgtCorrectRate!.toStringAsFixed(0),
|
||||
subject:state.subject),
|
||||
],
|
||||
),
|
||||
));
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ class KgtZgtTable extends StatefulWidget {
|
|||
final String zgtOkRate;
|
||||
final String kgtCorrectRate;
|
||||
final String zgtCorrectRate;
|
||||
final int subject;
|
||||
|
||||
const KgtZgtTable(
|
||||
{Key? key,
|
||||
|
|
@ -26,7 +27,8 @@ class KgtZgtTable extends StatefulWidget {
|
|||
required this.kgtOkRate,
|
||||
required this.kgtCorrectRate,
|
||||
required this.zgtOkRate,
|
||||
required this.zgtCorrectRate,})
|
||||
required this.zgtCorrectRate,
|
||||
required this.subject})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
|
|
@ -90,6 +92,7 @@ class _KgtZgtTableState extends State<KgtZgtTable> {
|
|||
fixedRows: 1,
|
||||
jobId: widget.homeworkId,
|
||||
studentCount: widget.studentCount,
|
||||
subject:widget.subject,
|
||||
),
|
||||
),
|
||||
if (widget.kgReport.isEmpty) MyEmptyWidget(imgWidth: 100.r, imgHeight: 100.r, font: 8.sp),
|
||||
|
|
@ -144,6 +147,7 @@ class _KgtZgtTableState extends State<KgtZgtTable> {
|
|||
isZG: true,
|
||||
jobId: widget.homeworkId,
|
||||
studentCount: widget.studentCount,
|
||||
subject: widget.subject,
|
||||
),
|
||||
),
|
||||
if (widget.zgReport.isEmpty) MyEmptyWidget(imgWidth: 100.r, imgHeight: 100.r, font: 8.sp),
|
||||
|
|
|
|||
|
|
@ -8,9 +8,10 @@ class QuickDataCheckBottom extends StatefulWidget {
|
|||
final String jobId;
|
||||
final int kgCount;
|
||||
final int zgCount;
|
||||
final int subject;
|
||||
final List<Students>? jobData;
|
||||
|
||||
const QuickDataCheckBottom({Key? key, required this.jobId, required this.jobData, required this.kgCount, required this.zgCount}) : super(key: key);
|
||||
const QuickDataCheckBottom({Key? key, required this.jobId, required this.jobData, required this.kgCount, required this.zgCount,required this.subject}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<QuickDataCheckBottom> createState() => _QuickDataCheckBottomState();
|
||||
|
|
@ -241,6 +242,7 @@ class _QuickDataCheckBottomState extends State<QuickDataCheckBottom> {
|
|||
hasUnrated: false,
|
||||
kgCount: widget.kgCount,
|
||||
zgCount: widget.zgCount,
|
||||
subject:widget.subject,
|
||||
),
|
||||
);
|
||||
})
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ class QuickStudentDataTable extends StatefulWidget {
|
|||
final bool hasUnrated;
|
||||
final int kgCount;
|
||||
final int zgCount;
|
||||
final int subject;
|
||||
|
||||
const QuickStudentDataTable({
|
||||
Key? key,
|
||||
|
|
@ -23,6 +24,7 @@ class QuickStudentDataTable extends StatefulWidget {
|
|||
required this.hasUnrated,
|
||||
required this.kgCount,
|
||||
required this.zgCount,
|
||||
required this.subject,
|
||||
this.fixedCols = 0,
|
||||
this.fixedRows = 0,
|
||||
}) : super(key: key);
|
||||
|
|
@ -49,7 +51,7 @@ class _QuickStudentDataTableState extends State<QuickStudentDataTable> {
|
|||
cells: [
|
||||
DataCell(InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': item.studentId, 'homeworkId': widget.jobId});
|
||||
Get.toNamed(Routes.studentPersonalPage, arguments: {'studentId': item.studentId, 'homeworkId': widget.jobId,'subject':widget.subject});
|
||||
},
|
||||
child: Center(
|
||||
child: Padding(
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ class ReportTable extends StatefulWidget {
|
|||
final bool? isZG;
|
||||
final String jobId;
|
||||
final int studentCount;
|
||||
final int subject;
|
||||
|
||||
const ReportTable({
|
||||
Key? key,
|
||||
|
|
@ -27,6 +28,7 @@ class ReportTable extends StatefulWidget {
|
|||
required this.bodyList,
|
||||
required this.jobId,
|
||||
required this.studentCount,
|
||||
required this.subject,
|
||||
this.fixedCols = 0,
|
||||
this.fixedRows = 0,
|
||||
this.isZG = false,
|
||||
|
|
@ -41,10 +43,10 @@ class _ReportTableState extends State<ReportTable> {
|
|||
int? _sortColumnIndex;
|
||||
final bool _sortAscending = true;
|
||||
List colorMap = const [
|
||||
Color.fromRGBO(0, 179, 134, 1),
|
||||
Color.fromRGBO(1, 193, 254, 1),
|
||||
Color.fromRGBO(239, 135, 20, 1),
|
||||
Color.fromRGBO(219, 0, 0, 1),
|
||||
Color.fromRGBO(184, 161, 255, 1),
|
||||
Color.fromRGBO(79, 199, 147, 1),
|
||||
Color.fromRGBO(144, 224, 190, 1),
|
||||
Color.fromRGBO(255, 107, 107, 1),
|
||||
Color.fromRGBO(211, 211, 211, 1),
|
||||
];
|
||||
|
||||
|
|
@ -73,19 +75,19 @@ class _ReportTableState extends State<ReportTable> {
|
|||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
mapIcon(const Color(0xFF4CC793)),
|
||||
mapIcon(const Color(0xFFB8A1FF)),
|
||||
SizedBox(width: 5.r,),
|
||||
mapTxt('优'),
|
||||
const Spacer(),
|
||||
mapIcon(const Color(0xFF01C1FE)),
|
||||
mapIcon(const Color(0xFF4CC793)),
|
||||
SizedBox(width: 5.r,),
|
||||
mapTxt('良'),
|
||||
const Spacer(),
|
||||
mapIcon(const Color(0xFFEF8714)),
|
||||
mapIcon(const Color(0xFF90E0BE)),
|
||||
SizedBox(width: 5.r,),
|
||||
mapTxt('中'),
|
||||
const Spacer(),
|
||||
mapIcon(const Color(0xFFDB0000)),
|
||||
mapIcon(const Color(0xFFFF6B6B)),
|
||||
SizedBox(width: 5.r,),
|
||||
mapTxt('差'),
|
||||
],
|
||||
|
|
@ -105,6 +107,7 @@ class _ReportTableState extends State<ReportTable> {
|
|||
color: colorMap[index],
|
||||
value: e.count / widget.studentCount * 100,
|
||||
radius: 110,
|
||||
// borderSide:BorderSide(color: const Color(0xFF273366),width: 0.5.r),
|
||||
// title: e.title + (Utils.doubleToStringAsFixed(e.count / widget.studentCount * 100) + '%'),
|
||||
title: e.title + e.count.toString(),
|
||||
titleStyle: TextStyle(fontSize: 12.sp, color: Color(0xFFFFFFFF)),
|
||||
|
|
@ -185,17 +188,17 @@ class _ReportTableState extends State<ReportTable> {
|
|||
Text(
|
||||
widget.isZG == true ? '主观题' : '客观题',
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp, color: const Color(0xFF4CC793)),
|
||||
fontSize: 14.sp, color: Theme.of(context).primaryColor),
|
||||
),
|
||||
Text(
|
||||
'―',
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp, color: const Color(0xFF4CC793)),
|
||||
fontSize: 14.sp, color: Theme.of(context).primaryColor),
|
||||
),
|
||||
Text(
|
||||
'第$questionNo题',
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp, color: Color(0xFF4CC793)),
|
||||
fontSize: 14.sp, color: Theme.of(context).primaryColor),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
@ -355,7 +358,7 @@ class _ReportTableState extends State<ReportTable> {
|
|||
void goQuickCheckPersonalPath(id) {
|
||||
if (id != null) {
|
||||
Get.toNamed(Routes.studentPersonalPage,
|
||||
arguments: {'studentId': id, 'homeworkId': widget.jobId});
|
||||
arguments: {'studentId': id, 'homeworkId': widget.jobId,'subject':widget.subject});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -456,7 +459,7 @@ class _ReportTableState extends State<ReportTable> {
|
|||
children: [
|
||||
Text('${item.answerCount}/${widget.studentCount}',
|
||||
style: TextStyle(
|
||||
fontSize: 10.sp, color: const Color(0xFF4CC793))),
|
||||
fontSize: 10.sp, color: Theme.of(context).primaryColor)),
|
||||
Image.asset(
|
||||
'assets/images/green_right_icon.png',
|
||||
width: 12.r,
|
||||
|
|
@ -500,14 +503,14 @@ class _ReportTableState extends State<ReportTable> {
|
|||
fontSize: 10.sp,
|
||||
color: widget.isZG == true
|
||||
? const Color(0xFFFF8A00)
|
||||
: const Color(0xFF4CC793))),
|
||||
: Theme.of(context).primaryColor)),
|
||||
)
|
||||
: Text(item.answer,
|
||||
style: TextStyle(
|
||||
fontSize: 10.sp,
|
||||
color: widget.isZG == true
|
||||
? const Color(0xFFFF8A00)
|
||||
: const Color(0xFF4CC793))),
|
||||
: Theme.of(context).primaryColor)),
|
||||
),
|
||||
)),
|
||||
DataCell(InkWell(
|
||||
|
|
@ -524,7 +527,7 @@ class _ReportTableState extends State<ReportTable> {
|
|||
children: [
|
||||
Text('${item.priorityInfo.length}人答错',
|
||||
style: TextStyle(
|
||||
fontSize: 10.sp, color: const Color(0xFF4CC793))),
|
||||
fontSize: 10.sp, color: Theme.of(context).primaryColor)),
|
||||
Image.asset(
|
||||
'assets/images/green_right_icon.png',
|
||||
width: 12.r,
|
||||
|
|
@ -549,14 +552,14 @@ class _ReportTableState extends State<ReportTable> {
|
|||
fontSize: 10.sp,
|
||||
color: widget.isZG == true
|
||||
? const Color(0xFFFF8A00)
|
||||
: const Color(0xFF4CC793))),
|
||||
: Theme.of(context).primaryColor)),
|
||||
)
|
||||
: Text(item.answer,
|
||||
style: TextStyle(
|
||||
fontSize: 10.sp,
|
||||
color: widget.isZG == true
|
||||
? const Color(0xFFFF8A00)
|
||||
: const Color(0xFF4CC793))),
|
||||
: Theme.of(context).primaryColor)),
|
||||
),
|
||||
)),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ class _ReadOverPageState extends State<ReadOverPage> {
|
|||
),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: const Color(0xFF4CC793),
|
||||
color: const Color(0xFF8C68FF),
|
||||
),
|
||||
// labelColor: const Color.fromRGBO(45, 56, 76, 1),
|
||||
indicator: const UnderlineTabIndicator(
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ Widget $reviewedItem({
|
|||
arguments: {'id': jobTaskItem.id, 'name': jobTaskItem.name, 'grade': jobTaskItem.grade,'subject':jobTaskItem.subject, 'completed': true,'tabIndex':tabIndex});
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.only(top: 10.h),
|
||||
padding: EdgeInsets.only(right: 5.w),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(6.r),
|
||||
color: Colors.white,
|
||||
|
|
@ -286,42 +286,39 @@ Widget $reviewedItem({
|
|||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
// 顶部任务名称
|
||||
Padding(
|
||||
padding: padEdg,
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
||||
children: [
|
||||
Container(
|
||||
width: 32.w,
|
||||
height: 18.h,
|
||||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.only(left: 2.w),
|
||||
decoration: BoxDecoration(
|
||||
color: type == 1 ? const Color(0xFF4CC793) : const Color.fromRGBO(255, 175, 56, 1),
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(14.r),
|
||||
topRight: Radius.circular(3.r),
|
||||
bottomLeft: Radius.circular(4.r),
|
||||
bottomRight: Radius.circular(4.r),
|
||||
),
|
||||
children: [
|
||||
Container(
|
||||
width: 32.w,
|
||||
height: 18.h,
|
||||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.only(left: 2.w),
|
||||
decoration: BoxDecoration(
|
||||
color: type == 1 ? const Color(0xFFB2DA93) : const Color(0xFFEF8714),
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(6.r),
|
||||
topRight: Radius.circular(0.r),
|
||||
bottomLeft: Radius.circular(0.r),
|
||||
bottomRight: Radius.circular(12.r),
|
||||
),
|
||||
margin: EdgeInsets.only(top:3.h,right: 4.w),
|
||||
child: quickText(type == 1 ? '作业' : '考试', color: Colors.white, size: 10.sp),
|
||||
),
|
||||
Expanded(
|
||||
child: quickText(jobTaskItem.name, size: 14.sp, color: const Color.fromRGBO(70, 70, 70, 1), maxLines: 2),
|
||||
),
|
||||
if (jobTaskItem.isFixed!)
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 3.r),
|
||||
child: Text(
|
||||
'已订正',
|
||||
style: TextStyle(fontSize: 10.sp, color: const Color(0xFFF16262)),
|
||||
),
|
||||
margin: EdgeInsets.only(top:0.h,right: 4.w),
|
||||
child: quickText(type == 1 ? '作业' : '考试', color: Colors.white, size: 10.sp),
|
||||
),
|
||||
Expanded(
|
||||
child: quickText(jobTaskItem.name, size: 14.sp, color: const Color.fromRGBO(70, 70, 70, 1), maxLines: 2),
|
||||
),
|
||||
if (jobTaskItem.isFixed!)
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 3.r),
|
||||
child: Text(
|
||||
'已订正',
|
||||
style: TextStyle(fontSize: 10.sp, color: const Color(0xFFF16262)),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Padding(
|
||||
|
|
@ -335,21 +332,21 @@ Widget $reviewedItem({
|
|||
size: 10.sp,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
quickText(' / ', color: const Color.fromRGBO(76, 199, 147, 1), size: 10.sp, fontWeight: FontWeight.w500),
|
||||
quickText(' / ', color: const Color(0xFF8C68FF), size: 10.sp, fontWeight: FontWeight.w500),
|
||||
quickText(
|
||||
'参与班级:',
|
||||
color: const Color.fromRGBO(76, 199, 147, 1),
|
||||
color: const Color(0xFF8C68FF),
|
||||
size: 9.sp,
|
||||
),
|
||||
quickText(
|
||||
'${jobTaskItem.classCount}',
|
||||
color: const Color.fromRGBO(76, 199, 147, 1),
|
||||
color: const Color(0xFF8C68FF),
|
||||
size: 10.sp,
|
||||
),
|
||||
quickText(' / ', color: const Color.fromRGBO(116, 145, 253, 1), size: 10.sp, fontWeight: FontWeight.w500),
|
||||
quickText(' / ', color: const Color(0xFF8C68FF), size: 10.sp, fontWeight: FontWeight.w500),
|
||||
quickText(
|
||||
'科目:$subjectName',
|
||||
color: const Color.fromRGBO(116, 145, 253, 1),
|
||||
color: const Color(0xFF8C68FF),
|
||||
size: 9.sp,
|
||||
),
|
||||
],
|
||||
|
|
@ -394,7 +391,7 @@ Widget $reviewedItem({
|
|||
decoration: BoxDecoration(
|
||||
border: Border(right: BorderSide(width: 1.r, color: const Color(0xFFDCDCDC))),
|
||||
),
|
||||
child: quickText('收集订正', color: const Color(0xFF4CC793), size: 11.sp),
|
||||
child: quickText('收集订正', color: const Color(0xFF8C68FF), size: 11.sp),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ class _TaskListItemState extends State<TaskListItem> {
|
|||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.only(left: Utils.isPad() ? 2.w : 3.w),
|
||||
decoration: BoxDecoration(
|
||||
color: const Color(0xFF4CC793),
|
||||
color: const Color(0xFFB2DA93),
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(14.r),
|
||||
topRight: Radius.circular(3.r),
|
||||
|
|
@ -155,167 +155,168 @@ class _TaskListItemState extends State<TaskListItem> {
|
|||
),
|
||||
),
|
||||
)
|
||||
: InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(Routes.annotateClassPage,
|
||||
arguments: {'id': widget.jobTaskItem.id, 'name': widget.jobTaskItem.name, 'grade': widget.jobTaskItem.grade,'subject':widget.jobTaskItem.subject,'tabIndex':widget.tabIndex});
|
||||
},
|
||||
child: Stack(
|
||||
alignment: const FractionalOffset(0.95, 0),
|
||||
children: [
|
||||
Container(
|
||||
color: Colors.transparent,
|
||||
padding: EdgeInsets.only(top: 40.r),
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(bottom: 16.h),
|
||||
padding: EdgeInsets.symmetric(vertical: 16.h,horizontal: 10.w),
|
||||
width: Get.width,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(6.r),
|
||||
color: const Color.fromRGBO(255, 255, 255, 1),
|
||||
boxShadow: const [
|
||||
BoxShadow(
|
||||
color: Color.fromRGBO(210, 216, 241, 1),
|
||||
offset: Offset.zero, //阴影y轴偏移量
|
||||
blurRadius: 5.8, //阴影模糊程度
|
||||
spreadRadius: 0, //阴影扩散程度
|
||||
)
|
||||
],
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
: Padding(
|
||||
padding: EdgeInsets.only(top: 10.r),
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(Routes.annotateClassPage,
|
||||
arguments: {'id': widget.jobTaskItem.id, 'name': widget.jobTaskItem.name, 'grade': widget.jobTaskItem.grade,'subject':widget.jobTaskItem.subject,'tabIndex':widget.tabIndex});
|
||||
},
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(bottom: 16.h),
|
||||
width: Get.width,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(6.r),
|
||||
color: const Color.fromRGBO(255, 255, 255, 1),
|
||||
boxShadow: const [
|
||||
BoxShadow(
|
||||
color: Color.fromRGBO(210, 216, 241, 1),
|
||||
offset: Offset.zero, //阴影y轴偏移量
|
||||
blurRadius: 5.8, //阴影模糊程度
|
||||
spreadRadius: 0, //阴影扩散程度
|
||||
)
|
||||
],
|
||||
),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(height: 10.h),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
width: Utils.isPad() ? 32.w : 38.w,
|
||||
height: 18.h,
|
||||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.only(left: Utils.isPad() ? 2.w : 3.w),
|
||||
decoration: BoxDecoration(
|
||||
color: widget.type == 1 ? const Color(0xFF4CC793) : const Color.fromRGBO(255, 175, 56, 1),
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(14.r),
|
||||
topRight: Radius.circular(3.r),
|
||||
bottomLeft: Radius.circular(4.r),
|
||||
bottomRight: Radius.circular(4.r),
|
||||
),
|
||||
),
|
||||
margin: EdgeInsets.only(top:3.h,right: 4.w),
|
||||
child: quickText(widget.jobTaskItem.assessType == 0?'作业':'考试', color: Colors.white, size: 10.sp),
|
||||
),
|
||||
Expanded(
|
||||
child: quickText(
|
||||
widget.jobTaskItem.name,
|
||||
maxLines: 2,
|
||||
size: Utils.isPad() ? 14.sp : 16.sp,
|
||||
color: const Color.fromRGBO(70, 70, 70, 1),
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
SizedBox(height: 10.h),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
quickText(
|
||||
EnumUtils.formatSubject(widget.jobTaskItem.subject),
|
||||
color: const Color.fromRGBO(97, 97, 97, 1),
|
||||
size: 12.sp,
|
||||
),
|
||||
quickText(' / ', color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp, fontWeight: FontWeight.w500),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
quickText('题量:', color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp),
|
||||
quickText(
|
||||
'${widget.jobTaskItem.questionCount! - widget.jobTaskItem.annotateCount!}',
|
||||
color: const Color.fromRGBO(97, 97, 97, 1),
|
||||
size: 13.sp,
|
||||
),
|
||||
],
|
||||
),
|
||||
quickText(' / ', color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp, fontWeight: FontWeight.w500),
|
||||
quickText(DateTime.parse(widget.jobTaskItem.publishTime).toString().substring(0, 10),
|
||||
color: const Color.fromRGBO(97, 97, 97, 1), size: 12.sp),
|
||||
],
|
||||
),
|
||||
SizedBox(height: 10.h),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
if (!widget.jobTaskItem.isFixed!) {
|
||||
EasyLoading.show(status: 'loading...');
|
||||
widget.collectFun(widget.jobTaskItem);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.symmetric(vertical: 4.r, horizontal: 20.r),
|
||||
decoration: BoxDecoration(
|
||||
color: widget.jobTaskItem.isFixed! ? Color(0xFFF4F4F4) : Color(0xFFF2FFFA),
|
||||
border: Border.all(width: 1.r, color: widget.jobTaskItem.isFixed! ? Colors.transparent : Color(0xFF4CC793)),
|
||||
borderRadius: BorderRadius.all(Radius.circular(20.r)),
|
||||
),
|
||||
child: Text(
|
||||
widget.jobTaskItem.isFixed! ? '已订正' : '收集订正',
|
||||
style: TextStyle(fontSize: 10.sp, color: const Color(0xFF4CC793)),
|
||||
Container(
|
||||
width: Utils.isPad() ? 32.w : 38.w,
|
||||
height: 18.h,
|
||||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.only(left: Utils.isPad() ? 2.w : 3.w),
|
||||
decoration: BoxDecoration(
|
||||
color: widget.type == 1 ? const Color(0xFFB2DA93) : const Color(0xFFEF8714),
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(6.r),
|
||||
topRight: Radius.circular(0.r),
|
||||
bottomLeft: Radius.circular(0.r),
|
||||
bottomRight: Radius.circular(12.r),
|
||||
),
|
||||
),
|
||||
margin: EdgeInsets.only(top:0.h,right: 4.w),
|
||||
child: quickText(widget.jobTaskItem.assessType == 0?'作业':'考试', color: Colors.white, size: 10.sp),
|
||||
),
|
||||
// FavoriteButton(jobTaskItem.id, jobTaskItem.title),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(top: 2.r),
|
||||
child: quickText(
|
||||
widget.jobTaskItem.name,
|
||||
maxLines: 2,
|
||||
size: Utils.isPad() ? 14.sp : 16.sp,
|
||||
color: const Color.fromRGBO(70, 70, 70, 1),
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(width: 130.r,),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: EdgeInsets.all(9.r),
|
||||
decoration: const BoxDecoration(shape: BoxShape.circle, color: Colors.white),
|
||||
child: CircularPercentIndicator(
|
||||
radius: 50.r,
|
||||
lineWidth: 18.r,
|
||||
animation: true,
|
||||
percent: widget.jobTaskItem.annotateRate == null ? 0 : widget.jobTaskItem.annotateRate! / 100,
|
||||
center: Text.rich(TextSpan(children: [
|
||||
TextSpan(
|
||||
text: Utils.getDoubleRemoveZero(widget.jobTaskItem.annotateRate, '0'),
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 16.sp,
|
||||
color: Theme.of(context).primaryColor,
|
||||
),
|
||||
SizedBox(height: 10.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 20.r),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
quickText(
|
||||
EnumUtils.formatSubject(widget.jobTaskItem.subject),
|
||||
color: const Color.fromRGBO(97, 97, 97, 1),
|
||||
size: 12.sp,
|
||||
),
|
||||
quickText(' / ', color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp, fontWeight: FontWeight.w500),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
quickText('题量:', color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp),
|
||||
quickText(
|
||||
'${widget.jobTaskItem.questionCount! - widget.jobTaskItem.annotateCount!}',
|
||||
color: const Color.fromRGBO(97, 97, 97, 1),
|
||||
size: 13.sp,
|
||||
),
|
||||
],
|
||||
),
|
||||
quickText(' / ', color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp, fontWeight: FontWeight.w500),
|
||||
quickText(DateTime.parse(widget.jobTaskItem.publishTime).toString().substring(0, 10),
|
||||
color: const Color.fromRGBO(97, 97, 97, 1), size: 12.sp),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(height: 10.h),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
if (!widget.jobTaskItem.isFixed!) {
|
||||
EasyLoading.show(status: 'loading...');
|
||||
widget.collectFun(widget.jobTaskItem);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.symmetric(vertical: 4.r, horizontal: 20.r),
|
||||
margin: EdgeInsets.only(left: 20.r),
|
||||
decoration: BoxDecoration(
|
||||
color: widget.jobTaskItem.isFixed! ? Color(0xFFF4F4F4) : Color(0xFFF2EEFF),
|
||||
border: Border.all(width: 1.r, color: widget.jobTaskItem.isFixed! ? Colors.transparent : const Color(0xFF8C68FF)),
|
||||
borderRadius: BorderRadius.all(Radius.circular(20.r)),
|
||||
),
|
||||
child: Text(
|
||||
widget.jobTaskItem.isFixed! ? '已订正' : '收集订正',
|
||||
style: TextStyle(fontSize: 10.sp, color: widget.jobTaskItem.isFixed! ?const Color(0xFFF16262): const Color(0xFF8C68FF)),
|
||||
),
|
||||
),
|
||||
),
|
||||
// FavoriteButton(jobTaskItem.id, jobTaskItem.title),
|
||||
],
|
||||
),
|
||||
TextSpan(
|
||||
text: "%",
|
||||
style: TextStyle(color: const Color.fromRGBO(70, 70, 70, 1), fontSize: 12.sp, fontWeight: FontWeight.bold),
|
||||
),
|
||||
])),
|
||||
circularStrokeCap: CircularStrokeCap.round,
|
||||
// progressColor: Theme.of(context).primaryColor,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
tileMode: TileMode.clamp,
|
||||
stops: const [0.0, 1.0],
|
||||
colors: [
|
||||
Theme.of(context).primaryColor.withOpacity(0.1),
|
||||
Theme.of(context).primaryColor,
|
||||
],
|
||||
),
|
||||
backgroundColor: const Color.fromRGBO(244, 244, 244, 1),
|
||||
),
|
||||
SizedBox(width: 10.r,),
|
||||
Container(
|
||||
padding: EdgeInsets.symmetric(vertical: 10.r,horizontal: 9.r),
|
||||
decoration: const BoxDecoration(shape: BoxShape.circle, color: Colors.white),
|
||||
child: CircularPercentIndicator(
|
||||
radius: 50.r,
|
||||
lineWidth: 10.r,
|
||||
animation: true,
|
||||
reverse:true,
|
||||
percent: widget.jobTaskItem.annotateRate == null ? 0 : widget.jobTaskItem.annotateRate! / 100,
|
||||
center: Text.rich(TextSpan(children: [
|
||||
TextSpan(
|
||||
text: Utils.getDoubleRemoveZero(widget.jobTaskItem.annotateRate, '0'),
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 16.sp,
|
||||
color: Theme.of(context).primaryColor,
|
||||
),
|
||||
),
|
||||
TextSpan(
|
||||
text: "%",
|
||||
style: TextStyle(color: Theme.of(context).primaryColor, fontSize: 12.sp, fontWeight: FontWeight.bold),
|
||||
),
|
||||
])),
|
||||
circularStrokeCap: CircularStrokeCap.round,
|
||||
// progressColor: Theme.of(context).primaryColor,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
tileMode: TileMode.clamp,
|
||||
stops: const [0.0, 1.0],
|
||||
colors: [
|
||||
Theme.of(context).primaryColor.withOpacity(0.1),
|
||||
Theme.of(context).primaryColor,
|
||||
],
|
||||
),
|
||||
backgroundColor: const Color.fromRGBO(244, 244, 244, 1),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ class StudentPersonalLogic extends GetxController with RequestToolMixin {
|
|||
void onInit() {
|
||||
super.onInit();
|
||||
state.studentId = Get.arguments['studentId'];
|
||||
state.subject = Get.arguments['subject']??-1;
|
||||
state.homeworkId = Get.arguments['homeworkId'];
|
||||
getInfo();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,5 +8,6 @@ class StudentPersonalState {
|
|||
}
|
||||
late Rx<StudentPersonalInfo> studentInfo = Rx(StudentPersonalInfo(0, '', 0, 0, [], 0, []));
|
||||
late int studentId;
|
||||
late int subject;
|
||||
late String homeworkId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
|
|||
// RouterManager.router.navigateTo(context,
|
||||
// '${RouterManager.jobPersonalDetailPath}?studentId=${widget.studentId}&studentName=${Uri.encodeComponent(state.studentInfo.studentName!)}');
|
||||
Get.toNamed(Routes.studentWorkDetailPage,
|
||||
arguments: {'studentId': state.studentInfo.value.studentId, 'studentName': state.studentInfo.value.studentName});
|
||||
arguments: {'studentId': state.studentInfo.value.studentId, 'studentName': state.studentInfo.value.studentName,'subject':state.subject});
|
||||
},
|
||||
child: Container(
|
||||
width: 93.r,
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: state.isJob.value
|
||||
? Color(0xFF4CC793)
|
||||
? Theme.of(context).primaryColor
|
||||
: Color(0xFF505E6E)),
|
||||
));
|
||||
}),
|
||||
|
|
@ -104,7 +104,7 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: !state.isJob.value
|
||||
? Color(0xFF4CC793)
|
||||
? Theme.of(context).primaryColor
|
||||
: Color(0xFF505E6E)),
|
||||
);
|
||||
})),
|
||||
|
|
@ -128,24 +128,24 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
'总览:',
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: Color(0xFF4CC793),
|
||||
color: Theme.of(context).primaryColor,
|
||||
fontWeight: FontWeight.w600),
|
||||
),
|
||||
ProgressBar(
|
||||
title: '客观题正确率:',
|
||||
color: Color.fromRGBO(76, 199, 147, 0.36),
|
||||
color:Theme.of(context).primaryColor,
|
||||
percent: state.studentData.value.kgtCorrectRate / 100,
|
||||
padingEdg: EdgeInsets.zero,
|
||||
marginEdg: EdgeInsets.only(top: 8.h)),
|
||||
ProgressBar(
|
||||
title: '主观题正确率:',
|
||||
color: Color.fromRGBO(76, 199, 147, 0.36),
|
||||
color: Theme.of(context).primaryColor,
|
||||
percent: state.studentData.value.zgtCorrectRate / 100,
|
||||
padingEdg: EdgeInsets.zero,
|
||||
marginEdg: EdgeInsets.only(top: 8.h)),
|
||||
ProgressBar(
|
||||
title: '总正确率:',
|
||||
color: Color.fromRGBO(76, 199, 147, 0.36),
|
||||
color: Theme.of(context).primaryColor,
|
||||
percent: state.studentData.value.correctRate / 100,
|
||||
padingEdg: EdgeInsets.zero,
|
||||
marginEdg: EdgeInsets.only(top: 8.h)),
|
||||
|
|
@ -222,7 +222,7 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(5.r)),
|
||||
// color: Color(0xFF4CC793),
|
||||
border: Border.all(width: 1.r, color: Color(0xFF4CC793)),
|
||||
border: Border.all(width: 1.r, color: Theme.of(context).primaryColor),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
|
|
@ -333,7 +333,8 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
Get.toNamed(Routes.studentPersonalPage,
|
||||
arguments: {
|
||||
'homeworkId': item.id,
|
||||
'studentId': state.studentId
|
||||
'studentId': state.studentId,
|
||||
'subject':item.subject
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
|
|
@ -360,21 +361,15 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
children: [
|
||||
Container(
|
||||
width: 32.w,
|
||||
height: 18.h,
|
||||
height: 22.h,
|
||||
alignment: Alignment.center,
|
||||
padding: EdgeInsets.only(left: 2.w),
|
||||
// padding: EdgeInsets.only(left: 2.w),
|
||||
decoration: BoxDecoration(
|
||||
color: state.isJob.value
|
||||
? const Color.fromRGBO(
|
||||
104, 136, 253, 1)
|
||||
? Theme.of(context).primaryColor
|
||||
: const Color(0xFFFFA116),
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(14.r),
|
||||
topRight: Radius.circular(3.r),
|
||||
bottomLeft:
|
||||
Radius.circular(4.r),
|
||||
bottomRight:
|
||||
Radius.circular(4.r),
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(5.r)
|
||||
),
|
||||
),
|
||||
margin: EdgeInsets.only(right: 4.w),
|
||||
|
|
@ -403,7 +398,7 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
Radius.circular(4.r)),
|
||||
border: Border.all(
|
||||
width: 1.r,
|
||||
color: Color(0xFF4CC793)),
|
||||
color: Theme.of(context).primaryColor),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
|
|
@ -411,7 +406,7 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
item.subject),
|
||||
style: TextStyle(
|
||||
fontSize: 10.sp,
|
||||
color: Color(0xFF4CC793)),
|
||||
color: Theme.of(context).primaryColor),
|
||||
)),
|
||||
),
|
||||
],
|
||||
|
|
@ -455,7 +450,7 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
color: subjective.state == 0
|
||||
? Color(0xFFDDDDDD)
|
||||
: subjective.state == 3
|
||||
? Color(0xFF4CC793)
|
||||
?Theme.of(context).primaryColor
|
||||
: subjective.state == 2
|
||||
? Color(0xFFFF7474)
|
||||
: Color(0xFF666666)),
|
||||
|
|
@ -473,8 +468,7 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
0xFFDDDDDD)
|
||||
: subjective.state ==
|
||||
3
|
||||
? Color(
|
||||
0xFF4CC793)
|
||||
? Theme.of(context).primaryColor
|
||||
: subjective.state ==
|
||||
2
|
||||
? Color(
|
||||
|
|
@ -533,7 +527,7 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
color: subjective.state == 0
|
||||
? Color(0xFFDDDDDD)
|
||||
: subjective.state == 3
|
||||
? Color(0xFF4CC793)
|
||||
? Theme.of(context).primaryColor
|
||||
: subjective.state == 2
|
||||
? Color(0xFFFF7474)
|
||||
: Color(0xFF666666)),
|
||||
|
|
@ -551,8 +545,7 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
0xFFDDDDDD)
|
||||
: subjective.state ==
|
||||
3
|
||||
? Color(
|
||||
0xFF4CC793)
|
||||
? Theme.of(context).primaryColor
|
||||
: subjective.state ==
|
||||
2
|
||||
? Color(
|
||||
|
|
@ -574,19 +567,19 @@ class _StudentWorkDetailPageState extends State<StudentWorkDetailPage> {
|
|||
),
|
||||
ProgressBar(
|
||||
title: '客观题正确率:',
|
||||
color: Color(0xFF90E0BE),
|
||||
color: Color(0xFFB2DA93),
|
||||
percent: item.kgtCorrectRate / 100,
|
||||
padingEdg: EdgeInsets.zero,
|
||||
marginEdg: EdgeInsets.only(top: 8.h)),
|
||||
ProgressBar(
|
||||
title: '主观题正确率:',
|
||||
color: Color(0xFF90E0BE),
|
||||
color: Color(0xFFB2DA93),
|
||||
percent: item.zgtCorrectRate / 100,
|
||||
padingEdg: EdgeInsets.zero,
|
||||
marginEdg: EdgeInsets.only(top: 8.h)),
|
||||
ProgressBar(
|
||||
title: '总正确率:',
|
||||
color: Color(0xFF90E0BE),
|
||||
color: Color(0xFFB2DA93),
|
||||
percent: item.correctRate / 100,
|
||||
padingEdg: EdgeInsets.zero,
|
||||
marginEdg: EdgeInsets.only(top: 8.h)),
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ class _PersonalDetailTopBarState extends State<PersonalDetailTopBar> {
|
|||
labelStyle: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: const Color(0xFF4CC793),
|
||||
color: const Color(0xFF8C68FF),
|
||||
),
|
||||
isScrollable: true,
|
||||
labelColor: const Color(0xFF4CC793),
|
||||
labelColor:const Color(0xFF8C68FF),
|
||||
unselectedLabelColor: const Color(0xFF505E6E),
|
||||
padding: EdgeInsets.symmetric(horizontal: 14.r),
|
||||
// indicatorSize: TabBarIndicatorSize.label, // 设置指示器高度和标签一样高
|
||||
|
|
@ -44,7 +44,7 @@ class _PersonalDetailTopBarState extends State<PersonalDetailTopBar> {
|
|||
indicator: UnderlineTabIndicator(
|
||||
borderSide: BorderSide(
|
||||
width: 2.r,
|
||||
color:const Color(0xFF4CC793)
|
||||
color:const Color(0xFF8C68FF)
|
||||
),
|
||||
),
|
||||
tabs: <Widget>[
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class StudentGroupList extends StatelessWidget {
|
|||
padding: EdgeInsets.only(right: 8.r),
|
||||
child: Text(
|
||||
'${EnumUtils.formatGrade(item.grade)}${item.className}',
|
||||
style: TextStyle(fontSize: 10.sp, color: Color(0xFF4CC793)),
|
||||
style: TextStyle(fontSize: 10.sp, color:Theme.of(context).primaryColor),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
|
|
@ -72,7 +72,7 @@ class StudentGroupList extends StatelessWidget {
|
|||
width: 55.r,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(20.r)),
|
||||
color: const Color(0xFF4CC793),
|
||||
color: Theme.of(context).primaryColor,
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
|
|
@ -109,7 +109,7 @@ class StudentGroupList extends StatelessWidget {
|
|||
padding: EdgeInsets.only(right: 8.r),
|
||||
child: Text(
|
||||
'${EnumUtils.formatGrade(item.grade)}${item.className}',
|
||||
style: TextStyle(fontSize: 14.sp, color: Color(0xFF4CC793)),
|
||||
style: TextStyle(fontSize: 14.sp, color: Theme.of(context).primaryColor),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
|
|
@ -136,7 +136,7 @@ class StudentGroupList extends StatelessWidget {
|
|||
width: 55.r,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(20.r)),
|
||||
color: const Color(0xFF4CC793),
|
||||
color: Theme.of(context).primaryColor,
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
|
|
|
|||
Loading…
Reference in New Issue