app-starlock/lib/mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_logic.dart

112 lines
4.0 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 '../../../../network/api_repository.dart';
import '../../../../tools/baseGetXController.dart';
class MineSetSafetyProblemLogic extends BaseGetXController {
final MineSetSafetyProblemState state = MineSetSafetyProblemState();
//用户信息
Future<void> getQuestionListRequest() async {
final 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();
final entity =
await ApiRepository.to.setSafeAnswer(state.questionAndAnswerList.value);
if (entity.errorCode!.codeIsSuccessful) {
showToast('操作成功'.tr);
Get.until((route) => route.settings.name == Routers.minePersonInfoPage);
}
}
//修改安全信息
Future<void> updateSafeAnswerRequest() async {
getRequestAnswerList();
final entity = await ApiRepository.to
.updateSafeAnswer(state.questionAndAnswerList.value);
if (entity.errorCode!.codeIsSuccessful) {
showToast('操作成功'.tr);
Get.until((route) => route.settings.name == Routers.minePersonInfoPage);
}
}
void getRequestAnswerList() {
state.questionAndAnswerList.value.clear();
for (int i = 0; i < 3; i++) {
if (i == 0) {
final 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) {
final 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) {
final 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 != '问题一'.tr &&
state.secondProblemStr.value != '问题二'.tr &&
state.thirdProblemStr.value != '问题三'.tr;
}
@override
void onInit() {
super.onInit();
state.fristAnswerController.text = state.firstAnswerStr.value;
state.secondAnswerController.text = state.secondAnswerStr.value;
state.thirdAnswerController.text = state.thirdAnswerStr.value;
}
}