no message

This commit is contained in:
1147192855@qq.com 2024-06-25 16:52:06 +08:00
parent 2fe7dc814e
commit 9792eda546
7 changed files with 203 additions and 187 deletions

View File

@ -5,6 +5,7 @@
android:icon="@mipmap/ic_launcher"> android:icon="@mipmap/ic_launcher">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:screenOrientation="portrait"
android:exported="true" android:exported="true"
android:launchMode="singleTop" android:launchMode="singleTop"
android:taskAffinity="" android:taskAffinity=""

View File

@ -20,13 +20,13 @@ void main() async {
/// UserStore /// UserStore
Get.put<UserStore>(UserStore().init()); Get.put<UserStore>(UserStore().init());
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
statusBarColor: Colors.transparent, // statusBarColor: Colors.transparent, //
statusBarIconBrightness: Brightness.dark // dark: light statusBarIconBrightness: Brightness.dark // dark: light
)); ));
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top, SystemUiOverlay.bottom]); // SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top, SystemUiOverlay.bottom]); //
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); // await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]); //
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp()); runApp(const MyApp());
} }

View File

@ -7,7 +7,6 @@ import 'package:flutter_spinkit/flutter_spinkit.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:get/get.dart'; import 'package:get/get.dart';
import 'package:get/get_connect/http/src/request/request.dart';
import 'package:making_school_asignment_app/common/job/marking_models/do_test_questions_image_info.dart'; import 'package:making_school_asignment_app/common/job/marking_models/do_test_questions_image_info.dart';
import 'package:making_school_asignment_app/common/job/marking_models/original_manuscript_handwriting_params.dart'; import 'package:making_school_asignment_app/common/job/marking_models/original_manuscript_handwriting_params.dart';
import 'package:making_school_asignment_app/common/mixins/event_bus_mixin.dart'; import 'package:making_school_asignment_app/common/mixins/event_bus_mixin.dart';
@ -16,7 +15,6 @@ import 'package:making_school_asignment_app/common/utils/anti_shake_throttling.d
import 'package:making_school_asignment_app/common/utils/cached_network_img.dart'; import 'package:making_school_asignment_app/common/utils/cached_network_img.dart';
import 'package:making_school_asignment_app/common/utils/my_time_util.dart'; import 'package:making_school_asignment_app/common/utils/my_time_util.dart';
import 'package:making_school_asignment_app/common/utils/toast_utils.dart'; import 'package:making_school_asignment_app/common/utils/toast_utils.dart';
import 'package:making_school_asignment_app/common/utils/utils.dart';
import 'package:making_school_asignment_app/page/global_widget/my_text.dart'; import 'package:making_school_asignment_app/page/global_widget/my_text.dart';
import 'package:making_school_asignment_app/page/home_page/children/homework_review/components/job_handwriting.dart'; import 'package:making_school_asignment_app/page/home_page/children/homework_review/components/job_handwriting.dart';
@ -252,6 +250,8 @@ class PreviousNutton extends StatelessWidget {
var params = handwritingLogic.params.value; var params = handwritingLogic.params.value;
if (resultData == null || params == null) return; if (resultData == null || params == null) return;
params.pageNum = resultData.pageNum - 1; params.pageNum = resultData.pageNum - 1;
params.templateId = null;
params.questionNo = null;
handwritingLogic.params.value = OriginalManuscriptHandwritingParams.fromJson(params.toJson()); handwritingLogic.params.value = OriginalManuscriptHandwritingParams.fromJson(params.toJson());
// handwritingLogic.params.value = params; // handwritingLogic.params.value = params;
}), }),
@ -288,6 +288,8 @@ class NextPageButton extends StatelessWidget {
var params = handwritingLogic.params.value; var params = handwritingLogic.params.value;
if (resultData == null || params == null) return; if (resultData == null || params == null) return;
params.pageNum = resultData.pageNum + 1; params.pageNum = resultData.pageNum + 1;
params.templateId = null;
params.questionNo = null;
handwritingLogic.params.value = OriginalManuscriptHandwritingParams.fromJson(params.toJson()); handwritingLogic.params.value = OriginalManuscriptHandwritingParams.fromJson(params.toJson());
}), }),
child: Icon(Icons.arrow_forward_ios, color: Colors.white, size: 22.sp), child: Icon(Icons.arrow_forward_ios, color: Colors.white, size: 22.sp),

