no message
This commit is contained in:
parent
a7bdfe9af7
commit
6a3601df9b
|
|
@ -230,3 +230,4 @@ marking_app/lib/pages/homework_correction/widget/answer_handwriting.g.dart
|
||||||
marking_app/lib/pages/report_detail/report_history.g.dart
|
marking_app/lib/pages/report_detail/report_history.g.dart
|
||||||
marking_app/lib/common/model/report/report_student_history_record.g.dart
|
marking_app/lib/common/model/report/report_student_history_record.g.dart
|
||||||
marking_app/lib/common/model/report/report_student_info.g.dart
|
marking_app/lib/common/model/report/report_student_info.g.dart
|
||||||
|
marking_app/lib/common/model/marking/marking_exam_status_flag.g.dart
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
|
part 'marking_exam_status_flag.g.dart';
|
||||||
|
|
||||||
|
@JsonSerializable()
|
||||||
|
class MarkingExamStatusFlag extends Object {
|
||||||
|
@JsonKey(name: 'markingUserDetailId')
|
||||||
|
int markingUserDetailId;
|
||||||
|
|
||||||
|
@JsonKey(name: 'markingFlag')
|
||||||
|
int? markingFlag;
|
||||||
|
|
||||||
|
MarkingExamStatusFlag({required this.markingUserDetailId, this.markingFlag});
|
||||||
|
|
||||||
|
factory MarkingExamStatusFlag.fromJson(Map<String, dynamic> srcJson) => _$MarkingExamStatusFlagFromJson(srcJson);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$MarkingExamStatusFlagToJson(this);
|
||||||
|
}
|
||||||
|
|
@ -6,8 +6,6 @@
|
||||||
* @FilePath: \marking_app\lib\common\model\marking\marking_text_question.dart
|
* @FilePath: \marking_app\lib\common\model\marking\marking_text_question.dart
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
import 'dart:convert';
|
|
||||||
|
|
||||||
import 'package:json_annotation/json_annotation.dart';
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
import 'package:marking_app/common/model/marking/progress_of_marking.dart';
|
import 'package:marking_app/common/model/marking/progress_of_marking.dart';
|
||||||
import 'package:marking_app/utils/image/gallery_example_item_model.dart';
|
import 'package:marking_app/utils/image/gallery_example_item_model.dart';
|
||||||
|
|
@ -57,6 +55,9 @@ class MarkingTextQuestion extends Object {
|
||||||
// @JsonKey(name: 'currentIndex')
|
// @JsonKey(name: 'currentIndex')
|
||||||
// int currentIndex;
|
// int currentIndex;
|
||||||
|
|
||||||
|
@JsonKey(name: 'markingFlag') // 试题状态 默认null 1:优秀 2:错误卷
|
||||||
|
int? markingFlag;
|
||||||
|
|
||||||
@JsonKey(name: 'lastOne')
|
@JsonKey(name: 'lastOne')
|
||||||
bool lastOne;
|
bool lastOne;
|
||||||
|
|
||||||
|
|
@ -159,7 +160,6 @@ class MarkingTextQuestion extends Object {
|
||||||
// return HistoricalScoring.fromJson(e as Map<String, dynamic>);
|
// return HistoricalScoring.fromJson(e as Map<String, dynamic>);
|
||||||
// }).toList();
|
// }).toList();
|
||||||
// }
|
// }
|
||||||
// TODO 删除
|
|
||||||
// this.historicalScorings = [
|
// this.historicalScorings = [
|
||||||
// HistoricalScoring.fromJson({'scorel': 1.5, 'name': 'wy', 'markingUserld': 121321231313}),
|
// HistoricalScoring.fromJson({'scorel': 1.5, 'name': 'wy', 'markingUserld': 121321231313}),
|
||||||
// HistoricalScoring.fromJson({'scorel': 5, 'name': '汪杨', 'markingUserld': 121321231313})
|
// HistoricalScoring.fromJson({'scorel': 5, 'name': '汪杨', 'markingUserld': 121321231313})
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:marking_app/common/model/enum/review_marks_bottom_btns_enum.dart';
|
import 'package:marking_app/common/model/enum/review_marks_bottom_btns_enum.dart';
|
||||||
import 'package:marking_app/common/model/event_bus/bottom_annotation_switch_cleanall.dart';
|
import 'package:marking_app/common/model/event_bus/bottom_annotation_switch_cleanall.dart';
|
||||||
|
import 'package:marking_app/common/model/marking/marking_text_question.dart';
|
||||||
import 'package:marking_app/pages/common/event_bus_mixin.dart';
|
import 'package:marking_app/pages/common/event_bus_mixin.dart';
|
||||||
import 'package:marking_app/utils/anti_shake_throttling.dart';
|
import 'package:marking_app/utils/anti_shake_throttling.dart';
|
||||||
import 'package:marking_app/utils/my_text.dart';
|
import 'package:marking_app/utils/my_text.dart';
|
||||||
|
|
@ -12,7 +13,9 @@ import '../provider/do_paper_bottom_review_marks_provider.dart';
|
||||||
|
|
||||||
// 底部批阅动作切换区域
|
// 底部批阅动作切换区域
|
||||||
class DoPaperBottomReviewMarks extends StatefulHookConsumerWidget {
|
class DoPaperBottomReviewMarks extends StatefulHookConsumerWidget {
|
||||||
const DoPaperBottomReviewMarks({super.key});
|
final MarkingTextQuestion data;
|
||||||
|
final Function(int) examStatusCall;
|
||||||
|
const DoPaperBottomReviewMarks(this.data, this.examStatusCall, {super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
ConsumerState<DoPaperBottomReviewMarks> createState() => _DoPaperBottomReviewMarksState();
|
ConsumerState<DoPaperBottomReviewMarks> createState() => _DoPaperBottomReviewMarksState();
|
||||||
|
|
@ -35,6 +38,9 @@ class _DoPaperBottomReviewMarksState extends ConsumerState<DoPaperBottomReviewMa
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var btnEnum = ref.watch(doPaperBottomReviewMarksProvider);
|
var btnEnum = ref.watch(doPaperBottomReviewMarksProvider);
|
||||||
Color actionColor = Theme.of(context).primaryColor.withOpacity(0.9);
|
Color actionColor = Theme.of(context).primaryColor.withOpacity(0.9);
|
||||||
|
var markingFlag = widget.data.markingFlag; // 试卷状态 默认null 1:优秀 2:错误卷
|
||||||
|
|
||||||
|
print('状态:$markingFlag');
|
||||||
return Positioned(
|
return Positioned(
|
||||||
left: 3.w,
|
left: 3.w,
|
||||||
bottom: 6.h,
|
bottom: 6.h,
|
||||||
|
|
@ -80,41 +86,77 @@ class _DoPaperBottomReviewMarksState extends ConsumerState<DoPaperBottomReviewMa
|
||||||
icon: Icon(Icons.reply_outlined,
|
icon: Icon(Icons.reply_outlined,
|
||||||
color: btnEnum == ReviewMarksBottomBtnsEnum.RETURN_PREVIOUS_LEVEL ? actionColor : Colors.white, size: 34.r),
|
color: btnEnum == ReviewMarksBottomBtnsEnum.RETURN_PREVIOUS_LEVEL ? actionColor : Colors.white, size: 34.r),
|
||||||
),
|
),
|
||||||
SizedBox(width: 4.w),
|
SizedBox(width: 10.w),
|
||||||
// 批阅痕迹 ==> 清空
|
// 批阅痕迹 ==> 清空
|
||||||
IconButton(
|
// IconButton(
|
||||||
onPressed: () => easyThrottle(
|
// onPressed: () => easyThrottle(
|
||||||
|
// 'REVIEW_MARKS_BOTTOM_BTNS',
|
||||||
|
// duration: const Duration(milliseconds: 100),
|
||||||
|
// () async {
|
||||||
|
// var resFlag = await showDialog<bool>(
|
||||||
|
// context: context,
|
||||||
|
// builder: (BuildContext context) {
|
||||||
|
// return CupertinoAlertDialog(
|
||||||
|
// title: quickText('撤销批阅痕迹', size: 14.sp, color: Color.fromARGB(255, 53, 52, 52)),
|
||||||
|
// content: SingleChildScrollView(
|
||||||
|
// padding: EdgeInsets.only(top: 4.h),
|
||||||
|
// child: RichText(text: TextSpan(text: '请确认需要撤销所有批阅痕迹?', style: TextStyle(color: Color.fromARGB(255, 58, 58, 58)))),
|
||||||
|
// ),
|
||||||
|
// actions: <Widget>[
|
||||||
|
// CupertinoDialogAction(
|
||||||
|
// child: Text("取消", style: TextStyle(color: Color.fromARGB(255, 58, 58, 58))),
|
||||||
|
// onPressed: () => Navigator.of(context).pop(false),
|
||||||
|
// ),
|
||||||
|
// CupertinoDialogAction(
|
||||||
|
// child: Text("确定"),
|
||||||
|
// onPressed: () => Navigator.of(context).pop(true),
|
||||||
|
// ),
|
||||||
|
// ],
|
||||||
|
// );
|
||||||
|
// },
|
||||||
|
// );
|
||||||
|
// if (resFlag == true) eventFire(model: BottomAnnotationSwitchCleanallOfMarking(cleanAll: true));
|
||||||
|
// },
|
||||||
|
// ),
|
||||||
|
// padding: EdgeInsets.zero,
|
||||||
|
// icon: Icon(Icons.reply_all_outlined, color: btnEnum == ReviewMarksBottomBtnsEnum.CLEAR_ALL ? actionColor : Colors.white, size: 34.r),
|
||||||
|
// ),
|
||||||
|
GestureDetector(
|
||||||
|
onTap: () => easyThrottle(
|
||||||
'REVIEW_MARKS_BOTTOM_BTNS',
|
'REVIEW_MARKS_BOTTOM_BTNS',
|
||||||
duration: const Duration(milliseconds: 100),
|
duration: const Duration(milliseconds: 100),
|
||||||
() async {
|
() async => widget.examStatusCall(1),
|
||||||
var resFlag = await showDialog<bool>(
|
|
||||||
context: context,
|
|
||||||
builder: (BuildContext context) {
|
|
||||||
return CupertinoAlertDialog(
|
|
||||||
title: quickText('撤销批阅痕迹', size: 14.sp, color: Color.fromARGB(255, 53, 52, 52)),
|
|
||||||
content: SingleChildScrollView(
|
|
||||||
padding: EdgeInsets.only(top: 4.h),
|
|
||||||
child: RichText(text: TextSpan(text: '请确认需要撤销所有批阅痕迹?', style: TextStyle(color: Color.fromARGB(255, 58, 58, 58)))),
|
|
||||||
),
|
),
|
||||||
actions: <Widget>[
|
child: quickText(
|
||||||
CupertinoDialogAction(
|
'优',
|
||||||
child: Text("取消", style: TextStyle(color: Color.fromARGB(255, 58, 58, 58))),
|
size: 23.sp,
|
||||||
onPressed: () => Navigator.of(context).pop(false),
|
fontWeight: FontWeight.bold,
|
||||||
|
color: markingFlag == 1 ? Theme.of(context).primaryColor : Colors.white,
|
||||||
),
|
),
|
||||||
CupertinoDialogAction(
|
|
||||||
child: Text("确定"),
|
|
||||||
onPressed: () => Navigator.of(context).pop(true),
|
|
||||||
),
|
),
|
||||||
],
|
SizedBox(width: 5.w),
|
||||||
);
|
GestureDetector(
|
||||||
},
|
onTap: () => easyThrottle(
|
||||||
);
|
'REVIEW_MARKS_BOTTOM_BTNS',
|
||||||
if (resFlag == true) eventFire(model: BottomAnnotationSwitchCleanallOfMarking(cleanAll: true));
|
duration: const Duration(milliseconds: 100),
|
||||||
},
|
() async => widget.examStatusCall(2),
|
||||||
),
|
),
|
||||||
padding: EdgeInsets.zero,
|
child: quickText(
|
||||||
icon: Icon(Icons.reply_all_outlined, color: btnEnum == ReviewMarksBottomBtnsEnum.CLEAR_ALL ? actionColor : Colors.white, size: 34.r),
|
'错',
|
||||||
|
size: 23.sp,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color: markingFlag == 2 ? Theme.of(context).primaryColor : Colors.white,
|
||||||
),
|
),
|
||||||
|
),
|
||||||
|
// IconButton(
|
||||||
|
// onPressed: () => easyThrottle(
|
||||||
|
// 'REVIEW_MARKS_BOTTOM_BTNS',
|
||||||
|
// duration: const Duration(milliseconds: 100),
|
||||||
|
// () async {},
|
||||||
|
// ),
|
||||||
|
// padding: EdgeInsets.zero,
|
||||||
|
// icon: Icon(Icons.reply_all_outlined, color: btnEnum == ReviewMarksBottomBtnsEnum.CLEAR_ALL ? actionColor : Colors.white, size: 34.r),
|
||||||
|
// ),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,11 @@ import 'package:marking_app/common/model/enum/KeyboardType.dart';
|
||||||
import 'package:marking_app/common/model/enum/marking_list_type.dart';
|
import 'package:marking_app/common/model/enum/marking_list_type.dart';
|
||||||
import 'package:marking_app/common/model/enum/review_marks_bottom_btns_enum.dart';
|
import 'package:marking_app/common/model/enum/review_marks_bottom_btns_enum.dart';
|
||||||
import 'package:marking_app/common/model/event_bus/bottom_annotation_switch_cleanall.dart';
|
import 'package:marking_app/common/model/event_bus/bottom_annotation_switch_cleanall.dart';
|
||||||
|
import 'package:marking_app/common/model/job/upload_file_interface_config_params.dart';
|
||||||
import 'package:marking_app/common/model/marking/current_review_task.dart';
|
import 'package:marking_app/common/model/marking/current_review_task.dart';
|
||||||
import 'package:marking_app/common/model/marking/do_marking_keyboard_model.dart';
|
import 'package:marking_app/common/model/marking/do_marking_keyboard_model.dart';
|
||||||
import 'package:marking_app/common/model/marking/keyboard_assist_event.dart';
|
import 'package:marking_app/common/model/marking/keyboard_assist_event.dart';
|
||||||
|
import 'package:marking_app/common/model/marking/marking_exam_status_flag.dart';
|
||||||
import 'package:marking_app/common/model/marking/marking_tag_single_params.dart';
|
import 'package:marking_app/common/model/marking/marking_tag_single_params.dart';
|
||||||
import 'package:marking_app/common/model/marking/marking_text_question.dart';
|
import 'package:marking_app/common/model/marking/marking_text_question.dart';
|
||||||
import 'package:marking_app/common/model/marking/marking_text_question_params.dart';
|
import 'package:marking_app/common/model/marking/marking_text_question_params.dart';
|
||||||
|
|
@ -312,6 +314,13 @@ class _MarkingPapersState extends ConsumerState<DoPapers>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> toMarkingFlag(int markingUserDetailId, int? markingFlag) async {
|
||||||
|
// toMarkingFlag
|
||||||
|
var _client = await getClient();
|
||||||
|
var res = await _client.toMarkingFlag(MarkingExamStatusFlag(markingUserDetailId: markingUserDetailId, markingFlag: markingFlag));
|
||||||
|
if (res.success) toUpState(setState, () => currentQuestion?.markingFlag = markingFlag, mounted);
|
||||||
|
}
|
||||||
|
|
||||||
// 查看答案
|
// 查看答案
|
||||||
void viewAnswer() async {
|
void viewAnswer() async {
|
||||||
String? questionNum = currentQuestion?.questionNum;
|
String? questionNum = currentQuestion?.questionNum;
|
||||||
|
|
@ -1933,7 +1942,7 @@ class _MarkingPapersState extends ConsumerState<DoPapers>
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
$ExamStatusBox(data), // 试卷状态
|
||||||
// 大题评分展示框
|
// 大题评分展示框
|
||||||
if (!hasSubtopic)
|
if (!hasSubtopic)
|
||||||
Positioned(
|
Positioned(
|
||||||
|
|
@ -1953,10 +1962,7 @@ class _MarkingPapersState extends ConsumerState<DoPapers>
|
||||||
data.completeRating
|
data.completeRating
|
||||||
? getDoubleRemoveZero(data.score)
|
? getDoubleRemoveZero(data.score)
|
||||||
: '请评分,满分${getDoubleRemoveZero(currentQuestion?.totalScore)}',
|
: '请评分,满分${getDoubleRemoveZero(currentQuestion?.totalScore)}',
|
||||||
style: TextStyle(
|
style: TextStyle(fontSize: 18.sp, color: const Color.fromRGBO(46, 91, 255, 1)),
|
||||||
fontSize: 18.sp,
|
|
||||||
color: const Color.fromRGBO(46, 91, 255, 1),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -2002,7 +2008,10 @@ class _MarkingPapersState extends ConsumerState<DoPapers>
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
// 底部批阅痕迹按钮
|
// 底部批阅痕迹按钮
|
||||||
DoPaperBottomReviewMarks(),
|
DoPaperBottomReviewMarks(data, (e) async {
|
||||||
|
// 试卷状态切换
|
||||||
|
await toMarkingFlag(data.id, data.markingFlag == e ? null : e);
|
||||||
|
}),
|
||||||
// 下一题 按钮
|
// 下一题 按钮
|
||||||
if (!_theOldAnnotationGraffiti && pressedNextTest != null && isNormal)
|
if (!_theOldAnnotationGraffiti && pressedNextTest != null && isNormal)
|
||||||
Positioned(
|
Positioned(
|
||||||
|
|
@ -2756,3 +2765,74 @@ Widget $arbitrationQuestionInfo({required bool show, required bool isBroadwise,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 试卷状态 优秀卷 错误卷 默认卷
|
||||||
|
@hwidget
|
||||||
|
Widget $examStatusBox(MarkingTextQuestion? data) {
|
||||||
|
ValueNotifier<int> markingFlag = useState(data?.markingFlag ?? 0);
|
||||||
|
|
||||||
|
useValueChanged<int?, void>(data?.markingFlag, (oldValue, oldResult) {
|
||||||
|
markingFlag.value = data?.markingFlag ?? 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (data == null || data.markingFlag == null || markingFlag.value == 0) return Container();
|
||||||
|
|
||||||
|
var _strVal = markingFlag.value == 1 ? '优' : '错';
|
||||||
|
return Positioned(
|
||||||
|
top: 60.h,
|
||||||
|
left: 4.w,
|
||||||
|
child: CustomPaint(
|
||||||
|
painter: CircleWithText(_strVal),
|
||||||
|
size: Size(90.r, 90.r), // 设置你需要的尺寸
|
||||||
|
),
|
||||||
|
// Container(
|
||||||
|
// padding: EdgeInsets.symmetric(horizontal: 6.w, vertical: 10.h),
|
||||||
|
// decoration: BoxDecoration(
|
||||||
|
// borderRadius: BorderRadius.circular(100.r),
|
||||||
|
// border: Border.all(width: 10.r, color: Colors.red),
|
||||||
|
// ),
|
||||||
|
// child: quickText(markingFlag.value == 1 ? '优秀' : '错误'),
|
||||||
|
// ),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
class CircleWithText extends CustomPainter {
|
||||||
|
final String textVal;
|
||||||
|
const CircleWithText(this.textVal);
|
||||||
|
@override
|
||||||
|
void paint(Canvas canvas, Size size) {
|
||||||
|
final paint = Paint()
|
||||||
|
..style = PaintingStyle.stroke
|
||||||
|
..strokeWidth = 5.r
|
||||||
|
..color = Colors.red.withOpacity(0.8);
|
||||||
|
|
||||||
|
// 绘制红色圆圈边框
|
||||||
|
final radius = size.width / 2; // 假设宽高相等,取宽度的一半作为半径
|
||||||
|
canvas.drawCircle(Offset(size.width / 2, size.height / 2), radius, paint);
|
||||||
|
|
||||||
|
// 绘制“优”字
|
||||||
|
final textSpan = TextSpan(text: textVal, style: TextStyle(color: Colors.red.withOpacity(0.8), fontWeight: FontWeight.bold, fontSize: 44.sp));
|
||||||
|
|
||||||
|
final textPainter =
|
||||||
|
TextPainter(text: TextSpan(children: [textSpan]), textDirection: TextDirection.ltr, textAlign: TextAlign.center, textScaleFactor: 1.0);
|
||||||
|
|
||||||
|
// 只设置maxWidth,因为TextPainter.layout不需要maxHeight
|
||||||
|
textPainter.layout(maxWidth: size.width);
|
||||||
|
|
||||||
|
// 计算文本绘制的偏移量,使其居中
|
||||||
|
final offset = Offset(
|
||||||
|
(size.width - textPainter.width) / 2,
|
||||||
|
(size.height - textPainter.height) / 2,
|
||||||
|
);
|
||||||
|
|
||||||
|
// 注意:这里textPainter.height可能不准确,因为TextPainter默认不会自动换行
|
||||||
|
// 如果需要精确控制文本在圆中的位置,可能需要手动调整偏移量
|
||||||
|
|
||||||
|
textPainter.paint(canvas, offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool shouldRepaint(CustomPainter oldDelegate) {
|
||||||
|
return oldDelegate != this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ import 'package:marking_app/common/model/job/review_again_list_params.dart';
|
||||||
import 'package:marking_app/common/model/job/upload_file_interface_config.dart';
|
import 'package:marking_app/common/model/job/upload_file_interface_config.dart';
|
||||||
import 'package:marking_app/common/model/job/upload_file_interface_config_params.dart';
|
import 'package:marking_app/common/model/job/upload_file_interface_config_params.dart';
|
||||||
import 'package:marking_app/common/model/marking/marking_abnormal_res.dart';
|
import 'package:marking_app/common/model/marking/marking_abnormal_res.dart';
|
||||||
|
import 'package:marking_app/common/model/marking/marking_exam_status_flag.dart';
|
||||||
import 'package:marking_app/common/model/marking/marking_item.dart';
|
import 'package:marking_app/common/model/marking/marking_item.dart';
|
||||||
import 'package:marking_app/common/model/marking/marking_list_params.dart';
|
import 'package:marking_app/common/model/marking/marking_list_params.dart';
|
||||||
import 'package:marking_app/common/model/marking/marking_statistics.dart';
|
import 'package:marking_app/common/model/marking/marking_statistics.dart';
|
||||||
|
|
@ -194,6 +195,9 @@ abstract class RestClient {
|
||||||
@the_retrofit.GET("/api/Upload")
|
@the_retrofit.GET("/api/Upload")
|
||||||
Future<BaseStructureResult<UploadFileInterfaceConfig>> getMarkingUploadFile(@the_retrofit.Queries() UploadFileInterfaceConfigParams params);
|
Future<BaseStructureResult<UploadFileInterfaceConfig>> getMarkingUploadFile(@the_retrofit.Queries() UploadFileInterfaceConfigParams params);
|
||||||
|
|
||||||
|
// 阅卷 => 上传图片请求参数
|
||||||
|
@the_retrofit.PUT("/api/marking/flag")
|
||||||
|
Future<BaseStructureResult> toMarkingFlag(@the_retrofit.Body() MarkingExamStatusFlag params);
|
||||||
// ------------------------------------------ 作业 ------------------------------------------
|
// ------------------------------------------ 作业 ------------------------------------------
|
||||||
|
|
||||||
// 作业 => 作业列表
|
// 作业 => 作业列表
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue