|
|
|
@ -175,6 +175,8 @@ class ProblemController extends GetxController
|
|
|
|
|
clearSelection(); |
|
|
|
|
// 重新加载未上传的问题列表 |
|
|
|
|
loadUnUploadedProblems(); |
|
|
|
|
// 重新加载problems |
|
|
|
|
loadProblems(); |
|
|
|
|
} on DioException catch (e) { |
|
|
|
|
Get.back(); |
|
|
|
|
if (CancelToken.isCancel(e)) { |
|
|
|
@ -269,8 +271,11 @@ class ProblemController extends GetxController
|
|
|
|
|
}, |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if (updatedProblem.syncStatus == ProblemSyncStatus.untracked) { |
|
|
|
|
problemRepository.deleteProblem(updatedProblem.id!); |
|
|
|
|
} else { |
|
|
|
|
problemRepository.updateProblem(updatedProblem); |
|
|
|
|
// updatedProblems.add(updatedProblem); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// return updatedProblems; |
|
|
|
|
} on DioException { |
|
|
|
@ -348,7 +353,11 @@ class ProblemController extends GetxController
|
|
|
|
|
response = await problemRepository.post(apiPayload!, cancelToken); |
|
|
|
|
break; |
|
|
|
|
case ProblemSyncStatus.pendingUpdate: |
|
|
|
|
response = await problemRepository.put(apiPayload!, cancelToken); |
|
|
|
|
response = await problemRepository.put( |
|
|
|
|
problem.id!, |
|
|
|
|
apiPayload!, |
|
|
|
|
cancelToken, |
|
|
|
|
); |
|
|
|
|
break; |
|
|
|
|
case ProblemSyncStatus.pendingDelete: |
|
|
|
|
response = await problemRepository.delete(problem.id!, cancelToken); |
|
|
|
@ -365,7 +374,9 @@ class ProblemController extends GetxController
|
|
|
|
|
|
|
|
|
|
// 返回同步完成的对象,操作类型重置为none |
|
|
|
|
return problem.copyWith( |
|
|
|
|
syncStatus: ProblemSyncStatus.synced, // 同步完成,重置为none |
|
|
|
|
syncStatus: problem.syncStatus != ProblemSyncStatus.pendingDelete |
|
|
|
|
? ProblemSyncStatus.synced |
|
|
|
|
: ProblemSyncStatus.untracked, // 同步完成,重置为none |
|
|
|
|
imageUrls: updatedImageMetadata, |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
@ -642,8 +653,8 @@ class ProblemController extends GetxController
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Future<void> toProblemFormPageAndRefresh() async { |
|
|
|
|
await Get.toNamed(AppRoutes.problemForm); |
|
|
|
|
Future<void> toProblemFormPageAndRefresh({Problem? problem}) async { |
|
|
|
|
await Get.toNamed(AppRoutes.problemForm, arguments: problem); |
|
|
|
|
loadProblems(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|