import 'dart:convert'; import 'package:dating_touchme_app/model/home/test_data.dart'; import 'package:dating_touchme_app/network/user_api.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; class TestController extends GetxController { final int type; TestController({required this.type}); late UserApi _userApi; final testData = TestData().obs; final subData = >[ ].obs; final index = 0.obs; final sIndex = 0.obs; @override void onInit() { super.onInit(); _userApi = Get.find(); getTestInfo(); } final resultData = {}.obs; final resultTitle = "".obs; reTest(){ resultData.value = {}; resultTitle.value = ""; subData.value = []; index.value = 0; sIndex.value = 0; } submit() async { try { final response = await _userApi.userSubmitPersonalityTest({ "id": type, "personalityOptionList": subData }); if (response.data.isSuccess && response.data.data != null) { final data = response.data.data; if(type == 1){ print(data); resultTitle.value = data["type"]; resultData.value = jsonDecode(data["report"])["report"]; print(resultTitle.value); print(resultData.value); } else { print(data); resultTitle.value = data["type"]; resultData.value = jsonDecode(data["report"])["report"]; print(resultTitle.value); print(resultData.value); } } else { // 响应失败,抛出异常 throw Exception(response.data.message ?? '获取数据失败'); } } catch(e){ print('钱包数据获取失败: $e'); SmartDialog.showToast('提交答案数据获取失败'); rethrow; } } select(int qId, int oId){ if(subData.length < testData.value.questionList!.length){ subData.add({ "personalityQuestionId": qId, "personalityOptionId": oId }); sIndex.value++; if(index.value < testData.value.questionList!.length - 1){ index.value++; } } } getTestInfo() async { try { final response = await _userApi.userGetPersonalityTestDetail(type: type); if (response.data.isSuccess && response.data.data != null) { testData.value = response.data.data ?? TestData(); } else { // 响应失败,抛出异常 throw Exception(response.data.message ?? '获取数据失败'); } } catch(e){ print('钱包数据获取失败: $e'); SmartDialog.showToast('测试数据获取失败'); rethrow; } } }