View File

@ -25,18 +25,18 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: Color.fromRGBO(245, 245, 245, 1), backgroundColor: const Color.fromRGBO(245, 245, 245, 1),
appBar: AppBar( appBar: AppBar(
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: Obx(() { title: Obx(() {
return Text( return Text(
state.studentInfo.value.studentName, state.studentInfo.value.studentName,
style: TextStyle(fontSize: 14.sp, color: Color(0xFF000000)), style: TextStyle(fontSize: 14.sp, color: const Color(0xFF000000)),
); );
}), }),
centerTitle: true, centerTitle: true,
leading: IconButton( leading: IconButton(
icon: Icon(Icons.arrow_back_ios, color: Colors.black), icon: const Icon(Icons.arrow_back_ios, color: Colors.black),
onPressed: () => Get.back(), onPressed: () => Get.back(),
), ),
actions: const [ actions: const [
@ -61,13 +61,13 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
width: 93.r, width: 93.r,
height: 28.r, height: 28.r,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFEAF3FF), color: const Color(0xFFEAF3FF),
borderRadius: BorderRadius.circular(4.r), borderRadius: BorderRadius.circular(4.r),
), ),
child: Center( child: Center(
child: Text( child: Text(
'历史作业', '历史作业',
style: TextStyle(fontSize: 10.r, color: Color(0xFF2080F7)), style: TextStyle(fontSize: 10.r, color: const Color(0xFF2080F7)),
), ),
), ),
), ),
@ -82,13 +82,13 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
width: 93.r, width: 93.r,
height: 28.r, height: 28.r,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFEDFFF7), color: const Color(0xFFEDFFF7),
borderRadius: BorderRadius.circular(4.r), borderRadius: BorderRadius.circular(4.r),
), ),
child: Center( child: Center(
child: Text( child: Text(
'原稿笔迹', '原稿笔迹',
style: TextStyle(fontSize: 10.r, color: Color(0xFF4CC793)), style: TextStyle(fontSize: 10.r, color: const Color(0xFF4CC793)),
), ),
), ),
), ),
@ -112,7 +112,7 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
children: [ children: [
Text( Text(
'客观题', '客观题',
style: TextStyle(fontSize: 14.sp, color: Color(0xFF5C5C5C), fontWeight: FontWeight.w600), style: TextStyle(fontSize: 14.sp, color: const Color(0xFF5C5C5C), fontWeight: FontWeight.w600),
), ),
SizedBox( SizedBox(
width: 10.r, width: 10.r,
@ -120,7 +120,7 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
Obx(() { Obx(() {
return Text( return Text(
'${state.studentInfo.value.kgtCorrectRate}%', '${state.studentInfo.value.kgtCorrectRate}%',
style: TextStyle(fontSize: 14.sp, color: Color(0xFF6888FD), fontWeight: FontWeight.w600), style: TextStyle(fontSize: 14.sp, color: const Color(0xFF6888FD), fontWeight: FontWeight.w600),
); );
}), }),
], ],
@ -132,9 +132,12 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
return SizedBox( return SizedBox(
height: state.studentInfo.value.kgtList.length > 8 ? 300.r : state.studentInfo.value.kgtList.length * 40.r + 40.r, height: state.studentInfo.value.kgtList.length > 8 ? 300.r : state.studentInfo.value.kgtList.length * 40.r + 40.r,
child: StudentKgTable( child: StudentKgTable(
headList: ['题号', '学生答案', '标准答案'], headList: const ['题号', '学生答案', '标准答案'],
bodyList: state.studentInfo.value.kgtList, bodyList: state.studentInfo.value.kgtList,
questionNumCall: (no) { questionNumCall: (questionNo, templateId) {
showAnswerHandwriting(context,
homeworkId: state.homeworkId, studentId: state.studentId, questionNo: questionNo, templateId: templateId)
.then((e) => ToastUtils.dismiss());
// showAnswerHandwriting(context, jobId: widget.jobId, studentId: widget.studentId, questionNo: int.parse(no)).then((value) { // showAnswerHandwriting(context, jobId: widget.jobId, studentId: widget.studentId, questionNo: int.parse(no)).then((value) {
// ref.read(jobHandwritingDrawingTrajectoryProvider.notifier).setVal([]); // ref.read(jobHandwritingDrawingTrajectoryProvider.notifier).setVal([]);
// }); // });
@ -164,7 +167,7 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
children: [ children: [
Text( Text(
'主观题', '主观题',
style: TextStyle(fontSize: 14.sp, color: Color(0xFF5C5C5C), fontWeight: FontWeight.w600), style: TextStyle(fontSize: 14.sp, color: const Color(0xFF5C5C5C), fontWeight: FontWeight.w600),
), ),
SizedBox( SizedBox(
width: 10.r, width: 10.r,
@ -172,7 +175,7 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
Obx(() { Obx(() {
return Text( return Text(
'${state.studentInfo.value.zgtCorrectRate}%', '${state.studentInfo.value.zgtCorrectRate}%',
style: TextStyle(fontSize: 14.sp, color: Color(0xFF6888FD), fontWeight: FontWeight.w600), style: TextStyle(fontSize: 14.sp, color: const Color(0xFF6888FD), fontWeight: FontWeight.w600),
); );
}), }),
], ],
@ -184,12 +187,15 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
return SizedBox( return SizedBox(
height: state.studentInfo.value.zgtList.length > 8 ? 300.r : state.studentInfo.value.zgtList.length * 40.r + 40.r, height: state.studentInfo.value.zgtList.length > 8 ? 300.r : state.studentInfo.value.zgtList.length * 40.r + 40.r,
child: StudentZgTable( child: StudentZgTable(
headList: ['题号', '用时', '批注结果', '答案'], headList: const ['题号', '用时', '批注结果', '答案'],
bodyList: state.studentInfo.value.zgtList, bodyList: state.studentInfo.value.zgtList,
questionNumCall: (no) { questionNumCall: (questionNo, templateId) {
/* showAnswerHandwriting(context, jobId: widget.jobId, studentId: widget.studentId, questionNo: int.parse(no)).then((value) { /* showAnswerHandwriting(context, jobId: widget.jobId, studentId: widget.studentId, questionNo: int.parse(no)).then((value) {
ref.read(jobHandwritingDrawingTrajectoryProvider.notifier).setVal([]); ref.read(jobHandwritingDrawingTrajectoryProvider.notifier).setVal([]);
});*/ });*/
showAnswerHandwriting(context,
homeworkId: state.homeworkId, studentId: state.studentId, questionNo: questionNo, templateId: templateId)
.then((e) => ToastUtils.dismiss());
}, },
), ),
); );

View File

@ -9,7 +9,7 @@ class StudentKgTable extends StatefulWidget {
final List bodyList; final List bodyList;
final int? fixedRows; final int? fixedRows;
final int? fixedCols; final int? fixedCols;
final Function(String)? questionNumCall; final Function(int, int)? questionNumCall;
const StudentKgTable({ const StudentKgTable({
Key? key, Key? key,
@ -44,7 +44,7 @@ class _StudentKgTableState extends State<StudentKgTable> {
InkWell( InkWell(
onTap: () { onTap: () {
if (widget.questionNumCall != null) { if (widget.questionNumCall != null) {
widget.questionNumCall!(item.questionNo.toString()); widget.questionNumCall!(item.questionNo, item.templateId);
} }
}, },
child: Center( child: Center(

View File

@ -11,7 +11,7 @@ class StudentZgTable extends StatefulWidget {
final List bodyList; final List bodyList;
final int? fixedRows; final int? fixedRows;
final int? fixedCols; final int? fixedCols;
final Function(String)? questionNumCall; final Function(int, int)? questionNumCall;
const StudentZgTable({ const StudentZgTable({
Key? key, Key? key,
@ -41,7 +41,7 @@ class _StudentZgTableState extends State<StudentZgTable> {
DataCell(InkWell( DataCell(InkWell(
onTap: () { onTap: () {
if (widget.questionNumCall != null) { if (widget.questionNumCall != null) {
widget.questionNumCall!(item.questionNo.toString()); widget.questionNumCall!(item.questionNo, item.templateId);
} }
}, },
child: Center( child: Center(

View File

@ -45,26 +45,31 @@ class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin
statusBarIconBrightness: Brightness.dark, statusBarIconBrightness: Brightness.dark,
statusBarBrightness: Brightness.light, statusBarBrightness: Brightness.light,
), ),
child: EasyRefresh( child: OrientationBuilder(
firstRefresh: false, builder: (BuildContext context, Orientation orientation) {
taskIndependence: true, print('1111111111111');
controller: logic.refreshController, return EasyRefresh(
header: MaterialHeader(), firstRefresh: false,
footer: TaurusFooter(), taskIndependence: true,
onRefresh: () async { controller: logic.refreshController,
state.pageNumber = 1; header: MaterialHeader(),
return logic.getList(); footer: TaurusFooter(),
}, onRefresh: () async {
onLoad: () async { state.pageNumber = 1;
if (state.workList.length < state.totalCount.value) { return logic.getList();
state.pageNumber++; },
return logic.getList(); onLoad: () async {
} if (state.workList.length < state.totalCount.value) {
}, state.pageNumber++;
child: Column( return logic.getList();
children: [ }
SizedBox(height: 15.r,), },
/* Container( child: Column(
children: [
SizedBox(
height: 15.r,
),
/* Container(
height: 200.h, height: 200.h,
width: double.infinity, width: double.infinity,
decoration: const BoxDecoration( decoration: const BoxDecoration(
@ -74,31 +79,31 @@ class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin
), ),
), ),
),*/ ),*/
SizedBox(height: MediaQuery.of(context).padding.top / 2), SizedBox(height: MediaQuery.of(context).padding.top / 2),
Obx(() { Obx(() {
return $TermRow([ return $TermRow([
EntranceModel(title: '作业批阅', image: 'assets/images/job_home_marking.png', navigationUrl: Routes.readOverPage), EntranceModel(title: '作业批阅', image: 'assets/images/job_home_marking.png', navigationUrl: Routes.readOverPage),
EntranceModel( EntranceModel(
title: '学生历史作业', title: '学生历史作业',
image: 'assets/images/job_home_history.png', image: 'assets/images/job_home_history.png',
navigationUrl: Routes.studentHistoryWorkPage, navigationUrl: Routes.studentHistoryWorkPage,
page: 'history', page: 'history',
), ),
EntranceModel(title: '知识点点掌握', image: 'assets/images/job_home_knowledge.png', navigationUrl: Routes.knowledgePointsGraspPage) EntranceModel(title: '知识点点掌握', image: 'assets/images/job_home_knowledge.png', navigationUrl: Routes.knowledgePointsGraspPage)
], state.totalCount.value); ], state.totalCount.value);
}), }),
spaceWidth, spaceWidth,
$TermRow([ $TermRow([
EntranceModel(title: '答题轨迹', image: 'assets/images/job_home_answer_record.png', navigationUrl: Routes.answerTrajectoryPage), EntranceModel(title: '答题轨迹', image: 'assets/images/job_home_answer_record.png', navigationUrl: Routes.answerTrajectoryPage),
EntranceModel( EntranceModel(
title: '优先批阅设定', title: '优先批阅设定',
image: 'assets/images/job_home_youxian.png', image: 'assets/images/job_home_youxian.png',
navigationUrl: Routes.studentHistoryWorkPage, navigationUrl: Routes.studentHistoryWorkPage,
page: 'set', page: 'set',
) )
], 0), ], 0),
/* $TermRow( /* $TermRow(
context, context,
[ [
EntranceModel( EntranceModel(
@ -107,142 +112,144 @@ class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin
navigationUrl: '') navigationUrl: '')
], ],
0),*/ 0),*/
SizedBox(height: 15.h), SizedBox(height: 15.h),
Obx(() { Obx(() {
return Container( return Container(
padding: EdgeInsets.symmetric(horizontal: 12.w), padding: EdgeInsets.symmetric(horizontal: 12.w),
child: Column( child: Column(
children: List.generate(state.workList.length, (index) { children: List.generate(state.workList.length, (index) {
Items item = state.workList[index]; Items item = state.workList[index];
return InkWell( return InkWell(
onTap: () { onTap: () {
Get.toNamed(Routes.annotateClassPage, arguments: { Get.toNamed(Routes.annotateClassPage, arguments: {
'id': item.id, 'id': item.id,
'name': item.name, 'name': item.name,
'grade': item.grade, 'grade': item.grade,
'subject': item.subject, 'subject': item.subject,
}); });
}, },
child: Container( child: Container(
margin: EdgeInsets.only(bottom: 15.h), margin: EdgeInsets.only(bottom: 15.h),
child: Column( child: Column(
children: [ children: [
SizedBox(height: 4.h), SizedBox(height: 4.h),
Container( Container(
padding: EdgeInsets.symmetric(vertical: 15.h, horizontal: 10.w), padding: EdgeInsets.symmetric(vertical: 15.h, horizontal: 10.w),
width: double.infinity, width: double.infinity,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.r), borderRadius: BorderRadius.circular(6.r),
color: const Color.fromRGBO(255, 255, 255, 1), color: const Color.fromRGBO(255, 255, 255, 1),
boxShadow: const [ boxShadow: const [
BoxShadow( BoxShadow(
color: Color.fromRGBO(210, 216, 241, 1), color: Color.fromRGBO(210, 216, 241, 1),
offset: Offset.zero, //y轴偏移量 offset: Offset.zero, //y轴偏移量
blurRadius: 5.8, // blurRadius: 5.8, //
spreadRadius: 0, // spreadRadius: 0, //
)
],
),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
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: state.type == 1 ? const Color.fromRGBO(104, 136, 253, 1) : 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(right: 4.w),
child: quickText(state.type == 1 ? '作业' : '考试', color: Colors.white, size: 10.sp),
),
Expanded(
child: quickText(
item.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), child: Column(
Row( mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.end,
children: [ children: [
quickText( Row(
EnumUtils.formatSubject(item.subject), crossAxisAlignment: CrossAxisAlignment.start,
color: const Color.fromRGBO(97, 97, 97, 1), children: [
size: 12.sp, 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: state.type == 1 ? const Color.fromRGBO(104, 136, 253, 1) : 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(right: 4.w),
child: quickText(state.type == 1 ? '作业' : '考试', color: Colors.white, size: 10.sp),
),
Expanded(
child: quickText(
item.name,
maxLines: 2,
size: Utils.isPad() ? 14.sp : 16.sp,
color: const Color.fromRGBO(70, 70, 70, 1),
fontWeight: FontWeight.bold,
),
)
],
), ),
quickText(' / ', color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp, fontWeight: FontWeight.w500), SizedBox(height: 10.h),
Row( Row(
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,
children: [ children: [
quickText('题量:', color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp),
quickText( quickText(
'${item.questionCount! - item.annotateCount!}', EnumUtils.formatSubject(item.subject),
color: const Color.fromRGBO(97, 97, 97, 1), color: const Color.fromRGBO(97, 97, 97, 1),
size: 13.sp, 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(
'${item.questionCount! - item.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(item.publishTime).toString().substring(0, 10),
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), SizedBox(height: 10.h),
quickText(DateTime.parse(item.publishTime).toString().substring(0, 10), Row(
color: const Color.fromRGBO(97, 97, 97, 1), size: 12.sp), 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.annotateRate == null ? 0 : item.annotateRate! / 100,
progressColor: const Color(0xFF6888FD),
backgroundColor: const Color(0xFFE8E8E8),
barRadius: Radius.circular(10.r),
),
),
),
SizedBox(
width: 10.r,
),
quickText('${item.annotateRate!.toStringAsFixed(0)}%', size: 10.sp, color: const Color(0xFF464646)),
],
),
// FavoriteButton(jobTaskItem.id, jobTaskItem.title),
], ],
), ),
SizedBox(height: 10.h), ),
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.annotateRate == null ? 0 : item.annotateRate! / 100,
progressColor: const Color(0xFF6888FD),
backgroundColor: const Color(0xFFE8E8E8),
barRadius: Radius.circular(10.r),
),
),
),
SizedBox(
width: 10.r,
),
quickText('${item.annotateRate!.toStringAsFixed(0)}%', size: 10.sp, color: const Color(0xFF464646)),
],
),
// FavoriteButton(jobTaskItem.id, jobTaskItem.title),
],
),
), ),
], ),
), );
), }),
); ),
}), );
), }),
); ],
}), ),
], );
), },
), ),
)); ));
} }