mcy_new #1
|
|
@ -1,5 +1,3 @@
|
||||||
import 'dart:io';
|
|
||||||
|
|
||||||
import 'package:dio/dio.dart' hide Headers;
|
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_param.dart';
|
||||||
import 'package:making_school_asignment_app/common/job/marking_models/do_paper_details_result.dart';
|
import 'package:making_school_asignment_app/common/job/marking_models/do_paper_details_result.dart';
|
||||||
|
|
|
||||||
|
|
@ -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/request/rest_dio.dart';
|
||||||
import 'package:making_school_asignment_app/common/api/retrofit_client.dart';
|
import 'package:making_school_asignment_app/common/api/retrofit_client.dart';
|
||||||
|
|
||||||
mixin RequestToolMixin {
|
mixin RequestToolMixin {
|
||||||
|
// 获取DIO
|
||||||
|
Dio getClientDio() => RequestTool.instance.getDio();
|
||||||
|
// 获取Client
|
||||||
RetrofitClient getClient() => RequestTool.instance.getClient();
|
RetrofitClient getClient() => RequestTool.instance.getClient();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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';
|
import 'package:making_school_asignment_app/routes/app_pages.dart';
|
||||||
|
|
||||||
class RequestTool {
|
class RequestTool {
|
||||||
|
static late Dio _dio;
|
||||||
// 初始化请求配置
|
// 初始化请求配置
|
||||||
static _init() {
|
static _init() {
|
||||||
BaseOptions options = BaseOptions(
|
BaseOptions options = BaseOptions(
|
||||||
|
|
@ -18,16 +19,16 @@ class RequestTool {
|
||||||
connectTimeout: const Duration(milliseconds: RequestConfig.connectTimeout),
|
connectTimeout: const Duration(milliseconds: RequestConfig.connectTimeout),
|
||||||
receiveTimeout: const Duration(milliseconds: RequestConfig.receiveTimeout),
|
receiveTimeout: const Duration(milliseconds: RequestConfig.receiveTimeout),
|
||||||
);
|
);
|
||||||
Dio dio = Dio(options);
|
_dio = Dio(options);
|
||||||
dio.interceptors.add(AuthInterceptor()); // 添加 token
|
_dio.interceptors.add(AuthInterceptor()); // 添加 token
|
||||||
dio.interceptors.add(ResponseHandle()); // 添加 数据返回拦截
|
_dio.interceptors.add(ResponseHandle()); // 添加 数据返回拦截
|
||||||
dio.interceptors.add(TheError()); // 添加 数据返回拦截
|
_dio.interceptors.add(TheError()); // 添加 数据返回拦截
|
||||||
const isProd = bool.fromEnvironment('dart.vm.product');
|
const isProd = bool.fromEnvironment('dart.vm.product');
|
||||||
if (!isProd && RequestConfig.requestDataPrinting) {
|
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;
|
final RetrofitClient _client;
|
||||||
|
|
@ -43,6 +44,9 @@ class RequestTool {
|
||||||
return _instance!;
|
return _instance!;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DIO
|
||||||
|
Dio getDio() => _dio;
|
||||||
|
|
||||||
RetrofitClient getClient() => _client;
|
RetrofitClient getClient() => _client;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ 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';
|
||||||
|
|
@ -45,13 +46,18 @@ class AnswerHandwriting extends Dialog {
|
||||||
final _handwritingLogic = Get.find<HandwritingLogic>();
|
final _handwritingLogic = Get.find<HandwritingLogic>();
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
var boxHeight = ScreenUtil().screenHeight / 1.168; // 盒子高度
|
||||||
|
var boxWidth = ScreenUtil().screenWidth - (ScreenUtil().scaleWidth < 1.5 ? 40.r : 40.r); // 盒子宽度
|
||||||
|
|
||||||
return Center(
|
return Center(
|
||||||
child: Container(
|
child: Container(
|
||||||
height: ScreenUtil().screenHeight / 1.2,
|
height: boxHeight,
|
||||||
width: ScreenUtil().screenWidth - (ScreenUtil().scaleWidth < 1.5 ? 40.r : 40.r),
|
width: boxWidth,
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
child: AnswerHandwritingMainBox(
|
child: AnswerHandwritingMainBox(
|
||||||
handwritingLogic: _handwritingLogic,
|
handwritingLogic: _handwritingLogic,
|
||||||
|
boxHeight: boxHeight,
|
||||||
|
boxWidth: boxWidth,
|
||||||
homeworkId: homeworkId,
|
homeworkId: homeworkId,
|
||||||
templateId: templateId,
|
templateId: templateId,
|
||||||
studentId: studentId,
|
studentId: studentId,
|
||||||
|
|
@ -101,6 +107,8 @@ class AnswerHandwritingMainBox extends HookWidget with EventBusMixin {
|
||||||
required this.homeworkId,
|
required this.homeworkId,
|
||||||
required this.studentId,
|
required this.studentId,
|
||||||
required this.closeCall,
|
required this.closeCall,
|
||||||
|
required this.boxHeight,
|
||||||
|
required this.boxWidth,
|
||||||
this.templateId,
|
this.templateId,
|
||||||
this.pageNum,
|
this.pageNum,
|
||||||
this.questionNo,
|
this.questionNo,
|
||||||
|
|
@ -110,6 +118,8 @@ class AnswerHandwritingMainBox extends HookWidget with EventBusMixin {
|
||||||
final HandwritingLogic handwritingLogic;
|
final HandwritingLogic handwritingLogic;
|
||||||
|
|
||||||
final String homeworkId;
|
final String homeworkId;
|
||||||
|
final double boxHeight;
|
||||||
|
final double boxWidth;
|
||||||
final int? templateId;
|
final int? templateId;
|
||||||
final int studentId;
|
final int studentId;
|
||||||
final int? pageNum;
|
final int? pageNum;
|
||||||
|
|
@ -119,7 +129,8 @@ class AnswerHandwritingMainBox extends HookWidget with EventBusMixin {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var _useStateModel = UseMainBoxState.use(homeworkId, studentId, pageNum, questionNo, templateId);
|
var _useStateModel = UseMainBoxState.use(homeworkId, studentId, pageNum, questionNo, templateId);
|
||||||
|
double barHeight = 62.h;
|
||||||
|
double imageHeight = boxHeight - barHeight;
|
||||||
useValueChanged<JobHandwriting?, void>(_useStateModel.handwritingData.value, (_, __) {
|
useValueChanged<JobHandwriting?, void>(_useStateModel.handwritingData.value, (_, __) {
|
||||||
var theData = _useStateModel.handwritingData.value;
|
var theData = _useStateModel.handwritingData.value;
|
||||||
_useStateModel.pageNum.value = theData?.pageNum;
|
_useStateModel.pageNum.value = theData?.pageNum;
|
||||||
|
|
@ -148,25 +159,27 @@ class AnswerHandwritingMainBox extends HookWidget with EventBusMixin {
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
SizedBox(
|
||||||
|
height: imageHeight,
|
||||||
|
width: boxWidth,
|
||||||
child: Stack(
|
child: Stack(
|
||||||
alignment: const FractionalOffset(0, 0.5),
|
alignment: const FractionalOffset(0, 0.5),
|
||||||
children: [
|
children: [
|
||||||
// 图片展示主框
|
// 图片展示主框
|
||||||
LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) {
|
SingleChildScrollView(
|
||||||
return HandwritingDrawBox(
|
child: HandwritingDrawBox(
|
||||||
boxWidth: constraints.maxWidth,
|
boxWidth: boxWidth,
|
||||||
boxHeight: constraints.maxHeight,
|
boxHeight: boxHeight,
|
||||||
key: _useStateModel.handwritingKey,
|
key: _useStateModel.handwritingKey,
|
||||||
);
|
),
|
||||||
}),
|
),
|
||||||
PageNumberBox(),
|
PageNumberBox(),
|
||||||
PreviousNutton(), // 上一页按钮
|
PreviousNutton(), // 上一页按钮
|
||||||
NextPageButton(), // 下一题按钮
|
NextPageButton(), // 下一题按钮
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
$BottomPlaybar(handwritingLogic),
|
$BottomPlaybar(barHeight, handwritingLogic),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -366,10 +379,7 @@ class _HandwritingDrawBoxState extends State<HandwritingDrawBox> with EventBusMi
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
executionDataStream = handwritingLogic.toolbar.executionData.listen((e) {
|
executionDataStream = handwritingLogic.toolbar.executionData.listen((e) => _vnHandWritings.value = e);
|
||||||
print('555555555555555555555555555555');
|
|
||||||
_vnHandWritings.value = e;
|
|
||||||
});
|
|
||||||
|
|
||||||
eventOn(callback: (e) {
|
eventOn(callback: (e) {
|
||||||
switch (e.runtimeType) {
|
switch (e.runtimeType) {
|
||||||
|
|
@ -611,11 +621,11 @@ class PageNumberBox extends StatelessWidget {
|
||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
Obx(() {
|
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),
|
quickText('/', color: Colors.white, size: 10.sp, align: TextAlign.end),
|
||||||
Obx(() {
|
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
|
@hwidget
|
||||||
Widget $bottomPlaybar(BuildContext context, HandwritingLogic handwritingLogic) {
|
Widget $bottomPlaybar(BuildContext context, double barHeight, HandwritingLogic handwritingLogic) {
|
||||||
var timeConsuming = useState(0);
|
var timeConsuming = useState(0);
|
||||||
var handwritingInfo = useState<HandwritingInfo?>(null);
|
var handwritingInfo = useState<HandwritingInfo?>(null);
|
||||||
|
|
||||||
|
|
@ -704,10 +714,10 @@ Widget $bottomPlaybar(BuildContext context, HandwritingLogic handwritingLogic) {
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return Container(
|
return Container(
|
||||||
height: 62.h,
|
height: barHeight,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
color: Color.fromRGBO(0, 0, 0, 0.4),
|
color: const Color.fromRGBO(0, 0, 0, 0.4),
|
||||||
child: Row(
|
child: Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
import 'package:get/get.dart';
|
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/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/request_tool_mixin.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 {
|
Future<void> getData() async {
|
||||||
if (params.value == null) return;
|
if (params.value == null) return;
|
||||||
|
var dio = getClientDio();
|
||||||
try {
|
try {
|
||||||
ToastUtils.showLoading();
|
ToastUtils.showLoading();
|
||||||
toolbar.initialization.value = false;
|
toolbar.initialization.value = false;
|
||||||
imagInfoModel.value = null;
|
imagInfoModel.value = null;
|
||||||
|
// 设置时长
|
||||||
|
|
||||||
|
dio.options.receiveTimeout = const Duration(seconds: 20);
|
||||||
var res = await getClient().getOriginalManuscriptHandwriting(params.value!);
|
var res = await getClient().getOriginalManuscriptHandwriting(params.value!);
|
||||||
resultData.value = res;
|
resultData.value = res;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
ToastUtils.showError('获取笔迹数据报错,请重试');
|
ToastUtils.showError('获取笔迹数据报错,请重试');
|
||||||
backCall();
|
backCall();
|
||||||
} finally {
|
} finally {
|
||||||
|
dio.options.receiveTimeout = const Duration(milliseconds: RequestConfig.receiveTimeout); // 还原接收数据时长
|
||||||
ToastUtils.dismiss();
|
ToastUtils.dismiss();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.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/common/utils/utils.dart';
|
||||||
import 'package:making_school_asignment_app/page/global_widget/ReturnToHomepage.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';
|
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,
|
width: 10.r,
|
||||||
),
|
),
|
||||||
InkWell(
|
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(
|
child: Container(
|
||||||
width: 93.r,
|
width: 93.r,
|
||||||
height: 28.r,
|
height: 28.r,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue