Compare commits
6 Commits
727c774ea0
...
4c78d903a1
| Author | SHA1 | Date |
|---|---|---|
|
|
4c78d903a1 | |
|
|
abb0d41d39 | |
|
|
a614c90458 | |
|
|
c43e75fafd | |
|
|
ecfb2c33b6 | |
|
|
d5249ba0af |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
|
@ -352,7 +352,7 @@
|
||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 20;
|
CURRENT_PROJECT_VERSION = 21;
|
||||||
DEVELOPMENT_TEAM = CYDU583KN6;
|
DEVELOPMENT_TEAM = CYDU583KN6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
|
@ -360,7 +360,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.102;
|
MARKETING_VERSION = 1.0.104;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
|
|
@ -490,7 +490,7 @@
|
||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 20;
|
CURRENT_PROJECT_VERSION = 21;
|
||||||
DEVELOPMENT_TEAM = CYDU583KN6;
|
DEVELOPMENT_TEAM = CYDU583KN6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
|
@ -498,7 +498,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.102;
|
MARKETING_VERSION = 1.0.104;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
|
|
@ -520,7 +520,7 @@
|
||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 20;
|
CURRENT_PROJECT_VERSION = 21;
|
||||||
DEVELOPMENT_TEAM = CYDU583KN6;
|
DEVELOPMENT_TEAM = CYDU583KN6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
|
@ -528,7 +528,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.102;
|
MARKETING_VERSION = 1.0.104;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.markingApp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:collection/collection.dart';
|
||||||
import 'package:json_annotation/json_annotation.dart';
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
import 'package:marking_app/common/model/job/job_page_tab.dart';
|
import 'package:marking_app/common/model/job/job_page_tab.dart';
|
||||||
|
|
||||||
|
|
@ -14,14 +15,21 @@ class JobDoSynchroTab extends Object {
|
||||||
Map<String, dynamic> toJson() => _$JobDoSynchroTabToJson(this);
|
Map<String, dynamic> toJson() => _$JobDoSynchroTabToJson(this);
|
||||||
|
|
||||||
/// 当前tab下一个tab的pageIndex
|
/// 当前tab下一个tab的pageIndex
|
||||||
int? getNextPageIndex([int? indexLocated]) {
|
int? getNextPageIndex([int? pageIndex]) {
|
||||||
if (indexLocated == null) return null;
|
if (pageIndex == null) return null;
|
||||||
return indexLocated == tabs.length - 1 ? null : tabs[indexLocated + 1].pageIndex;
|
var _index = tabs.indexWhere((e) => e.pageIndex == pageIndex);
|
||||||
|
if (_index == -1) return null;
|
||||||
|
|
||||||
|
return _index == tabs.length - 1 ? null : tabs[_index + 1].pageIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 当前tab上一个tab的pageIndex
|
/// 当前tab上一个tab的pageIndex
|
||||||
int? getPreviousPageIndex([int? indexLocated]) {
|
int? getPreviousPageIndex([int? pageIndex]) {
|
||||||
if (indexLocated == null) return null;
|
if (pageIndex == null) return null;
|
||||||
return indexLocated == 0 ? null : tabs[indexLocated - 1].pageIndex;
|
var _index = tabs.indexWhere((e) => e.pageIndex == pageIndex);
|
||||||
|
if (_index == -1) return null;
|
||||||
|
pageIndex = _index == 0 ? null : tabs[_index - 1].pageIndex;
|
||||||
|
print('这是上一页的数据:${pageIndex}');
|
||||||
|
return pageIndex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -290,19 +290,24 @@ Widget $dropdownBoxSwitchStudentsOrTypeView(BuildContext context, {required Func
|
||||||
var _currentTab = _useSwitchStudentAndType.currentTab.value;
|
var _currentTab = _useSwitchStudentAndType.currentTab.value;
|
||||||
var _pageIndex = _currentTab?.pageIndex;
|
var _pageIndex = _currentTab?.pageIndex;
|
||||||
if (_currentTab == null || _pageIndex == null) return;
|
if (_currentTab == null || _pageIndex == null) return;
|
||||||
var params = MarkingTextQuestionJobTabParamsBus(taskId, _pageIndex);
|
_useSwitchStudentAndType.refreshQuestionTypeData(context, taskId: taskId, exitCallback: exitCallback, getNewData: false).then((value) {
|
||||||
if (_currentTab.finishCount + 1 == _currentTab.total) {
|
var params = MarkingTextQuestionJobTabParamsBus(taskId, _pageIndex);
|
||||||
var _currentTabNew =
|
if (_currentTab.finishCount < _currentTab.total) {
|
||||||
_useSwitchStudentAndType.tabs.value.firstWhereOrNull((e) => e.pageIndex != _currentTab.pageIndex && e.finishCount != e.total);
|
if (_currentTab.finishCount + 1 == _currentTab.total) {
|
||||||
// 如果全部都已经批阅完成就不需要跳转到不必要得批阅试题
|
var _currentTabNew =
|
||||||
if (_currentTabNew != null) params.pageIndex = _currentTabNew.pageIndex;
|
_useSwitchStudentAndType.tabs.value.firstWhereOrNull((e) => e.pageIndex != _currentTab.pageIndex && e.finishCount != e.total);
|
||||||
}
|
// 如果全部都已经批阅完成就不需要跳转到不必要得批阅试题
|
||||||
var _theCurrentPage = _useSwitchStudentAndType.tabs.value.firstWhereOrNull((element) => element.pageIndex == _pageIndex);
|
if (_currentTabNew != null) params.pageIndex = _currentTabNew.pageIndex;
|
||||||
if (_theCurrentPage != null) {
|
}
|
||||||
_theCurrentPage.finishCount += 1;
|
var _theCurrentPage = _useSwitchStudentAndType.tabs.value.firstWhereOrNull((element) => element.pageIndex == _pageIndex);
|
||||||
_useSwitchStudentAndType.tabs.value = _useSwitchStudentAndType.tabs.value.map((e) => JobPageTab.fromJson(e.toJson())).toList();
|
if (_theCurrentPage != null) {
|
||||||
}
|
_theCurrentPage.finishCount += 1;
|
||||||
_useSwitchStudentAndType.eventFire(model: params);
|
_useSwitchStudentAndType.tabs.value = _useSwitchStudentAndType.tabs.value.map((e) => JobPageTab.fromJson(e.toJson())).toList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_useSwitchStudentAndType.eventFire(model: params);
|
||||||
|
});
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
|
|
@ -396,7 +401,7 @@ Widget $dropdownBoxSwitchStudentsOrTypeView(BuildContext context, {required Func
|
||||||
),
|
),
|
||||||
Expanded(flex: 1, child: SizedBox()),
|
Expanded(flex: 1, child: SizedBox()),
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 4,
|
flex: isPad() ? 4 : 5,
|
||||||
child: Row(
|
child: Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
|
|
@ -415,9 +420,7 @@ Widget $dropdownBoxSwitchStudentsOrTypeView(BuildContext context, {required Func
|
||||||
'DO_PAPERS_JOB_CONTINUE_TO_REVIEW',
|
'DO_PAPERS_JOB_CONTINUE_TO_REVIEW',
|
||||||
() {
|
() {
|
||||||
var _currentTabNew = _useSwitchStudentAndType.tabs.value.firstWhere((e) => e.finishCount < e.total);
|
var _currentTabNew = _useSwitchStudentAndType.tabs.value.firstWhere((e) => e.finishCount < e.total);
|
||||||
_useSwitchStudentAndType.eventFire(
|
_useSwitchStudentAndType.eventFire(model: MarkingTextQuestionJobTabParamsBus(taskId, _currentTabNew.pageIndex));
|
||||||
model: MarkingTextQuestionJobTabParamsBus(taskId, _currentTabNew.pageIndex),
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
child: quickText(
|
child: quickText(
|
||||||
|
|
@ -468,41 +471,6 @@ Widget $dropdownBoxSwitchStudentsOrTypeView(BuildContext context, {required Func
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
// InkWell(
|
|
||||||
// onTap: () => easyThrottle(
|
|
||||||
// 'prioritize_homework_review',
|
|
||||||
// () => !_useSwitchStudentAndType.isFirst.value
|
|
||||||
// ? _useSwitchStudentAndType.jobPriorityReviewJoin(jobId)
|
|
||||||
// : _useSwitchStudentAndType.jobPriorityReviewCancel(jobId)),
|
|
||||||
// child:
|
|
||||||
// Row(
|
|
||||||
// crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
// mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
// children: [
|
|
||||||
// Stack(
|
|
||||||
// alignment: const FractionalOffset(0.52, 0.24),
|
|
||||||
// children: [
|
|
||||||
// Icon(
|
|
||||||
// const IconData(0xe63d, fontFamily: "AlibabaIcon"),
|
|
||||||
// size: 12.sp,
|
|
||||||
// color: _useSwitchStudentAndType.isFirst.value
|
|
||||||
// ? Color.fromRGBO(76, 199, 147, 1)
|
|
||||||
// : Color.fromRGBO(164, 164, 164, 1),
|
|
||||||
// ),
|
|
||||||
// quickText('优先', size: 4.sp, color: Colors.white),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// SizedBox(width: 1.2.w),
|
|
||||||
// quickText(
|
|
||||||
// '优先批阅',
|
|
||||||
// size: 10.sp,
|
|
||||||
// color: _useSwitchStudentAndType.isFirst.value
|
|
||||||
// ? Color.fromRGBO(76, 199, 147, 1)
|
|
||||||
// : Color.fromRGBO(164, 164, 164, 1),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -541,7 +509,14 @@ class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringVi
|
||||||
var theEventVal = eventVal as MarkingTextQuestionJobTabParamsBus;
|
var theEventVal = eventVal as MarkingTextQuestionJobTabParamsBus;
|
||||||
bool? isDefaultFirst;
|
bool? isDefaultFirst;
|
||||||
if (theJobData != null) {
|
if (theJobData != null) {
|
||||||
isDefaultFirst = theJobData!.pageIndex < theEventVal.pageIndex;
|
isDefaultFirst = theJobData!.pageIndex == theEventVal.pageIndex ? null : theJobData!.pageIndex < theEventVal.pageIndex;
|
||||||
|
} else {
|
||||||
|
if (synchroTabs?.tabs.isNotEmpty ?? false) {
|
||||||
|
var _theTab = synchroTabs?.tabs.firstWhereOrNull((e) => e.pageIndex == theEventVal.pageIndex);
|
||||||
|
if (_theTab != null && _theTab.finishCount == _theTab.total) {
|
||||||
|
isDefaultFirst = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ref.read(doJobObtainGradingDataProvider.notifier).setVal(MarkingTextQuestionJobTabParams(
|
ref.read(doJobObtainGradingDataProvider.notifier).setVal(MarkingTextQuestionJobTabParams(
|
||||||
pageIndex: theEventVal.pageIndex,
|
pageIndex: theEventVal.pageIndex,
|
||||||
|
|
@ -579,8 +554,8 @@ class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringVi
|
||||||
var jobDetails = _result.data;
|
var jobDetails = _result.data;
|
||||||
theJobData = jobDetails;
|
theJobData = jobDetails;
|
||||||
if (jobDetails != null) {
|
if (jobDetails != null) {
|
||||||
jobDetails.previousPageIndex = synchroTabs?.getPreviousPageIndex(jobDetails.pageIndex - 1);
|
jobDetails.previousPageIndex = synchroTabs?.getPreviousPageIndex(jobDetails.pageIndex);
|
||||||
jobDetails.nextPageIndex = synchroTabs?.getNextPageIndex(jobDetails.pageIndex - 1);
|
jobDetails.nextPageIndex = synchroTabs?.getNextPageIndex(jobDetails.pageIndex);
|
||||||
// 触发学生下拉选中
|
// 触发学生下拉选中
|
||||||
try {
|
try {
|
||||||
// 清空已有数据
|
// 清空已有数据
|
||||||
|
|
@ -618,8 +593,15 @@ class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringVi
|
||||||
pageIndex: jobData.pageIndex,
|
pageIndex: jobData.pageIndex,
|
||||||
nextPageIndex: jobData.nextPageIndex,
|
nextPageIndex: jobData.nextPageIndex,
|
||||||
previousPageIndex: jobData.previousPageIndex,
|
previousPageIndex: jobData.previousPageIndex,
|
||||||
isDefaultFirst: true,
|
|
||||||
);
|
);
|
||||||
|
if (jobData.nextId == 0 && (synchroTabs?.tabs.isNotEmpty ?? false)) {
|
||||||
|
var _pageIndex = jobData.pageIndex;
|
||||||
|
var _tabIndex = synchroTabs!.tabs.indexWhere((e) => e.pageIndex == _pageIndex);
|
||||||
|
if (_tabIndex != -1 && _tabIndex + 1 <= synchroTabs!.tabs.length - 1) {
|
||||||
|
model.isDefaultFirst = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (model.paperId == 0 && jobData.nextPageIndex != null) {
|
if (model.paperId == 0 && jobData.nextPageIndex != null) {
|
||||||
// 切换题型页面
|
// 切换题型页面
|
||||||
model.paperId = null;
|
model.paperId = null;
|
||||||
|
|
@ -635,8 +617,16 @@ class _EexamPaperAndScoringViewState extends ConsumerState<ExamPaperAndScoringVi
|
||||||
paperId: jobData.prevId,
|
paperId: jobData.prevId,
|
||||||
nextPageIndex: jobData.nextPageIndex,
|
nextPageIndex: jobData.nextPageIndex,
|
||||||
previousPageIndex: jobData.previousPageIndex,
|
previousPageIndex: jobData.previousPageIndex,
|
||||||
isDefaultFirst: false,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (jobData.prevId == 0 && (synchroTabs?.tabs.isNotEmpty ?? false)) {
|
||||||
|
var _pageIndex = jobData.pageIndex;
|
||||||
|
var _tabIndex = synchroTabs!.tabs.indexWhere((e) => e.pageIndex == _pageIndex);
|
||||||
|
if (_tabIndex != -1 && _tabIndex - 1 >= 0 && _tabIndex - 1 <= synchroTabs!.tabs.length - 1) {
|
||||||
|
model.isDefaultFirst = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (model.paperId == 0 && jobData.previousPageIndex != null) {
|
if (model.paperId == 0 && jobData.previousPageIndex != null) {
|
||||||
model.paperId = null;
|
model.paperId = null;
|
||||||
model.pageIndex = jobData.previousPageIndex!;
|
model.pageIndex = jobData.previousPageIndex!;
|
||||||
|
|
|
||||||
|
|
@ -99,8 +99,12 @@ class UseSwitchStudentAndType with CommonMixin, EventBusMixin {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 属性tab类型数据
|
/// 属性tab类型数据
|
||||||
Future<JobPageTab?> refreshQuestionTypeData(BuildContext context, {required int taskId, required Function() exitCallback}) async {
|
Future<JobPageTab?> refreshQuestionTypeData(BuildContext context,
|
||||||
List<JobPageTab>? tabDatas = await getDataForTestpaper(taskId: taskId, synchronization: false);
|
{required int taskId, required Function() exitCallback, bool getNewData = true}) async {
|
||||||
|
List<JobPageTab>? tabDatas = tabs.value;
|
||||||
|
if (getNewData) {
|
||||||
|
tabDatas = await getDataForTestpaper(taskId: taskId, synchronization: false);
|
||||||
|
}
|
||||||
if (tabDatas?.isNotEmpty ?? false) {
|
if (tabDatas?.isNotEmpty ?? false) {
|
||||||
JobPageTab? tabJob = tabDatas!.firstWhereOrNull((e) => e.finishCount < e.total);
|
JobPageTab? tabJob = tabDatas!.firstWhereOrNull((e) => e.finishCount < e.total);
|
||||||
if (tabJob == null && !exitPromptFlag.value) {
|
if (tabJob == null && !exitPromptFlag.value) {
|
||||||
|
|
@ -124,9 +128,20 @@ class UseSwitchStudentAndType with CommonMixin, EventBusMixin {
|
||||||
exitCallback();
|
exitCallback();
|
||||||
} else {
|
} else {
|
||||||
// 跳转到对于位置
|
// 跳转到对于位置
|
||||||
|
if (!getNewData) return tabJob;
|
||||||
tabs.value = tabDatas;
|
tabs.value = tabDatas;
|
||||||
if (tabJob != null) currentTab.value = tabJob;
|
if (tabJob != null) currentTab.value = tabJob;
|
||||||
if (tabJob == null && exitPromptFlag.value) ToastUtils.showSuccess('最后一题提交成功');
|
if (tabJob == null && exitPromptFlag.value) {
|
||||||
|
var _thePageIndex = currentTab.value?.pageIndex;
|
||||||
|
if (_thePageIndex != null) {
|
||||||
|
var _theIndex = tabDatas.indexWhere((e) => e.pageIndex == _thePageIndex);
|
||||||
|
if (_theIndex != -1 && _theIndex < tabDatas.length - 1) {
|
||||||
|
currentTab.value = tabDatas[_theIndex + 1];
|
||||||
|
return tabJob;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ToastUtils.showSuccess('最后一题提交成功');
|
||||||
|
}
|
||||||
return tabJob;
|
return tabJob;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
||||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
||||||
# Read more about iOS versioning at
|
# Read more about iOS versioning at
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
version: 1.0.102
|
version: 1.0.104
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.17.1 <3.0.0"
|
sdk: ">=2.17.1 <3.0.0"
|
||||||
|
|
|
||||||