/* * @Author: wangyang 1147192855@qq.com * @Date: 2022-07-21 16:16:27 * @LastEditors: wangyang 1147192855@qq.com * @LastEditTime: 2022-07-28 18:13:22 * @FilePath: \marking_app\lib\components\review_item_view.dart * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:marking_app/common/model/review/review_item.dart'; import 'package:marking_app/routes/RouterManager.dart'; import 'package:marking_app/utils/index.dart'; import 'package:marking_app/utils/my_text.dart'; class ReviewItemView extends StatelessWidget { final int markingUserId; final int examSubjectId; final ReviewItem item; final bool exceptional; final bool isHomeworkCorrection; const ReviewItemView(this.markingUserId, this.item, this.examSubjectId, {this.exceptional = false, this.isHomeworkCorrection = false, Key? key}) : super(key: key); @override Widget build(BuildContext context) { return InkWell( onTap: () { if (isHomeworkCorrection) { // 作业跳转 RouterManager.router.navigateTo( context, '${RouterManager.markingHomeworkDoPath}?taskId=$markingUserId&detailId=${item.markingUserDetailId}&tabQuestionNum=${item.questionNo}', transition: getTransition(), ); return; } RouterManager.router.navigateTo( context, '${RouterManager.markingDoPath}?questionNum=${Uri.encodeComponent(item.questionNum)}&markingUserId=$markingUserId&examSubjectId=$examSubjectId&detailId=${item.markingUserDetailId}&pageOper=${2}&isReview=${1}&exceptional=${exceptional ? 1 : ''}', transition: getTransition(), ); }, child: Container( padding: EdgeInsets.only(left: 16.w, right: 16.w, top: 16.h, bottom: 10.h), margin: EdgeInsets.only(top: 14.h), decoration: BoxDecoration( borderRadius: BorderRadius.all( Radius.circular(6.w), ), color: Colors.white, boxShadow: [ BoxShadow( color: const Color.fromRGBO(46, 91, 255, 0.2), offset: Offset(2.w, 2.h), //阴影y轴偏移量 blurRadius: 14, //阴影模糊程度 spreadRadius: 0.5, //阴影扩散程度 ) ], ), child: Column(children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ if (item.isException) Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( margin: EdgeInsets.only(right: 2.w), padding: EdgeInsets.only(bottom: 2.h), child: Icon( Icons.warning_amber_rounded, color: const Color.fromRGBO(215, 74, 74, 1), size: 18.sp, ), ), Text( '异常', textAlign: TextAlign.end, style: TextStyle( fontSize: 14.sp, color: const Color.fromRGBO(215, 74, 74, 1), ), ) ], ) else Text( '评分:【${item.score}】', style: TextStyle( fontSize: 14.sp, color: const Color.fromRGBO(45, 56, 76, 1), ), ), Expanded( child: Align( alignment: Alignment.centerRight, child: quickText( isHomeworkCorrection ? '学生: ' + item.studentName! : 'ID: ${item.markingUserDetailId}', color: const Color.fromRGBO(148, 163, 182, 1), size: 12.sp, maxLines: 1, ), ), ) ], ), Container( width: double.infinity, margin: EdgeInsets.only(top: 10.h), decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(4.w)), boxShadow: [ BoxShadow( color: const Color.fromRGBO(46, 91, 255, 0.2), offset: Offset(4.w, 6.h), //阴影y轴偏移量 blurRadius: 8, //阴影模糊程度 spreadRadius: 0.2, //阴影扩散程度 ) ], ), child: ClipRRect( //是ClipRRect,不是ClipRect borderRadius: BorderRadius.circular(5.w), child: FadeInImage.assetNetwork( height: 100.h, width: double.infinity, placeholder: "assets/images/review_loding.png", image: item.studentAnswerList[0], fit: BoxFit.cover, imageErrorBuilder: (context, error, stackTrace) { return ClipRRect( //是ClipRRect,不是ClipRect borderRadius: BorderRadius.circular(5.w), child: Image.asset( width: double.infinity, height: 100.h, fit: BoxFit.cover, "assets/images/review_error.png", ), ); }, ), ), ), Container( width: double.infinity, margin: EdgeInsets.only(top: 12.h), alignment: Alignment.centerRight, child: Text( item.finishedTime, style: TextStyle( fontSize: 12.sp, color: const Color.fromRGBO(148, 163, 182, 1), ), ), ), ]), ), ); } }