mcy_new #1

Merged
wangyang merged 179 commits from mcy_new into master 2025-08-28 10:10:45 +08:00
6 changed files with 53 additions and 29 deletions
Showing only changes of commit 99b0aca3d3 - Show all commits

View File

@ -1,5 +1,3 @@
import 'dart:io';
import 'package:dio/dio.dart' hide Headers;
import 'package:making_school_asignment_app/common/job/marking_models/do_paper_details_param.dart';
import 'package:making_school_asignment_app/common/job/marking_models/do_paper_details_result.dart';

View File

@ -1,6 +1,10 @@
import 'package:dio/dio.dart';
import 'package:making_school_asignment_app/common/request/rest_dio.dart';
import 'package:making_school_asignment_app/common/api/retrofit_client.dart';
mixin RequestToolMixin {
// DIO
Dio getClientDio() => RequestTool.instance.getDio();
// Client
RetrofitClient getClient() => RequestTool.instance.getClient();
}

View File

@ -11,6 +11,7 @@ import 'package:making_school_asignment_app/common/utils/toast_utils.dart';
import 'package:making_school_asignment_app/routes/app_pages.dart';
class RequestTool {
static late Dio _dio;
//
static _init() {
BaseOptions options = BaseOptions(
@ -18,16 +19,16 @@ class RequestTool {
connectTimeout: const Duration(milliseconds: RequestConfig.connectTimeout),
receiveTimeout: const Duration(milliseconds: RequestConfig.receiveTimeout),
);
Dio dio = Dio(options);
dio.interceptors.add(AuthInterceptor()); // token
dio.interceptors.add(ResponseHandle()); //
dio.interceptors.add(TheError()); //
_dio = Dio(options);
_dio.interceptors.add(AuthInterceptor()); // token
_dio.interceptors.add(ResponseHandle()); //
_dio.interceptors.add(TheError()); //
const isProd = bool.fromEnvironment('dart.vm.product');
if (!isProd && RequestConfig.requestDataPrinting) {
dio.interceptors.add(LogInterceptor(responseBody: true, requestBody: true)); //
_dio.interceptors.add(LogInterceptor(responseBody: true, requestBody: true)); //
}
return RetrofitClient(dio, baseUrl: RequestConfig().baseUrl);
return RetrofitClient(_dio, baseUrl: RequestConfig().baseUrl);
}
final RetrofitClient _client;
@ -43,6 +44,9 @@ class RequestTool {
return _instance!;
}
// DIO
Dio getDio() => _dio;
RetrofitClient getClient() => _client;
}

View File

@ -7,6 +7,7 @@ import 'package:flutter_spinkit/flutter_spinkit.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:functional_widget_annotation/functional_widget_annotation.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/original_manuscript_handwriting_params.dart';
import 'package:making_school_asignment_app/common/mixins/event_bus_mixin.dart';
@ -45,13 +46,18 @@ class AnswerHandwriting extends Dialog {
final _handwritingLogic = Get.find<HandwritingLogic>();
@override
Widget build(BuildContext context) {
var boxHeight = ScreenUtil().screenHeight / 1.168; //
var boxWidth = ScreenUtil().screenWidth - (ScreenUtil().scaleWidth < 1.5 ? 40.r : 40.r); //
return Center(
child: Container(
height: ScreenUtil().screenHeight / 1.2,
width: ScreenUtil().screenWidth - (ScreenUtil().scaleWidth < 1.5 ? 40.r : 40.r),
height: boxHeight,
width: boxWidth,
alignment: Alignment.center,
child: AnswerHandwritingMainBox(
handwritingLogic: _handwritingLogic,
boxHeight: boxHeight,
boxWidth: boxWidth,
homeworkId: homeworkId,
templateId: templateId,
studentId: studentId,
@ -101,6 +107,8 @@ class AnswerHandwritingMainBox extends HookWidget with EventBusMixin {
required this.homeworkId,
required this.studentId,
required this.closeCall,
required this.boxHeight,
required this.boxWidth,
this.templateId,
this.pageNum,
this.questionNo,
@ -110,6 +118,8 @@ class AnswerHandwritingMainBox extends HookWidget with EventBusMixin {
final HandwritingLogic handwritingLogic;
final String homeworkId;
final double boxHeight;
final double boxWidth;
final int? templateId;
final int studentId;
final int? pageNum;
@ -119,7 +129,8 @@ class AnswerHandwritingMainBox extends HookWidget with EventBusMixin {
@override
Widget build(BuildContext context) {
var _useStateModel = UseMainBoxState.use(homeworkId, studentId, pageNum, questionNo, templateId);
double barHeight = 62.h;
double imageHeight = boxHeight - barHeight;
useValueChanged<JobHandwriting?, void>(_useStateModel.handwritingData.value, (_, __) {
var theData = _useStateModel.handwritingData.value;
_useStateModel.pageNum.value = theData?.pageNum;
@ -148,25 +159,27 @@ class AnswerHandwritingMainBox extends HookWidget with EventBusMixin {
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
SizedBox(
height: imageHeight,
width: boxWidth,
child: Stack(
alignment: const FractionalOffset(0, 0.5),
children: [
//
LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) {
return HandwritingDrawBox(
boxWidth: constraints.maxWidth,
boxHeight: constraints.maxHeight,
SingleChildScrollView(
child: HandwritingDrawBox(
boxWidth: boxWidth,
boxHeight: boxHeight,
key: _useStateModel.handwritingKey,
);
}),
),
),
PageNumberBox(),
PreviousNutton(), //
NextPageButton(), //
],
),
),
$BottomPlaybar(handwritingLogic),
$BottomPlaybar(barHeight, handwritingLogic),
],
);
}
@ -366,10 +379,7 @@ class _HandwritingDrawBoxState extends State<HandwritingDrawBox> with EventBusMi
}
});
executionDataStream = handwritingLogic.toolbar.executionData.listen((e) {
print('555555555555555555555555555555');
_vnHandWritings.value = e;
});
executionDataStream = handwritingLogic.toolbar.executionData.listen((e) => _vnHandWritings.value = e);
eventOn(callback: (e) {
switch (e.runtimeType) {
@ -611,11 +621,11 @@ class PageNumberBox extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Obx(() {
return quickText('${handwritingLogic.resultData.value?.pageNum}', color: Colors.white, size: 11.sp, align: TextAlign.end);
return quickText('${handwritingLogic.resultData.value?.pageNum ?? 0}', color: Colors.white, size: 11.sp, align: TextAlign.end);
}),
quickText('/', color: Colors.white, size: 10.sp, align: TextAlign.end),
Obx(() {
return quickText('${handwritingLogic.resultData.value?.pageCount}', color: Colors.white, size: 8.sp, align: TextAlign.end);
return quickText('${handwritingLogic.resultData.value?.pageCount ?? 0}', color: Colors.white, size: 8.sp, align: TextAlign.end);
}),
],
)),
@ -624,7 +634,7 @@ class PageNumberBox extends StatelessWidget {
}
@hwidget
Widget $bottomPlaybar(BuildContext context, HandwritingLogic handwritingLogic) {
Widget $bottomPlaybar(BuildContext context, double barHeight, HandwritingLogic handwritingLogic) {
var timeConsuming = useState(0);
var handwritingInfo = useState<HandwritingInfo?>(null);
@ -704,10 +714,10 @@ Widget $bottomPlaybar(BuildContext context, HandwritingLogic handwritingLogic) {
}, []);
return Container(
height: 62.h,
height: barHeight,
padding: EdgeInsets.symmetric(horizontal: 10.w),
alignment: Alignment.center,
color: Color.fromRGBO(0, 0, 0, 0.4),
color: const Color.fromRGBO(0, 0, 0, 0.4),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [

View File

@ -2,6 +2,7 @@
import 'dart:ui';
import 'package:get/get.dart';
import 'package:making_school_asignment_app/common/config/request_config.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/mixins/request_tool_mixin.dart';
@ -40,16 +41,21 @@ class HandwritingLogic extends GetxController with RequestToolMixin {
Future<void> getData() async {
if (params.value == null) return;
var dio = getClientDio();
try {
ToastUtils.showLoading();
toolbar.initialization.value = false;
imagInfoModel.value = null;
//
dio.options.receiveTimeout = const Duration(seconds: 20);
var res = await getClient().getOriginalManuscriptHandwriting(params.value!);
resultData.value = res;
} catch (e) {
ToastUtils.showError('获取笔迹数据报错,请重试');
backCall();
} finally {
dio.options.receiveTimeout = const Duration(milliseconds: RequestConfig.receiveTimeout); //
ToastUtils.dismiss();
}
}

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.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/ReturnToHomepage.dart';
import 'package:making_school_asignment_app/page/home_page/children/homework_review/components/original_manuscript_handwriting/answer_handwriting_view.dart';
@ -75,7 +76,8 @@ class _StudentPersonalPageState extends State<StudentPersonalPage> {
width: 10.r,
),
InkWell(
onTap: () => showAnswerHandwriting(context, homeworkId: state.homeworkId, studentId: state.studentId),
onTap: () =>
showAnswerHandwriting(context, homeworkId: state.homeworkId, studentId: state.studentId).then((e) => ToastUtils.dismiss()),
child: Container(
width: 93.r,
height: 28.r,