Compare commits
No commits in common. "96203b02ae65bbbea1bc9ce4c44790e553896e5c" and "9c66503154bde5898e0035d270ab03e0c89b5337" have entirely different histories.
96203b02ae
...
9c66503154
|
|
@ -209,5 +209,3 @@ marking_app/lib/common/model/job/job_favorite_item_model.g.dart
|
||||||
marking_app/lib/pages/homework_correction/pages/job_favorite.g.dart
|
marking_app/lib/pages/homework_correction/pages/job_favorite.g.dart
|
||||||
marking_app/lib/common/model/job/job_fav_student.g.dart
|
marking_app/lib/common/model/job/job_fav_student.g.dart
|
||||||
marking_app/lib/common/model/job/job_data_report.g.dart
|
marking_app/lib/common/model/job/job_data_report.g.dart
|
||||||
marking_app/lib/common/model/job/job_student_history.g.dart
|
|
||||||
marking_app/lib/pages/homework_correction/job_personal_detail.g.dart
|
|
||||||
|
|
|
||||||
|
|
@ -352,7 +352,7 @@
|
||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 20;
|
CURRENT_PROJECT_VERSION = 18;
|
||||||
DEVELOPMENT_TEAM = CYDU583KN6;
|
DEVELOPMENT_TEAM = CYDU583KN6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
|
@ -360,7 +360,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.102;
|
MARKETING_VERSION = 1.0.98;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
|
|
@ -490,7 +490,7 @@
|
||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 20;
|
CURRENT_PROJECT_VERSION = 18;
|
||||||
DEVELOPMENT_TEAM = CYDU583KN6;
|
DEVELOPMENT_TEAM = CYDU583KN6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
|
@ -498,7 +498,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.102;
|
MARKETING_VERSION = 1.0.98;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
|
|
@ -520,7 +520,7 @@
|
||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 20;
|
CURRENT_PROJECT_VERSION = 18;
|
||||||
DEVELOPMENT_TEAM = CYDU583KN6;
|
DEVELOPMENT_TEAM = CYDU583KN6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
|
@ -528,7 +528,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.102;
|
MARKETING_VERSION = 1.0.98;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:functional_widget_annotation/functional_widget_annotation.dart';
|
import 'package:functional_widget_annotation/functional_widget_annotation.dart';
|
||||||
import 'package:marking_app/common/mixin/common.dart';
|
import 'package:marking_app/common/mixin/common.dart';
|
||||||
|
|
@ -16,19 +15,20 @@ import 'package:marking_app/utils/request/rest_client.dart';
|
||||||
import 'package:percent_indicator/percent_indicator.dart';
|
import 'package:percent_indicator/percent_indicator.dart';
|
||||||
import 'package:syncfusion_flutter_datepicker/datepicker.dart';
|
import 'package:syncfusion_flutter_datepicker/datepicker.dart';
|
||||||
|
|
||||||
part 'job_personal_detail.g.dart';
|
|
||||||
|
|
||||||
class JobPersonalDetail extends StatefulWidget {
|
class JobPersonalDetail extends StatefulWidget {
|
||||||
final String studentName;
|
final String studentName;
|
||||||
final int studentId;
|
final int studentId;
|
||||||
|
|
||||||
const JobPersonalDetail({Key? key, required this.studentName, required this.studentId}) : super(key: key);
|
const JobPersonalDetail(
|
||||||
|
{Key? key, required this.studentName, required this.studentId})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_JobPersonalDetailState createState() => _JobPersonalDetailState();
|
_JobPersonalDetailState createState() => _JobPersonalDetailState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin, TickerProviderStateMixin {
|
class _JobPersonalDetailState extends State<JobPersonalDetail>
|
||||||
|
with CommonMixin, TickerProviderStateMixin {
|
||||||
@override
|
@override
|
||||||
int page = 1;
|
int page = 1;
|
||||||
int pageSize = 10;
|
int pageSize = 10;
|
||||||
|
|
@ -60,7 +60,8 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
void getList() async {
|
void getList() async {
|
||||||
RestClient _client = await getClient();
|
RestClient _client = await getClient();
|
||||||
BaseStructureResult<JobStudentHistory> res =
|
BaseStructureResult<JobStudentHistory> res =
|
||||||
await _client.getStudentJobHistory(widget.studentId, !isJob, startDataTime, endDataTime, page, pageSize);
|
await _client.getStudentJobHistory(widget.studentId, !isJob,
|
||||||
|
startDataTime, endDataTime, page, pageSize);
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
res.data!.pagedList.items.forEach((element) {
|
res.data!.pagedList.items.forEach((element) {
|
||||||
int num = 0;
|
int num = 0;
|
||||||
|
|
@ -74,7 +75,8 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
num = num + 1;
|
num = num + 1;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (num == (element.objectiveDtls.length + element.subjectiveDtls.length)) {
|
if (num ==
|
||||||
|
(element.objectiveDtls.length + element.subjectiveDtls.length)) {
|
||||||
element.allNotDone = true;
|
element.allNotDone = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -104,7 +106,8 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
backgroundColor: Color.fromRGBO(245, 245, 245, 1),
|
backgroundColor: Color.fromRGBO(245, 245, 245, 1),
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
title: Text('${widget.studentName}作业详情', style: TextStyle(fontSize: 14.sp, color: Color(0xFF333333))),
|
title: Text('${widget.studentName}作业详情',
|
||||||
|
style: TextStyle(fontSize: 14.sp, color: Color(0xFF333333))),
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
icon: Icon(Icons.arrow_back_ios, color: Colors.black),
|
icon: Icon(Icons.arrow_back_ios, color: Colors.black),
|
||||||
|
|
@ -140,7 +143,9 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
'作业',
|
'作业',
|
||||||
style: TextStyle(fontSize: 14.sp, color: isJob ? Color(0xFF7491FD) : Color(0xFF505E6E)),
|
style: TextStyle(
|
||||||
|
fontSize: 14.sp,
|
||||||
|
color: isJob ? Color(0xFF7491FD) : Color(0xFF505E6E)),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -165,7 +170,10 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
'考试',
|
'考试',
|
||||||
style: TextStyle(fontSize: 14.sp, color: !isJob ? Color(0xFF7491FD) : Color(0xFF505E6E)),
|
style: TextStyle(
|
||||||
|
fontSize: 14.sp,
|
||||||
|
color:
|
||||||
|
!isJob ? Color(0xFF7491FD) : Color(0xFF505E6E)),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -173,16 +181,17 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
margin: EdgeInsets.symmetric(vertical: 10.r, horizontal: 14.r),
|
margin: EdgeInsets.symmetric(
|
||||||
padding: EdgeInsets.only(top: 10.r, left: 10.r, right: 10.r, bottom: 10.r),
|
vertical: 10.r, horizontal: 14.r),
|
||||||
decoration: BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(10.r)), color: Colors.white),
|
padding: EdgeInsets.only(top: 10.r,left: 10.r,right: 10.r,bottom: 10.r),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(10.r)),
|
||||||
|
color: Colors.white),
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text('总览:',style: TextStyle(fontSize: 12.sp,color: Color(0xFF7491FD),fontWeight: FontWeight.w600),),
|
||||||
'总览:',
|
|
||||||
style: TextStyle(fontSize: 12.sp, color: Color(0xFF7491FD), fontWeight: FontWeight.w600),
|
|
||||||
),
|
|
||||||
progressBar(context,
|
progressBar(context,
|
||||||
title: '客观题正确率:',
|
title: '客观题正确率:',
|
||||||
color: Color(0xFFB8C7FF),
|
color: Color(0xFFB8C7FF),
|
||||||
|
|
@ -213,11 +222,16 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
jobType: isJob ? 1 : 2,
|
jobType: isJob ? 1 : 2,
|
||||||
customTimeStr: customTimeStr,
|
customTimeStr: customTimeStr,
|
||||||
customTime: tabController.index != 3 ||
|
customTime: tabController.index != 3 ||
|
||||||
((endDataTime == null || endDataTime == '') && (startDataTime == null || startDataTime == ''))
|
((endDataTime == null || endDataTime == '') &&
|
||||||
|
(startDataTime == null || startDataTime == ''))
|
||||||
? null
|
? null
|
||||||
: PickerDateRange(
|
: PickerDateRange(
|
||||||
startDataTime == null || startDataTime == '' ? null : DateTime.parse(startDataTime!),
|
startDataTime == null || startDataTime == ''
|
||||||
endDataTime == null || endDataTime == '' ? null : DateTime.parse(endDataTime!),
|
? null
|
||||||
|
: DateTime.parse(startDataTime!),
|
||||||
|
endDataTime == null || endDataTime == ''
|
||||||
|
? null
|
||||||
|
: DateTime.parse(endDataTime!),
|
||||||
), onTimeFilter: (String? startTime, String? endTime) {
|
), onTimeFilter: (String? startTime, String? endTime) {
|
||||||
EasyLoading.show(status: 'loading...');
|
EasyLoading.show(status: 'loading...');
|
||||||
if (startTime == null && endTime == null) {
|
if (startTime == null && endTime == null) {
|
||||||
|
|
@ -239,74 +253,71 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
// _refreshController2.callRefresh();
|
// _refreshController2.callRefresh();
|
||||||
}, refreshTime: (value) {
|
}, refreshTime: (value) {
|
||||||
if (value != null && value.startDate != null) {
|
if (value != null && value.startDate != null) {
|
||||||
customTimeStr = value.startDate?.toString().substring(0, 10) ?? '';
|
customTimeStr =
|
||||||
|
value.startDate?.toString().substring(0, 10) ?? '';
|
||||||
setState(() {});
|
setState(() {});
|
||||||
if (value.endDate != null) {
|
if (value.endDate != null) {
|
||||||
if (!isPad() && value.startDate!.year == value.endDate!.year) {
|
if (!isPad() && value.startDate!.year == value.endDate!.year) {
|
||||||
customTimeStr =
|
customTimeStr = value.startDate.toString().substring(5, 10) +
|
||||||
value.startDate.toString().substring(5, 10) + '~${value.endDate.toString().substring(5, 10)}';
|
'~${value.endDate.toString().substring(5, 10)}';
|
||||||
setState(() {});
|
setState(() {});
|
||||||
} else {
|
} else {
|
||||||
customTimeStr = '$customTimeStr~${value.endDate?.toString().substring(0, 10)}';
|
customTimeStr =
|
||||||
|
'$customTimeStr~${value.endDate?.toString().substring(0, 10)}';
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(top: 14.r, right: 14.r),
|
padding: EdgeInsets.only(top: 14.r,right: 14.r),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'注:',
|
'注:',
|
||||||
style: TextStyle(fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
style: TextStyle(
|
||||||
|
fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
width: 10.r,
|
width:10.r,
|
||||||
height: 10.r,
|
height: 10.r,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(5.r)),
|
borderRadius: BorderRadius.all(Radius.circular(5.r)),
|
||||||
// color: Color(0xFF4CC793),
|
// color: Color(0xFF4CC793),
|
||||||
border: Border.all(width: 1.r, color: Color(0xFF4CC793)),
|
border: Border.all(width: 1.r,color: Color(0xFF4CC793)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(width: 2.r,),
|
||||||
width: 2.r,
|
|
||||||
),
|
|
||||||
Text(
|
Text(
|
||||||
'正确',
|
'正确',
|
||||||
style: TextStyle(fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
style: TextStyle(
|
||||||
),
|
fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
||||||
SizedBox(
|
|
||||||
width: 15.r,
|
|
||||||
),
|
),
|
||||||
|
SizedBox(width: 15.r,),
|
||||||
Container(
|
Container(
|
||||||
width: 10.r,
|
width:10.r,
|
||||||
height: 10.r,
|
height: 10.r,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(5.r)),
|
borderRadius: BorderRadius.all(Radius.circular(5.r)),
|
||||||
// color: Color(0xFFFF7474),
|
// color: Color(0xFFFF7474),
|
||||||
border: Border.all(width: 1.r, color: Color(0xFFFF7474)),
|
border: Border.all(width: 1.r,color: Color(0xFFFF7474)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(width: 2.r,),
|
||||||
width: 2.r,
|
|
||||||
),
|
|
||||||
Text(
|
Text(
|
||||||
'错误',
|
'错误',
|
||||||
style: TextStyle(fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
style: TextStyle(
|
||||||
),
|
fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
||||||
SizedBox(
|
|
||||||
width: 15.r,
|
|
||||||
),
|
),
|
||||||
|
SizedBox(width: 15.r,),
|
||||||
Container(
|
Container(
|
||||||
width: 10.r,
|
width:10.r,
|
||||||
height: 10.r,
|
height: 10.r,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(5.r)),
|
borderRadius: BorderRadius.all(Radius.circular(5.r)),
|
||||||
// color: Color(0xFF666666),
|
// color: Color(0xFF666666),
|
||||||
border: Border.all(width: 1.r, color: Color(0xFF666666)),
|
border: Border.all(width: 1.r,color: Color(0xFF666666)),
|
||||||
// border: Border.all(width: 1.r,color: Colors.grey),
|
// border: Border.all(width: 1.r,color: Colors.grey),
|
||||||
/* boxShadow: [
|
/* boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
|
|
@ -318,31 +329,27 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
],*/
|
],*/
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(width: 2.r,),
|
||||||
width: 2.r,
|
|
||||||
),
|
|
||||||
Text(
|
Text(
|
||||||
'已作答未批阅',
|
'已作答未批阅',
|
||||||
style: TextStyle(fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
style: TextStyle(
|
||||||
),
|
fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
||||||
SizedBox(
|
|
||||||
width: 15.r,
|
|
||||||
),
|
),
|
||||||
|
SizedBox(width: 15.r,),
|
||||||
Container(
|
Container(
|
||||||
width: 10.r,
|
width:10.r,
|
||||||
height: 10.r,
|
height: 10.r,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(5.r)),
|
borderRadius: BorderRadius.all(Radius.circular(5.r)),
|
||||||
border: Border.all(width: 1.r, color: Color(0xFFDDDDDD)),
|
border: Border.all(width: 1.r,color: Color(0xFFDDDDDD)),
|
||||||
// color: Color(0xFFDDDDDD),
|
// color: Color(0xFFDDDDDD),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(width: 2.r,),
|
||||||
width: 2.r,
|
|
||||||
),
|
|
||||||
Text(
|
Text(
|
||||||
'未做',
|
'未做',
|
||||||
style: TextStyle(fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
style: TextStyle(
|
||||||
|
fontSize: 8.sp, color: Color(0xFF8B8B8B)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -376,7 +383,7 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
Items item = dataList[index];
|
Items item = dataList[index];
|
||||||
return InkWell(
|
return InkWell(
|
||||||
onTap: () {
|
onTap: (){
|
||||||
/* RouterManager.router.navigateTo(
|
/* RouterManager.router.navigateTo(
|
||||||
context,
|
context,
|
||||||
RouterManager.quickDataCheckPath +
|
RouterManager.quickDataCheckPath +
|
||||||
|
|
@ -391,11 +398,16 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
margin: EdgeInsets.symmetric(vertical: 5.r, horizontal: 14.r),
|
margin: EdgeInsets.symmetric(
|
||||||
padding: EdgeInsets.symmetric(vertical: 14.r, horizontal: 10.r),
|
vertical: 5.r, horizontal: 14.r),
|
||||||
|
padding: EdgeInsets.symmetric(
|
||||||
|
vertical: 14.r, horizontal: 10.r),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(10.r)),
|
borderRadius:
|
||||||
color: item.allNotDone ? Color(0xFFFFEDD3) : Colors.white),
|
BorderRadius.all(Radius.circular(10.r)),
|
||||||
|
color: item.allNotDone
|
||||||
|
? Color(0xFFFFEDD3)
|
||||||
|
: Colors.white),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
|
@ -410,7 +422,10 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
padding: EdgeInsets.only(left: 2.w),
|
padding: EdgeInsets.only(left: 2.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: isJob ? const Color.fromRGBO(104, 136, 253, 1) : Color(0xFFFFA116),
|
color: isJob
|
||||||
|
? const Color.fromRGBO(
|
||||||
|
104, 136, 253, 1)
|
||||||
|
: Color(0xFFFFA116),
|
||||||
borderRadius: BorderRadius.only(
|
borderRadius: BorderRadius.only(
|
||||||
topLeft: Radius.circular(14.r),
|
topLeft: Radius.circular(14.r),
|
||||||
topRight: Radius.circular(3.r),
|
topRight: Radius.circular(3.r),
|
||||||
|
|
@ -421,13 +436,17 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
margin: EdgeInsets.only(right: 4.w),
|
margin: EdgeInsets.only(right: 4.w),
|
||||||
child: Text(
|
child: Text(
|
||||||
isJob ? '作业' : '考试',
|
isJob ? '作业' : '考试',
|
||||||
style: TextStyle(fontSize: 10.sp, color: Colors.white),
|
style: TextStyle(
|
||||||
|
fontSize: 10.sp,
|
||||||
|
color: Colors.white),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
item.name,
|
item.name,
|
||||||
style: TextStyle(fontSize: 12.sp, color: Color(0xFF464646)),
|
style: TextStyle(
|
||||||
|
fontSize: 12.sp,
|
||||||
|
color: Color(0xFF464646)),
|
||||||
)),
|
)),
|
||||||
// SizedBox(width: 5.r,),
|
// SizedBox(width: 5.r,),
|
||||||
// Text('2024.1',style: TextStyle(fontSize: 12.sp,color: Color(0xFF5B5B5B)),),
|
// Text('2024.1',style: TextStyle(fontSize: 12.sp,color: Color(0xFF5B5B5B)),),
|
||||||
|
|
@ -436,13 +455,18 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
width: 40.r,
|
width: 40.r,
|
||||||
height: 20.r,
|
height: 20.r,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(4.r)),
|
borderRadius: BorderRadius.all(
|
||||||
border: Border.all(width: 1.r, color: Color(0xFF4CC793)),
|
Radius.circular(4.r)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.r,
|
||||||
|
color: Color(0xFF4CC793)),
|
||||||
),
|
),
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
item.subjectName,
|
item.subjectName,
|
||||||
style: TextStyle(fontSize: 10.sp, color: Color(0xFF4CC793)),
|
style: TextStyle(
|
||||||
|
fontSize: 10.sp,
|
||||||
|
color: Color(0xFF4CC793)),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -455,7 +479,9 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'客:',
|
'客:',
|
||||||
style: TextStyle(fontSize: 12.sp, color: Color(0xFF5B5B5B)),
|
style: TextStyle(
|
||||||
|
fontSize: 12.sp,
|
||||||
|
color: Color(0xFF5B5B5B)),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 5.r,
|
width: 5.r,
|
||||||
|
|
@ -467,8 +493,11 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
alignment: WrapAlignment.start,
|
alignment: WrapAlignment.start,
|
||||||
spacing: 8,
|
spacing: 8,
|
||||||
runSpacing: 5,
|
runSpacing: 5,
|
||||||
children: List.generate(item.objectiveDtls.length, (i) {
|
children: List.generate(
|
||||||
SubjectiveDtls subjective = item.objectiveDtls[i];
|
item.objectiveDtls.length,
|
||||||
|
(i) {
|
||||||
|
SubjectiveDtls subjective =
|
||||||
|
item.objectiveDtls[i];
|
||||||
return Container(
|
return Container(
|
||||||
width: 20.r,
|
width: 20.r,
|
||||||
height: 20.r,
|
height: 20.r,
|
||||||
|
|
@ -476,26 +505,44 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
width: 1.r,
|
width: 1.r,
|
||||||
color: subjective.state == 0
|
color: subjective
|
||||||
? Color(0xFFDDDDDD)
|
.state ==
|
||||||
: subjective.state == 3
|
0
|
||||||
? Color(0xFF666666)
|
? Color(
|
||||||
: subjective.state == 1
|
0xFFDDDDDD)
|
||||||
? Color(0xFFFF7474)
|
: subjective.state ==
|
||||||
: Color(0xFF4CC793)),
|
3
|
||||||
borderRadius: BorderRadius.all(Radius.circular(10.r))),
|
? Color(
|
||||||
|
0xFF666666)
|
||||||
|
: subjective.state ==
|
||||||
|
1
|
||||||
|
? Color(
|
||||||
|
0xFFFF7474)
|
||||||
|
: Color(
|
||||||
|
0xFF4CC793)),
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(
|
||||||
|
Radius.circular(
|
||||||
|
10.r))),
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
subjective.questionNo,
|
subjective.questionNo,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 10.r,
|
fontSize: 10.r,
|
||||||
color: subjective.state == 0
|
color: subjective
|
||||||
|
.state ==
|
||||||
|
0
|
||||||
? Color(0xFFDDDDDD)
|
? Color(0xFFDDDDDD)
|
||||||
: subjective.state == 3
|
: subjective.state ==
|
||||||
? Color(0xFF666666)
|
3
|
||||||
: subjective.state == 1
|
? Color(
|
||||||
? Color(0xFFFF7474)
|
0xFF666666)
|
||||||
: Color(0xFF4CC793)),
|
: subjective.state ==
|
||||||
|
1
|
||||||
|
? Color(
|
||||||
|
0xFFFF7474)
|
||||||
|
: Color(
|
||||||
|
0xFF4CC793)),
|
||||||
)),
|
)),
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
@ -503,7 +550,9 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
)
|
)
|
||||||
: Text(
|
: Text(
|
||||||
'无',
|
'无',
|
||||||
style: TextStyle(fontSize: 12.sp, color: Color(0xFF5B5B5B)),
|
style: TextStyle(
|
||||||
|
fontSize: 12.sp,
|
||||||
|
color: Color(0xFF5B5B5B)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -515,7 +564,9 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'主:',
|
'主:',
|
||||||
style: TextStyle(fontSize: 12.sp, color: Color(0xFF5B5B5B)),
|
style: TextStyle(
|
||||||
|
fontSize: 12.sp,
|
||||||
|
color: Color(0xFF5B5B5B)),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 5.r,
|
width: 5.r,
|
||||||
|
|
@ -527,8 +578,11 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
alignment: WrapAlignment.start,
|
alignment: WrapAlignment.start,
|
||||||
spacing: 8,
|
spacing: 8,
|
||||||
runSpacing: 5,
|
runSpacing: 5,
|
||||||
children: List.generate(item.subjectiveDtls.length, (i) {
|
children: List.generate(
|
||||||
SubjectiveDtls subjective = item.subjectiveDtls[i];
|
item.subjectiveDtls.length,
|
||||||
|
(i) {
|
||||||
|
SubjectiveDtls subjective =
|
||||||
|
item.subjectiveDtls[i];
|
||||||
return Container(
|
return Container(
|
||||||
width: 20.r,
|
width: 20.r,
|
||||||
height: 20.r,
|
height: 20.r,
|
||||||
|
|
@ -536,26 +590,44 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
width: 1.r,
|
width: 1.r,
|
||||||
color: subjective.state == 0
|
color: subjective
|
||||||
? Color(0xFFDDDDDD)
|
.state ==
|
||||||
: subjective.state == 3
|
0
|
||||||
? Color(0xFF666666)
|
? Color(
|
||||||
: subjective.state == 1
|
0xFFDDDDDD)
|
||||||
? Color(0xFFFF7474)
|
: subjective.state ==
|
||||||
: Color(0xFF4CC793)),
|
3
|
||||||
borderRadius: BorderRadius.all(Radius.circular(10.r))),
|
? Color(
|
||||||
|
0xFF666666)
|
||||||
|
: subjective.state ==
|
||||||
|
1
|
||||||
|
? Color(
|
||||||
|
0xFFFF7474)
|
||||||
|
: Color(
|
||||||
|
0xFF4CC793)),
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(
|
||||||
|
Radius.circular(
|
||||||
|
10.r))),
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
subjective.questionNo,
|
subjective.questionNo,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 10.r,
|
fontSize: 10.r,
|
||||||
color: subjective.state == 0
|
color: subjective
|
||||||
|
.state ==
|
||||||
|
0
|
||||||
? Color(0xFFDDDDDD)
|
? Color(0xFFDDDDDD)
|
||||||
: subjective.state == 3
|
: subjective.state ==
|
||||||
? Color(0xFF666666)
|
3
|
||||||
: subjective.state == 1
|
? Color(
|
||||||
? Color(0xFFFF7474)
|
0xFF666666)
|
||||||
: Color(0xFF4CC793)),
|
: subjective.state ==
|
||||||
|
1
|
||||||
|
? Color(
|
||||||
|
0xFFFF7474)
|
||||||
|
: Color(
|
||||||
|
0xFF4CC793)),
|
||||||
)),
|
)),
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
@ -563,7 +635,9 @@ class _JobPersonalDetailState extends State<JobPersonalDetail> with CommonMixin,
|
||||||
)
|
)
|
||||||
: Text(
|
: Text(
|
||||||
'无',
|
'无',
|
||||||
style: TextStyle(fontSize: 12.sp, color: Color(0xFF5B5B5B)),
|
style: TextStyle(
|
||||||
|
fontSize: 12.sp,
|
||||||
|
color: Color(0xFF5B5B5B)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -621,7 +695,8 @@ Widget progressBar(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
if (title == '总正确率:') quickText('确率', color: Colors.transparent, size: fontSize),
|
if (title == '总正确率:')
|
||||||
|
quickText('确率', color: Colors.transparent, size: fontSize),
|
||||||
quickText(title, color: Color(0xFF8B8B8B), size: fontSize),
|
quickText(title, color: Color(0xFF8B8B8B), size: fontSize),
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 1,
|
flex: 1,
|
||||||
|
|
@ -686,7 +761,8 @@ Widget jobConditionFilter(BuildContext context,
|
||||||
var customTimeState = PickerDateRange(null, null);
|
var customTimeState = PickerDateRange(null, null);
|
||||||
print('customTime=${customTime}');
|
print('customTime=${customTime}');
|
||||||
if (customTime != null) {
|
if (customTime != null) {
|
||||||
customTimeState = PickerDateRange(customTime!.startDate != null ? customTime!.startDate : null,
|
customTimeState = PickerDateRange(
|
||||||
|
customTime!.startDate != null ? customTime!.startDate : null,
|
||||||
customTime!.endDate != null ? customTime!.endDate : null);
|
customTime!.endDate != null ? customTime!.endDate : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -722,7 +798,9 @@ Widget jobConditionFilter(BuildContext context,
|
||||||
nextMonth = 1;
|
nextMonth = 1;
|
||||||
now = now.add(Duration(days: 31 - now.day)); // 跨年了,所以加到当前月的最后一天
|
now = now.add(Duration(days: 31 - now.day)); // 跨年了,所以加到当前月的最后一天
|
||||||
} else {
|
} else {
|
||||||
now = now.add(Duration(days: DateTime(now.year, nextMonth, 0).day - now.day)); // 加到下个月的第一天的前一天,即本月最后一天
|
now = now.add(Duration(
|
||||||
|
days: DateTime(now.year, nextMonth, 0).day -
|
||||||
|
now.day)); // 加到下个月的第一天的前一天,即本月最后一天
|
||||||
}
|
}
|
||||||
return now;
|
return now;
|
||||||
}
|
}
|
||||||
|
|
@ -761,7 +839,9 @@ Widget jobConditionFilter(BuildContext context,
|
||||||
return Center(
|
return Center(
|
||||||
child: Container(
|
child: Container(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
width: isPad() ? ScreenUtil().screenWidth / 2 : ScreenUtil().screenWidth / 1.3,
|
width: isPad()
|
||||||
|
? ScreenUtil().screenWidth / 2
|
||||||
|
: ScreenUtil().screenWidth / 1.3,
|
||||||
height: ScreenUtil().screenHeight / 2,
|
height: ScreenUtil().screenHeight / 2,
|
||||||
child: SfDateRangePicker(
|
child: SfDateRangePicker(
|
||||||
showActionButtons: true,
|
showActionButtons: true,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class AutoDrawer extends StatefulWidget {
|
class AutoDrawer extends StatefulWidget {
|
||||||
|
|
||||||
final double elevation;
|
final double elevation;
|
||||||
final Widget child;
|
final Widget child;
|
||||||
final String? semanticLabel;
|
final String? semanticLabel;
|
||||||
|
|
@ -15,24 +16,24 @@ class AutoDrawer extends StatefulWidget {
|
||||||
this.semanticLabel,
|
this.semanticLabel,
|
||||||
this.widthPercent = 0.6,
|
this.widthPercent = 0.6,
|
||||||
this.callback,
|
this.callback,
|
||||||
}) : super(key: key);
|
}) :super(key: key);
|
||||||
@override
|
@override
|
||||||
_AutoDrawerState createState() => _AutoDrawerState();
|
_AutoDrawerState createState() => _AutoDrawerState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class _AutoDrawerState extends State<AutoDrawer> {
|
||||||
|
|
||||||
class _AutoDrawerState extends State<AutoDrawer> {
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
if (widget.callback != null) {
|
if(widget.callback!=null){
|
||||||
//打开侧边栏 触发
|
//打开侧边栏 触发
|
||||||
widget.callback!(true);
|
widget.callback!(true);
|
||||||
}
|
}
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
if (widget.callback != null) {
|
if(widget.callback!=null){
|
||||||
// 关闭侧边栏触发
|
// 关闭侧边栏触发
|
||||||
widget.callback!(false);
|
widget.callback!(false);
|
||||||
}
|
}
|
||||||
|
|
@ -42,7 +43,15 @@ class _AutoDrawerState extends State<AutoDrawer> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
assert(debugCheckHasMaterialLocalizations(context));
|
assert(debugCheckHasMaterialLocalizations(context));
|
||||||
String? label = widget.semanticLabel ?? MaterialLocalizations.of(context).drawerLabel;
|
String? label = widget.semanticLabel;
|
||||||
|
switch (defaultTargetPlatform) {
|
||||||
|
case TargetPlatform.iOS:
|
||||||
|
label = widget.semanticLabel;
|
||||||
|
break;
|
||||||
|
case TargetPlatform.android:
|
||||||
|
case TargetPlatform.fuchsia:
|
||||||
|
label = widget.semanticLabel ?? MaterialLocalizations.of(context)?.drawerLabel;
|
||||||
|
}
|
||||||
final double _width = MediaQuery.of(context).size.width * widget.widthPercent;
|
final double _width = MediaQuery.of(context).size.width * widget.widthPercent;
|
||||||
return Semantics(
|
return Semantics(
|
||||||
scopesRoute: true,
|
scopesRoute: true,
|
||||||
|
|
@ -58,4 +67,4 @@ class _AutoDrawerState extends State<AutoDrawer> {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -15,7 +15,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
||||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
||||||
# Read more about iOS versioning at
|
# Read more about iOS versioning at
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
version: 1.0.102
|
version: 1.0.101
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.17.1 <3.0.0"
|
sdk: ">=2.17.1 <3.0.0"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue