Compare commits
No commits in common. "001ac3a21b3d064b6dfb343e9df5a278966342f8" and "c22e4f95bff51b20095e4764915d82e590ea7d23" have entirely different histories.
001ac3a21b
...
c22e4f95bf
|
|
@ -205,4 +205,3 @@ marking_app/lib/common/model/job/job_favorite_model.g.dart
|
||||||
marking_app/lib/common/model/job/job_level_set_params.g.dart
|
marking_app/lib/common/model/job/job_level_set_params.g.dart
|
||||||
marking_app/lib/common/model/job/job_student_goups.g.dart
|
marking_app/lib/common/model/job/job_student_goups.g.dart
|
||||||
marking_app/lib/common/model/job/job_student_level.g.dart
|
marking_app/lib/common/model/job/job_student_level.g.dart
|
||||||
marking_app/lib/common/model/job/job_favorite_item_model.g.dart
|
|
||||||
|
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
import 'package:json_annotation/json_annotation.dart';
|
|
||||||
|
|
||||||
part 'job_favorite_item_model.g.dart';
|
|
||||||
|
|
||||||
@JsonSerializable()
|
|
||||||
class JobFavoriteItemModel extends Object {
|
|
||||||
@JsonKey(name: 'studentId')
|
|
||||||
int studentId;
|
|
||||||
|
|
||||||
@JsonKey(name: 'studentName')
|
|
||||||
String studentName;
|
|
||||||
|
|
||||||
@JsonKey(name: 'createTime')
|
|
||||||
String createTime;
|
|
||||||
|
|
||||||
JobFavoriteItemModel(
|
|
||||||
this.studentId,
|
|
||||||
this.studentName,
|
|
||||||
this.createTime,
|
|
||||||
);
|
|
||||||
|
|
||||||
factory JobFavoriteItemModel.fromJson(Map<String, dynamic> srcJson) => _$JobFavoriteItemModelFromJson(srcJson);
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => _$JobFavoriteItemModelToJson(this);
|
|
||||||
}
|
|
||||||
|
|
@ -1,105 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
||||||
import 'package:marking_app/common/mixin/common.dart';
|
|
||||||
import 'package:marking_app/common/model/job/job_favorite_item_model.dart';
|
|
||||||
import 'package:marking_app/utils/index.dart';
|
|
||||||
import 'package:marking_app/utils/my_text.dart';
|
|
||||||
|
|
||||||
/// 作业收藏学生名单列表
|
|
||||||
class JobFavorite extends StatefulWidget {
|
|
||||||
final int jobId;
|
|
||||||
final int schoolId;
|
|
||||||
final int gradeId;
|
|
||||||
final String className;
|
|
||||||
|
|
||||||
const JobFavorite({
|
|
||||||
required this.jobId,
|
|
||||||
required this.schoolId,
|
|
||||||
required this.gradeId,
|
|
||||||
required this.className,
|
|
||||||
super.key,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<JobFavorite> createState() => _JobFavoriteState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _JobFavoriteState extends State<JobFavorite> with CommonMixin {
|
|
||||||
late Future<List<JobFavoriteItemModel>?> _future;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_future = getData();
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<List<JobFavoriteItemModel>?> getData() async {
|
|
||||||
var _client = await getClient();
|
|
||||||
var result = await _client.getListOfJobFavorites(widget.jobId, widget.gradeId, widget.schoolId, widget.className);
|
|
||||||
return result.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> toGoCancelFavorite(int jobId, int studentId) async {
|
|
||||||
var _client = await getClient();
|
|
||||||
var result = await _client.toJobCancelFavorite(jobId, studentId);
|
|
||||||
if (result.success && (result.data ?? false)) {
|
|
||||||
_future = getData();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
appBar: AppBar(
|
|
||||||
// titleSpacing: 0,
|
|
||||||
leading: IconButton(icon: Icon(Icons.arrow_back_ios), onPressed: () => Navigator.of(context).pop()),
|
|
||||||
iconTheme: IconThemeData(color: Colors.black),
|
|
||||||
title: quickText('收藏夹'),
|
|
||||||
backgroundColor: Colors.white,
|
|
||||||
),
|
|
||||||
body: MyFutureBuilder.buildFutureBuilderOfSingleInstance<List<JobFavoriteItemModel>>(
|
|
||||||
context,
|
|
||||||
_future,
|
|
||||||
(List<JobFavoriteItemModel>? datas) {
|
|
||||||
if (datas == null)
|
|
||||||
return Container(
|
|
||||||
child: Center(
|
|
||||||
child: quickText('请求错误'),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return Container(
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
Container(child: quickText(widget.className)),
|
|
||||||
Expanded(
|
|
||||||
child: ListView.builder(
|
|
||||||
itemBuilder: (context, index) {
|
|
||||||
JobFavoriteItemModel item = datas[index];
|
|
||||||
return Container(
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
||||||
children: [
|
|
||||||
quickText(item.studentName, color: Color.fromRGBO(102, 102, 102, 1), size: 14.sp),
|
|
||||||
quickText('收藏时间:${item.createTime}', color: Color.fromRGBO(137, 137, 137, 1), size: 10.sp),
|
|
||||||
InkWell(
|
|
||||||
onTap: () async {},
|
|
||||||
child: Icon(
|
|
||||||
Icons.favorite,
|
|
||||||
size: 28.sp,
|
|
||||||
color: Color.fromRGBO(252, 108, 108, 1),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
itemCount: datas.length,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
));
|
|
||||||
},
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -54,7 +54,7 @@ class _JobListParticipateInClassState extends State<JobListParticipateInClass> w
|
||||||
|
|
||||||
Future<void> getListOfJobFavoritesData() async {
|
Future<void> getListOfJobFavoritesData() async {
|
||||||
RestClient _client = await getClient();
|
RestClient _client = await getClient();
|
||||||
BaseStructureResult<List<JobFavoriteModel>> result = await _client.getListOfJobFavoriteNumber(widget.jobId);
|
BaseStructureResult<List<JobFavoriteModel>> result = await _client.getListOfJobFavorites(widget.jobId);
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
result.data?.forEach((e) {
|
result.data?.forEach((e) {
|
||||||
favoriteMap['${e.schoolId}+${e.gradeId}+${e.className}'] = e.count;
|
favoriteMap['${e.schoolId}+${e.gradeId}+${e.className}'] = e.count;
|
||||||
|
|
@ -266,14 +266,7 @@ class _JobListParticipateInClassState extends State<JobListParticipateInClass> w
|
||||||
}
|
}
|
||||||
|
|
||||||
// 收藏夹
|
// 收藏夹
|
||||||
void bookmarks(MarkingTasks task) {
|
void bookmarks(MarkingTasks task) {}
|
||||||
RouterManager.router.navigateTo(
|
|
||||||
context,
|
|
||||||
RouterManager.jobFavoritePagePath +
|
|
||||||
'?className=${Uri.encodeComponent(task.className)}&jobId=${widget.jobId}&schoolId=${task.dpcSchoolId}&gradeId=${task.dpcGradeId}',
|
|
||||||
transition: getTransition(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 数据快查
|
// 数据快查
|
||||||
void quickDataCheck(MarkingTasks task) {
|
void quickDataCheck(MarkingTasks task) {
|
||||||
|
|
@ -289,7 +282,7 @@ class _JobListParticipateInClassState extends State<JobListParticipateInClass> w
|
||||||
RouterManager.router.navigateTo(
|
RouterManager.router.navigateTo(
|
||||||
context,
|
context,
|
||||||
RouterManager.jobReportPagePath +
|
RouterManager.jobReportPagePath +
|
||||||
'?title=${Uri.encodeComponent(widget.jobName)}&id=${widget.jobId}&schoolId=${task.dpcSchoolId}&gradeId=${task.dpcGradeId}&className=${Uri.encodeComponent(task.className)}',
|
'?uniqueId=${task.id}&title=${Uri.encodeComponent(widget.jobName)}&id=${widget.jobId}&schoolId=${task.dpcSchoolId}&gradeId=${task.dpcGradeId}&className=${task.className}',
|
||||||
transition: getTransition(),
|
transition: getTransition(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -628,7 +621,7 @@ class TabletEndCompleted extends StatelessWidget {
|
||||||
color: Color.fromRGBO(244, 244, 244, 1),
|
color: Color.fromRGBO(244, 244, 244, 1),
|
||||||
borderRadius: BorderRadius.circular(20.r),
|
borderRadius: BorderRadius.circular(20.r),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => bookmarks(taskItem),
|
onTap: () async {},
|
||||||
borderRadius: BorderRadius.circular(8.r),
|
borderRadius: BorderRadius.circular(8.r),
|
||||||
child: Container(
|
child: Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
|
|
@ -815,13 +808,13 @@ class MobileEndCompleted extends StatelessWidget {
|
||||||
color: Color.fromRGBO(244, 244, 244, 1),
|
color: Color.fromRGBO(244, 244, 244, 1),
|
||||||
borderRadius: BorderRadius.circular(20.r),
|
borderRadius: BorderRadius.circular(20.r),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => bookmarks(task),
|
onTap: () async {},
|
||||||
borderRadius: BorderRadius.circular(8.r),
|
borderRadius: BorderRadius.circular(8.r),
|
||||||
child: Container(
|
child: Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
padding: EdgeInsets.symmetric(vertical: 5.h),
|
padding: EdgeInsets.symmetric(vertical: 5.h),
|
||||||
decoration: BoxDecoration(borderRadius: BorderRadius.circular(20.r)),
|
decoration: BoxDecoration(borderRadius: BorderRadius.circular(20.r)),
|
||||||
child: quickText(task.collectNumber > 0 ? '收藏夹(${task.collectNumber})' : '收藏夹',
|
child: quickText('收藏夹(${task.collectNumber})',
|
||||||
size: 10.sp, color: Color.fromRGBO(102, 102, 102, 1)),
|
size: 10.sp, color: Color.fromRGBO(102, 102, 102, 1)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -996,7 +989,7 @@ Widget $itemDataViewOfPad(
|
||||||
color: Color.fromRGBO(244, 244, 244, 1),
|
color: Color.fromRGBO(244, 244, 244, 1),
|
||||||
borderRadius: BorderRadius.circular(20.r),
|
borderRadius: BorderRadius.circular(20.r),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => bookmarks(task),
|
onTap: () async {},
|
||||||
borderRadius: BorderRadius.circular(8.r),
|
borderRadius: BorderRadius.circular(8.r),
|
||||||
child: Container(
|
child: Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
|
|
@ -1057,7 +1050,7 @@ Widget $itemDataViewOfPad(
|
||||||
color: Color.fromRGBO(244, 244, 244, 1),
|
color: Color.fromRGBO(244, 244, 244, 1),
|
||||||
borderRadius: BorderRadius.circular(20.r),
|
borderRadius: BorderRadius.circular(20.r),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => bookmarks(task),
|
onTap: () async {},
|
||||||
borderRadius: BorderRadius.circular(8.r),
|
borderRadius: BorderRadius.circular(8.r),
|
||||||
child: Container(
|
child: Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
|
|
@ -1248,7 +1241,7 @@ Widget $itemDataView(
|
||||||
color: Color.fromRGBO(244, 244, 244, 1),
|
color: Color.fromRGBO(244, 244, 244, 1),
|
||||||
borderRadius: BorderRadius.circular(20.r),
|
borderRadius: BorderRadius.circular(20.r),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => bookmarks(task),
|
onTap: () async {},
|
||||||
borderRadius: BorderRadius.circular(8.r),
|
borderRadius: BorderRadius.circular(8.r),
|
||||||
child: Container(
|
child: Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
|
|
@ -1309,7 +1302,7 @@ Widget $itemDataView(
|
||||||
color: Color.fromRGBO(244, 244, 244, 1),
|
color: Color.fromRGBO(244, 244, 244, 1),
|
||||||
borderRadius: BorderRadius.circular(20.r),
|
borderRadius: BorderRadius.circular(20.r),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => bookmarks(task),
|
onTap: () async {},
|
||||||
borderRadius: BorderRadius.circular(8.r),
|
borderRadius: BorderRadius.circular(8.r),
|
||||||
child: Container(
|
child: Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ import 'package:marking_app/pages/homework_correction/do_papers_job_exam.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/job_priority_review_set.dart';
|
import 'package:marking_app/pages/homework_correction/job_priority_review_set.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/job_report.dart';
|
import 'package:marking_app/pages/homework_correction/job_report.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/job_student_group.dart';
|
import 'package:marking_app/pages/homework_correction/job_student_group.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/pages/job_favorite.dart';
|
|
||||||
import 'package:marking_app/pages/homework_correction/pages/job_list_participate_in_class.dart';
|
import 'package:marking_app/pages/homework_correction/pages/job_list_participate_in_class.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/review_job.dart';
|
import 'package:marking_app/pages/homework_correction/review_job.dart';
|
||||||
import 'package:marking_app/pages/homework_correction/quick_check_personal.dart';
|
import 'package:marking_app/pages/homework_correction/quick_check_personal.dart';
|
||||||
|
|
@ -60,8 +59,6 @@ class RouterManager {
|
||||||
static const String jobExamPagePath = '/job/exam/index';
|
static const String jobExamPagePath = '/job/exam/index';
|
||||||
// 作业 ==> 列表 ==> 参与班级
|
// 作业 ==> 列表 ==> 参与班级
|
||||||
static const String jobListParticipateInClassPath = '/job/list/participateInClass';
|
static const String jobListParticipateInClassPath = '/job/list/participateInClass';
|
||||||
// 作业 ==> 收藏页面
|
|
||||||
static const String jobFavoritePagePath = '/job/favorite/index';
|
|
||||||
|
|
||||||
static const String reportClassTeacherPath = 'report/details/reportClassTeacher';
|
static const String reportClassTeacherPath = 'report/details/reportClassTeacher';
|
||||||
static const String reportSubjectTeacherPath = 'report/details/reportSubjectTeacher';
|
static const String reportSubjectTeacherPath = 'report/details/reportSubjectTeacher';
|
||||||
|
|
@ -305,16 +302,7 @@ class RouterManager {
|
||||||
return JobStudentGroup();
|
return JobStudentGroup();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
//作业收藏页面
|
|
||||||
static final _jobFavoritePagePathHandler = Handler(
|
|
||||||
handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
|
|
||||||
int jobId = int.parse(params['jobId']![0]);
|
|
||||||
int gradeId = int.parse(params['gradeId']![0]);
|
|
||||||
int schoolId = int.parse(params['schoolId']![0]);
|
|
||||||
String className = params['className']![0];
|
|
||||||
return JobFavorite(jobId: jobId, gradeId: gradeId, schoolId: schoolId, className: className);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
// 开始阅卷页面
|
// 开始阅卷页面
|
||||||
// static final _doMarkingPapers = Handler(handlerFunc: (BuildContext? context, Map<String, List<String>> params) => MarkingPapers());
|
// static final _doMarkingPapers = Handler(handlerFunc: (BuildContext? context, Map<String, List<String>> params) => MarkingPapers());
|
||||||
|
|
@ -355,10 +343,8 @@ class RouterManager {
|
||||||
router.define(quickDataCheckPath, handler: _quickDataCheckPageHandler, transitionType: TransitionType.material);
|
router.define(quickDataCheckPath, handler: _quickDataCheckPageHandler, transitionType: TransitionType.material);
|
||||||
router.define(quickCheckPersonalPath,
|
router.define(quickCheckPersonalPath,
|
||||||
handler: _quickCheckPersonalPageHandler, transitionType: TransitionType.material);
|
handler: _quickCheckPersonalPageHandler, transitionType: TransitionType.material);
|
||||||
router.define(jobPriorityReviewSetPath,
|
router.define(jobPriorityReviewSetPath, handler: _jobPriorityReviewSetPageHandler, transitionType: TransitionType.material);
|
||||||
handler: _jobPriorityReviewSetPageHandler, transitionType: TransitionType.material);
|
|
||||||
router.define(jobStudentGroupPath, handler: _jobStudentGroupPageHandler, transitionType: TransitionType.material);
|
router.define(jobStudentGroupPath, handler: _jobStudentGroupPageHandler, transitionType: TransitionType.material);
|
||||||
router.define(jobFavoritePagePath, handler: _jobFavoritePagePathHandler, transitionType: TransitionType.material);
|
|
||||||
|
|
||||||
// getTransition()
|
// getTransition()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ import 'package:marking_app/common/model/job/job_concerned_with_student.dart';
|
||||||
import 'package:marking_app/common/model/job/job_concerned_with_student_params.dart';
|
import 'package:marking_app/common/model/job/job_concerned_with_student_params.dart';
|
||||||
import 'package:marking_app/common/model/job/job_data_report.dart';
|
import 'package:marking_app/common/model/job/job_data_report.dart';
|
||||||
import 'package:marking_app/common/model/job/job_do_marking_status_info.dart';
|
import 'package:marking_app/common/model/job/job_do_marking_status_info.dart';
|
||||||
import 'package:marking_app/common/model/job/job_favorite_item_model.dart';
|
|
||||||
import 'package:marking_app/common/model/job/job_favorite_model.dart';
|
import 'package:marking_app/common/model/job/job_favorite_model.dart';
|
||||||
import 'package:marking_app/common/model/job/job_level_set_params.dart';
|
import 'package:marking_app/common/model/job/job_level_set_params.dart';
|
||||||
import 'package:marking_app/common/model/job/job_note_taking_trajectory.dart';
|
import 'package:marking_app/common/model/job/job_note_taking_trajectory.dart';
|
||||||
|
|
@ -297,24 +296,9 @@ abstract class RestClient {
|
||||||
Future<BaseStructureResult<List<MarkingTasks>>> getJobListParticipateInClass(
|
Future<BaseStructureResult<List<MarkingTasks>>> getJobListParticipateInClass(
|
||||||
@the_retrofit.Query("markingId") int jobId);
|
@the_retrofit.Query("markingId") int jobId);
|
||||||
|
|
||||||
// 作业 => 作业收藏数量
|
// 作业 => 收藏列表
|
||||||
@the_retrofit.GET("${RequestConfig.hwProxyKeywords}/dpc-api/api/read/job-favorite-count-by-class")
|
@the_retrofit.GET("${RequestConfig.hwProxyKeywords}/dpc-api/api/read/job-favorite-count-by-class")
|
||||||
Future<BaseStructureResult<List<JobFavoriteModel>>> getListOfJobFavoriteNumber(
|
Future<BaseStructureResult<List<JobFavoriteModel>>> getListOfJobFavorites(@the_retrofit.Query("jobid") int jobId);
|
||||||
@the_retrofit.Query("jobid") int jobId);
|
|
||||||
|
|
||||||
// 作业 => 作业收藏列表
|
|
||||||
@the_retrofit.GET("${RequestConfig.hwProxyKeywords}/dpc-api/api/read/job-favorites")
|
|
||||||
Future<BaseStructureResult<List<JobFavoriteItemModel>>> getListOfJobFavorites(
|
|
||||||
@the_retrofit.Query("jobid") int jobId,
|
|
||||||
@the_retrofit.Query("gradeId") int gradeId,
|
|
||||||
@the_retrofit.Query("schoolId") int schoolId,
|
|
||||||
@the_retrofit.Query("className") String className,
|
|
||||||
);
|
|
||||||
|
|
||||||
// 作业 => 作业收藏列表
|
|
||||||
@the_retrofit.POST("${RequestConfig.hwProxyKeywords}/dpc-api/api/read/cancel-favorite")
|
|
||||||
Future<BaseStructureResult<bool>> toJobCancelFavorite(
|
|
||||||
@the_retrofit.Field() int jobId, @the_retrofit.Field() int studentId);
|
|
||||||
|
|
||||||
// 作业 => 数据快查
|
// 作业 => 数据快查
|
||||||
@the_retrofit.GET("/api/read/job-data-center-report")
|
@the_retrofit.GET("/api/read/job-data-center-report")
|
||||||
|
|
@ -338,4 +322,6 @@ abstract class RestClient {
|
||||||
// 作业 => 取消/设置优先
|
// 作业 => 取消/设置优先
|
||||||
@the_retrofit.POST("/api/read/jc-job-read-level")
|
@the_retrofit.POST("/api/read/jc-job-read-level")
|
||||||
Future<BaseStructureResult> getSetJobReadLevel(@the_retrofit.Body() JobLevelSetParams params);
|
Future<BaseStructureResult> getSetJobReadLevel(@the_retrofit.Body() JobLevelSetParams params);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue