app-starlock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_logic.dart
2024-05-18 09:37:50 +08:00

115 lines
4.2 KiB
Dart
Executable File

import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:star_lock/appRouters.dart';
import 'package:star_lock/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_state.dart';
import 'package:star_lock/mine/minePersonInfo/minePersonInfoViewSafetyProblem/minePersonInfoViewSafetyProblem_entity.dart';
import 'package:star_lock/translations/trans_lib.dart';
import '../../../../network/api_repository.dart';
import '../../../../tools/baseGetXController.dart';
class MineSetSafetyProblemLogic extends BaseGetXController {
final MineSetSafetyProblemState state = MineSetSafetyProblemState();
//用户信息
Future<void> getQuestionListRequest() async {
var entity =
await ApiRepository.to.getQuestionList("", state.countryCode.value);
if (entity.errorCode!.codeIsSuccessful) {
state.firstProblemList.value = entity.data!.firstList!;
state.secondProblemList.value = entity.data!.secondList!;
state.thirdProblemList.value = entity.data!.thirdList!;
}
}
//设置安全信息
Future<void> setSafeAnswerRequest() async {
getRequestAnswerList();
var entity =
await ApiRepository.to.setSafeAnswer(state.questionAndAnswerList.value);
if (entity.errorCode!.codeIsSuccessful) {
showToast("操作成功");
Get.until((route) => route.settings.name == Routers.minePersonInfoPage);
}
}
//修改安全信息
Future<void> updateSafeAnswerRequest() async {
getRequestAnswerList();
var entity = await ApiRepository.to
.updateSafeAnswer(state.questionAndAnswerList.value);
if (entity.errorCode!.codeIsSuccessful) {
showToast("操作成功");
Get.until((route) => route.settings.name == Routers.minePersonInfoPage);
}
}
void getRequestAnswerList() {
state.questionAndAnswerList.value.clear();
for (int i = 0; i < 3; i++) {
if (i == 0) {
SafetyProblemData data = SafetyProblemData();
data.question = state.firstProblemStr.value;
data.answer = state.firstAnswerStr.value;
data.questionId = state.firstQuestionId.value;
if (state.isUpdateAnswer.value) {
data.answerId = state.firstAnswerId.value;
}
state.questionAndAnswerList.value.add(data);
} else if (i == 1) {
SafetyProblemData data = SafetyProblemData();
data.question = state.secondProblemStr.value;
data.answer = state.secondAnswerStr.value;
data.questionId = state.secondQuestionId.value;
if (state.isUpdateAnswer.value) {
data.answerId = state.secondAnswerId.value;
}
state.questionAndAnswerList.value.add(data);
} else if (i == 2) {
SafetyProblemData data = SafetyProblemData();
data.question = state.thirdProblemStr.value;
data.answer = state.thirdAnswerStr.value;
data.questionId = state.thirdQuestionId.value;
if (state.isUpdateAnswer.value) {
data.answerId = state.thirdAnswerId.value;
}
state.questionAndAnswerList.value.add(data);
}
}
}
void checkNext(TextEditingController controller) {
changeInput(controller);
}
void changeInput(TextEditingController controller) {
if (controller == state.fristAnswerController) {
state.firstAnswerStr.value = controller.text;
}
if (controller == state.secondAnswerController) {
state.secondAnswerStr.value = controller.text;
}
if (controller == state.thirdAnswerController) {
state.thirdAnswerStr.value = controller.text;
}
_resetCanSub();
}
void _resetCanSub() {
state.canSub.value = state.answerIsOK &&
state.firstProblemStr.value !=
TranslationLoader.lanKeys!.problemOne!.tr &&
state.secondProblemStr.value !=
TranslationLoader.lanKeys!.problemTwo!.tr &&
state.thirdProblemStr.value !=
TranslationLoader.lanKeys!.problemThree!.tr;
}
@override
void onInit() {
super.onInit();
state.fristAnswerController.text = state.firstAnswerStr.value;
state.secondAnswerController.text = state.secondAnswerStr.value;
state.thirdAnswerController.text = state.thirdAnswerStr.value;
}
}