知识点掌握
This commit is contained in:
parent
e349922528
commit
3dcbf121aa
|
|
@ -0,0 +1,10 @@
|
|||
import 'package:get/get.dart';
|
||||
|
||||
import 'knowledge_points_grasp_logic.dart';
|
||||
|
||||
class KnowledgePointsGraspBinding extends Bindings {
|
||||
@override
|
||||
void dependencies() {
|
||||
Get.lazyPut(() => KnowledgePointsGraspLogic());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:school_asignment_app/common/job/knowledge_points_grasp.dart';
|
||||
import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart';
|
||||
|
||||
import 'knowledge_points_grasp_state.dart';
|
||||
|
||||
class KnowledgePointsGraspLogic extends GetxController with RequestToolMixin,GetSingleTickerProviderStateMixin {
|
||||
final KnowledgePointsGraspState state = KnowledgePointsGraspState();
|
||||
//文本输入框控制器
|
||||
late final TextEditingController textController;
|
||||
late final EasyRefreshController refreshController;
|
||||
late TabController tabController;
|
||||
|
||||
@override
|
||||
void onInit(){
|
||||
super.onInit();
|
||||
textController = TextEditingController();
|
||||
refreshController = EasyRefreshController();
|
||||
tabController = TabController(length: 3, vsync: this);
|
||||
EasyLoading.show(status: 'loading...');
|
||||
getList();
|
||||
}
|
||||
|
||||
void getList() async{
|
||||
List<KnowledgePointsGrasp> data = await getClient().getKnowledgeReport(state.dateStart,state.dateEnd,textController.text);
|
||||
state.dataList.value = data;
|
||||
EasyLoading.dismiss();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose(){
|
||||
super.dispose();
|
||||
textController.dispose();
|
||||
refreshController.dispose();
|
||||
tabController.dispose();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
import 'package:get/get.dart';
|
||||
import 'package:school_asignment_app/common/job/knowledge_points_grasp.dart';
|
||||
import 'package:school_asignment_app/common/utils/utils.dart';
|
||||
|
||||
class KnowledgePointsGraspState {
|
||||
KnowledgePointsGraspState() {
|
||||
///Initialize variables
|
||||
}
|
||||
|
||||
late int page = 1;
|
||||
late int totalPages = 0;
|
||||
late RxList<KnowledgePointsGrasp> dataList=RxList();
|
||||
late String dateStart = Utils.getWeekStartDate().toString().substring(0, 10);
|
||||
late String dateEnd = Utils.getWeekEndDate().toString().substring(0, 10);
|
||||
late RxString customTimeStr = '自定义'.obs;
|
||||
}
|
||||
|
|
@ -0,0 +1,265 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:school_asignment_app/common/job/knowledge_points_grasp.dart';
|
||||
import 'package:school_asignment_app/common/utils/utils.dart';
|
||||
import 'package:school_asignment_app/page/global_widget/MyEmptyWidget.dart';
|
||||
import 'package:school_asignment_app/page/global_widget/ReturnToHomepage.dart';
|
||||
import 'package:school_asignment_app/page/home_page/children/student_work_detail/widget/job_condition_filter.dart';
|
||||
import 'package:school_asignment_app/page/home_page/widget/progress_bar.dart';
|
||||
import 'package:school_asignment_app/routes/app_pages.dart';
|
||||
import 'package:syncfusion_flutter_datepicker/datepicker.dart';
|
||||
|
||||
import 'knowledge_points_grasp_logic.dart';
|
||||
|
||||
class KnowledgePointsGraspPage extends StatefulWidget {
|
||||
const KnowledgePointsGraspPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<KnowledgePointsGraspPage> createState() =>
|
||||
_KnowledgePointsGraspPageState();
|
||||
}
|
||||
|
||||
class _KnowledgePointsGraspPageState extends State<KnowledgePointsGraspPage> {
|
||||
final logic = Get.find<KnowledgePointsGraspLogic>();
|
||||
final state = Get
|
||||
.find<KnowledgePointsGraspLogic>()
|
||||
.state;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Color.fromRGBO(245, 245, 245, 1),
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.white,
|
||||
title: Text('知识点掌握',
|
||||
style: TextStyle(fontSize: 14.sp, color: Color(0xFF333333))),
|
||||
centerTitle: true,
|
||||
leading: IconButton(
|
||||
icon: Icon(Icons.arrow_back_ios, color: Colors.black),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
actions: const [
|
||||
ReturnToHomepage(),
|
||||
],
|
||||
elevation: 0,
|
||||
),
|
||||
body: Column(
|
||||
children: [
|
||||
Container(
|
||||
margin: EdgeInsets.all(15.r),
|
||||
height: 30.r,
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Container(
|
||||
padding: EdgeInsets.only(left: 10.r, right: 10.r),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(6.r),
|
||||
border: Border.all(width: 1.r, color: Color(0xFFDDDDDD)),
|
||||
color: Colors.white,
|
||||
),
|
||||
child: TextField(
|
||||
controller: logic.textController,
|
||||
textInputAction: TextInputAction.next,
|
||||
style: TextStyle(
|
||||
color: const Color.fromRGBO(80, 87, 103, 1),
|
||||
fontSize: 10.sp,
|
||||
),
|
||||
decoration: InputDecoration(
|
||||
hintText: "请输入知识点名称",
|
||||
hintStyle: TextStyle(fontSize: 10.sp,
|
||||
color: const Color.fromRGBO(153, 153, 153, 1)),
|
||||
labelStyle: TextStyle(fontSize: 10.sp,
|
||||
color: const Color.fromRGBO(148, 163, 182, 1)),
|
||||
border: InputBorder.none,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(width: 10.r,),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
state.page = 1;
|
||||
logic.getList();
|
||||
},
|
||||
child: Container(
|
||||
width: 50.r,
|
||||
height: 30.r,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(4.r),
|
||||
color: Color(0xFF6888FD),
|
||||
),
|
||||
child: Center(
|
||||
child: Text('查询', style: TextStyle(
|
||||
fontSize: 12.sp, color: Colors.white),),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
Obx(() {
|
||||
return JobConditionFilter(
|
||||
jobType: 1,
|
||||
controller: logic.tabController,
|
||||
customTimeStr: state.customTimeStr.value,
|
||||
customTime: logic.tabController.index != 2 ||
|
||||
((state.dateEnd == null || state.dateEnd == '') &&
|
||||
(state.dateStart == null || state.dateStart == ''))
|
||||
? null
|
||||
: PickerDateRange(
|
||||
state.dateStart == null || state.dateStart == ''
|
||||
? null
|
||||
: DateTime
|
||||
.parse(state.dateStart!),
|
||||
state.dateEnd == null || state.dateEnd == '' ? null : DateTime
|
||||
.parse(state.dateEnd!),
|
||||
),
|
||||
onTimeFilter: (String? startTime, String? endTime) {
|
||||
EasyLoading.show(status: 'loading...');
|
||||
if (startTime == null && endTime == null) {
|
||||
if (logic.tabController.index == 2) {
|
||||
logic.tabController.animateTo(0);
|
||||
}
|
||||
state.dateStart = Utils.getWeekStartDate().toString().substring(0, 10);
|
||||
state.dateEnd = Utils.getWeekEndDate().toString().substring(0, 10);
|
||||
state.customTimeStr.value = '自定义';
|
||||
} else {
|
||||
state.dateStart = startTime ?? '';
|
||||
state.dateEnd = endTime ?? '';
|
||||
}
|
||||
state.page = 1;
|
||||
logic.getList();
|
||||
// _refreshController2.callRefresh();
|
||||
},
|
||||
refreshTime: (value) {
|
||||
if (value != null && value.startDate != null) {
|
||||
state.customTimeStr.value =
|
||||
value.startDate?.toString().substring(0, 10) ?? '';
|
||||
if (value.endDate != null) {
|
||||
if (!Utils.isPad() &&
|
||||
value.startDate!.year == value.endDate!.year) {
|
||||
state.customTimeStr.value =
|
||||
'${value.startDate.toString().substring(5, 10)}~${value
|
||||
.endDate.toString().substring(5, 10)}';
|
||||
} else {
|
||||
state.customTimeStr.value =
|
||||
'${state.customTimeStr.value}~${value.endDate?.toString()
|
||||
.substring(0, 10)}';
|
||||
}
|
||||
}
|
||||
}
|
||||
},);
|
||||
}),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 10.r),
|
||||
child: Obx(() {
|
||||
return EasyRefresh(
|
||||
firstRefresh: false,
|
||||
taskIndependence: true,
|
||||
controller: logic.refreshController,
|
||||
header: MaterialHeader(),
|
||||
footer: TaurusFooter(),
|
||||
onRefresh: () async {
|
||||
state.page = 1;
|
||||
logic.getList();
|
||||
},
|
||||
onLoad: () async {
|
||||
if (state.page < state.totalPages) {
|
||||
state.page += 1;
|
||||
logic.getList();
|
||||
}
|
||||
},
|
||||
child: state.dataList.isNotEmpty
|
||||
? ListView.builder(
|
||||
itemCount: state.dataList.value.length,
|
||||
itemBuilder: (context, index) {
|
||||
KnowledgePointsGrasp item = state.dataList[index];
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(Routes.knowledgePointsGraspDetailPage,arguments: {'dateStart':state.dateStart,'dateEnd':state.dateEnd,'knowledgeId':item.knowledgeId,'knowledgeName':item.knowledgeName});
|
||||
},
|
||||
child: Container(
|
||||
margin: EdgeInsets.symmetric(
|
||||
vertical: 5.r, horizontal: 14.r),
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 14.r, horizontal: 10.r),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(10.r)),
|
||||
color: Colors.white),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
item.knowledgeName,
|
||||
style: TextStyle(fontSize: 14.sp,
|
||||
color: Color(0xFF505050)),
|
||||
)),
|
||||
|
||||
Container(
|
||||
width: 49.r,
|
||||
height: 22.r,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(20.r)),
|
||||
border: Border.all(width: 1.r,
|
||||
color: Color(0xFF6888FD)),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment
|
||||
.center,
|
||||
children: [
|
||||
Text(
|
||||
'${item.count}次',
|
||||
style: TextStyle(fontSize: 10.sp,
|
||||
color: Color(0xFF6888FD)),
|
||||
),
|
||||
Image.asset(
|
||||
'assets/images/right_icon_blue.png',
|
||||
width: 8.r, height: 8.r,),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(height: 10.r,),
|
||||
ProgressBar(
|
||||
title: '正确率:',
|
||||
color: Color(0xFF90E0BE),
|
||||
percent: item.correctRate / 100,
|
||||
padingEdg: EdgeInsets.zero,
|
||||
marginEdg: EdgeInsets.only(top: 8.h)),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
})
|
||||
: const MyEmptyWidget(),
|
||||
);
|
||||
}),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
Get.delete<KnowledgePointsGraspLogic>();
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
import 'package:get/get.dart';
|
||||
|
||||
import 'knowledge_points_grasp_detail_logic.dart';
|
||||
|
||||
class KnowledgePointsGraspDetailBinding extends Bindings {
|
||||
@override
|
||||
void dependencies() {
|
||||
Get.lazyPut(() => KnowledgePointsGraspDetailLogic());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:school_asignment_app/common/job/homework_details.dart';
|
||||
import 'package:school_asignment_app/common/job/knowledge_report_detail.dart';
|
||||
import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart';
|
||||
|
||||
import 'knowledge_points_grasp_detail_state.dart';
|
||||
|
||||
class KnowledgePointsGraspDetailLogic extends GetxController with RequestToolMixin{
|
||||
final KnowledgePointsGraspDetailState state = KnowledgePointsGraspDetailState();
|
||||
late final EasyRefreshController refreshController;
|
||||
|
||||
|
||||
@override
|
||||
void onInit(){
|
||||
super.onInit();
|
||||
state.dateStart = Get.arguments['dateStart'];
|
||||
state.dateEnd = Get.arguments['dateEnd'];
|
||||
state.knowledgeId = Get.arguments['knowledgeId'];
|
||||
state.knowledgeName.value = Get.arguments['knowledgeName'];
|
||||
refreshController = EasyRefreshController();
|
||||
EasyLoading.show(status: 'loading...');
|
||||
getList();
|
||||
}
|
||||
|
||||
void getList() async{
|
||||
List<KnowledgeReportDetail> data = await getClient().getKnowledgeReportDetail(state.dateStart,state.dateEnd,state.knowledgeId);
|
||||
state.dataList.value = data;
|
||||
EasyLoading.dismiss();
|
||||
}
|
||||
|
||||
getStudents(homeworkId,templateId,questionNo) async{
|
||||
List<Students> data = await getClient().getQuestionStudentState(homeworkId,templateId,questionNo);
|
||||
state.studentList.value = data;
|
||||
}
|
||||
@override
|
||||
void dispose(){
|
||||
super.dispose();
|
||||
refreshController.dispose();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
import 'package:get/get.dart';
|
||||
import 'package:school_asignment_app/common/job/homework_details.dart';
|
||||
import 'package:school_asignment_app/common/job/knowledge_report_detail.dart';
|
||||
|
||||
class KnowledgePointsGraspDetailState {
|
||||
KnowledgePointsGraspDetailState() {
|
||||
///Initialize variables
|
||||
}
|
||||
|
||||
late String dateStart = '';
|
||||
late String dateEnd = '';
|
||||
late int knowledgeId = 0;
|
||||
late RxList<KnowledgeReportDetail> dataList=RxList();
|
||||
late RxList<Students> studentList=RxList();
|
||||
late RxString knowledgeName=''.obs;
|
||||
}
|
||||
|
|
@ -0,0 +1,282 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:percent_indicator/percent_indicator.dart';
|
||||
import 'package:school_asignment_app/common/job/knowledge_report_detail.dart';
|
||||
import 'package:school_asignment_app/common/utils/toast_utils.dart';
|
||||
import 'package:school_asignment_app/page/global_widget/MyEmptyWidget.dart';
|
||||
import 'package:school_asignment_app/page/global_widget/ReturnToHomepage.dart';
|
||||
import 'package:school_asignment_app/page/global_widget/my_text.dart';
|
||||
import 'package:school_asignment_app/page/global_widget/show_student_list.dart';
|
||||
|
||||
import 'knowledge_points_grasp_detail_logic.dart';
|
||||
|
||||
class KnowledgePointsGraspDetailPage extends StatefulWidget {
|
||||
const KnowledgePointsGraspDetailPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<KnowledgePointsGraspDetailPage> createState() =>
|
||||
_KnowledgePointsGraspDetailPageState();
|
||||
}
|
||||
|
||||
class _KnowledgePointsGraspDetailPageState
|
||||
extends State<KnowledgePointsGraspDetailPage> {
|
||||
final logic = Get.find<KnowledgePointsGraspDetailLogic>();
|
||||
final state = Get.find<KnowledgePointsGraspDetailLogic>().state;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
void showImg(imgUrl, context) {
|
||||
if (imgUrl != null && imgUrl != '') {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
insetPadding:
|
||||
EdgeInsets.symmetric(vertical: 55.r, horizontal: 45.r),
|
||||
contentPadding: EdgeInsets.all(0),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(15.r))),
|
||||
content: Container(
|
||||
width: MediaQuery.of(context).size.width,
|
||||
// height: MediaQuery.of(context).size.height,
|
||||
child: Image.network(imgUrl),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
} else {
|
||||
ToastUtils.showError('暂无图片');
|
||||
}
|
||||
|
||||
EasyLoading.dismiss();
|
||||
}
|
||||
|
||||
void showStudent(homeworkId,templateId,questionNo, title) async {
|
||||
await logic.getStudents(homeworkId,templateId,questionNo);
|
||||
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return ShowStudentList(title:title,studentList:state.studentList.value,homeworkId: homeworkId,);
|
||||
},
|
||||
);
|
||||
EasyLoading.dismiss();
|
||||
}
|
||||
|
||||
return Scaffold(
|
||||
backgroundColor: Color.fromRGBO(245, 245, 245, 1),
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.white,
|
||||
title: Obx(() {
|
||||
return Text(state.knowledgeName.value,
|
||||
style: TextStyle(fontSize: 14.sp, color: Color(0xFF333333)));
|
||||
}),
|
||||
centerTitle: true,
|
||||
leading: IconButton(
|
||||
icon: Icon(Icons.arrow_back_ios, color: Colors.black),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
actions: const [
|
||||
ReturnToHomepage(),
|
||||
],
|
||||
elevation: 0,
|
||||
),
|
||||
body: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 10.r),
|
||||
child: Obx(() {
|
||||
return EasyRefresh(
|
||||
firstRefresh: false,
|
||||
taskIndependence: true,
|
||||
controller: logic.refreshController,
|
||||
header: MaterialHeader(),
|
||||
footer: TaurusFooter(),
|
||||
onRefresh: () async {
|
||||
logic.getList();
|
||||
},
|
||||
onLoad: () async {
|
||||
// getList();
|
||||
},
|
||||
child: state.dataList.isNotEmpty
|
||||
? ListView.builder(
|
||||
itemCount: state.dataList.length,
|
||||
itemBuilder: (context, index) {
|
||||
KnowledgeReportDetail item = state.dataList[index];
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
/* RouterManager.router.navigateTo(
|
||||
context,
|
||||
RouterManager.quickCheckPersonalPath +
|
||||
'?jobId=${item.jobName}&studentId=$studentId',
|
||||
transition: getTransition(),
|
||||
);*/
|
||||
},
|
||||
child: Container(
|
||||
margin: EdgeInsets.symmetric(
|
||||
vertical: 5.r, horizontal: 14.r),
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 14.r, horizontal: 10.r),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius:
|
||||
BorderRadius.all(Radius.circular(10.r)),
|
||||
color: Colors.white),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
Text(
|
||||
item.publishTime.substring(0, 10),
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: Color(0xFF505050)),
|
||||
),
|
||||
SizedBox(
|
||||
width: 10.r,
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
item.homeworkName,
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: Color(0xFF505050)),
|
||||
)),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
EasyLoading.show(status: 'loading...');
|
||||
showImg(item.questionPicture, context);
|
||||
},
|
||||
child: Container(
|
||||
width: 49.r,
|
||||
height: 22.r,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(20.r)),
|
||||
border: Border.all(
|
||||
width: 1.r,
|
||||
color: Color(0xFF8B8B8B)),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
'第${item.questionNo}题',
|
||||
style: TextStyle(
|
||||
fontSize: 10.sp,
|
||||
color: Color(0xFF8B8B8B)),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 10.r,
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 8.h),
|
||||
padding: EdgeInsets.zero,
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
InkWell(
|
||||
onTap: () {
|
||||
EasyLoading.show(status: 'loading...');
|
||||
showStudent(
|
||||
item.homeworkId, item.templateId,item.questionNo,item.homeworkName);
|
||||
},
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(right: 6.r),
|
||||
width: 56.r,
|
||||
height: 20.r,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD4FFED),
|
||||
borderRadius:
|
||||
BorderRadius.circular(20.r),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: [
|
||||
quickText('正确率',
|
||||
color: Color(0xFF4CC793),
|
||||
size: 10.sp),
|
||||
Image.asset(
|
||||
'assets/images/icon_back_green.png',
|
||||
width: 8.r,
|
||||
height: 8.r,
|
||||
)
|
||||
],
|
||||
)),
|
||||
),
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: Container(
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius:
|
||||
BorderRadius.circular(
|
||||
10.r),
|
||||
),
|
||||
child: LinearPercentIndicator(
|
||||
padding: EdgeInsets.zero,
|
||||
animation: true,
|
||||
lineHeight: 8.h,
|
||||
animationDuration: 2500,
|
||||
percent:
|
||||
item.correctRate / 100,
|
||||
progressColor:
|
||||
Color(0xFF90E0BE),
|
||||
backgroundColor:
|
||||
Color(0xFFE8E8E8),
|
||||
barRadius:
|
||||
Radius.circular(10.r),
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(width: 4.w),
|
||||
quickText(
|
||||
'${item.correctRate.toStringAsFixed(0)}%',
|
||||
size: 10.sp,
|
||||
color: Color(0xFF606060))
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
/* progressBar(context,
|
||||
title: '正确率 >',
|
||||
color: Color(0xFF90E0BE),
|
||||
percent: item.correctRate / 100,
|
||||
padingEdg: EdgeInsets.zero,
|
||||
marginEdg: EdgeInsets.only(top: 8.h),
|
||||
studentCall:showStudent(item.questionId,item.jobName),
|
||||
),*/
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
})
|
||||
: const MyEmptyWidget(),
|
||||
);
|
||||
}),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
Get.delete<KnowledgePointsGraspDetailLogic>();
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue