You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
4.4 KiB
140 lines
4.4 KiB
import 'dart:convert';
|
|
|
|
import 'package:dating_touchme_app/controller/global.dart';
|
|
import 'package:dating_touchme_app/generated/assets.dart';
|
|
import 'package:dating_touchme_app/model/mine/user_count_data.dart';
|
|
import 'package:dating_touchme_app/network/user_api.dart';
|
|
import 'package:dating_touchme_app/pages/mine/auth_center_page.dart';
|
|
import 'package:dating_touchme_app/pages/mine/user_help_center_page.dart';
|
|
import 'package:easy_refresh/easy_refresh.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import '../../pages/setting/setting_page.dart';
|
|
|
|
import '../../model/home/post_data.dart';
|
|
|
|
class MineController extends GetxController with GetTickerProviderStateMixin {
|
|
|
|
|
|
|
|
final blockList = <Map>[
|
|
// {"icon": Assets.imagesRose, "title": "我的玫瑰", "subTitle": "新人限时福利", "path": () => RosePage()},
|
|
// {"icon": Assets.imagesWallet, "title": "我的钱包", "subTitle": "提现无门槛", "path": () => MyWalletPage()},
|
|
// {"icon": Assets.imagesShop, "title": "商城中心", "subTitle": "不定期更新商品", "path": () => null},
|
|
{"icon": Assets.imagesCert, "title": "认证中心", "subTitle": GlobalData().userData?.identityCard == null || GlobalData().userData?.profilePhoto == null ? "未认证" : "已认证", "path": () => AuthCenterPage()},
|
|
// {"icon": Assets.imagesMatchmaker, "title": "红娘等级", "subTitle": "实习红娘", "path": () => MatchSpreadPage()},
|
|
].obs;
|
|
|
|
final settingList = <Map>[
|
|
{"icon": Assets.imagesSetting, "title": "设置", "path": () => SettingPage()},
|
|
// {"icon": Assets.imagesCustomer, "title": "联系客服", "path": () => null},
|
|
// {"icon": Assets.imagesMail, "title": "意见反馈", "path": () => UserHelpCenterPage()},
|
|
].obs;
|
|
|
|
final userData = GlobalData().userData.obs;
|
|
final userId = GlobalData().userId.obs;
|
|
|
|
final countData = UserCountData(friendNum: 0, friendApplyNum: 0, visitorNum:0).obs;
|
|
|
|
late UserApi _userApi;
|
|
|
|
late final TabController tabController;
|
|
|
|
late final EasyRefreshController listRefreshController;
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
|
|
tabController = TabController(length: 2, vsync: this);
|
|
|
|
listRefreshController = EasyRefreshController(
|
|
controlFinishRefresh: true,
|
|
controlFinishLoad: true,
|
|
);
|
|
userData.value = GlobalData().userData;
|
|
userId.value = GlobalData().userId;
|
|
_userApi = Get.find<UserApi>();
|
|
getPostList();
|
|
getTestData();
|
|
}
|
|
|
|
|
|
|
|
final resultData = {}.obs;
|
|
final resultTitle = "".obs;
|
|
|
|
getTestData() async {
|
|
try {
|
|
|
|
final response = await _userApi.userGetOwnPersonalityReport(
|
|
personalityTestId: 1,
|
|
userId: userId.value ?? ""
|
|
);
|
|
if (response.data.isSuccess && response.data.data != null) {
|
|
final data = response.data.data;
|
|
print(data);
|
|
resultTitle.value = data["type"];
|
|
resultData.value = jsonDecode(data["report"])["report"];
|
|
print(resultTitle.value);
|
|
print(resultData.value);
|
|
} else {
|
|
// 响应失败,设置错误信息
|
|
final errorMsg = response.data.message ?? '获取数据失败';
|
|
|
|
SmartDialog.showToast(errorMsg);
|
|
}
|
|
} catch(e, stackTrace){
|
|
print('获取用户信息失败: $e');
|
|
print('堆栈跟踪: $stackTrace');
|
|
SmartDialog.showToast('获取用户测试结果失败,请稍后重试');
|
|
// 不再 rethrow,避免导致闪退
|
|
}
|
|
}
|
|
|
|
|
|
final page = 1.obs;
|
|
final size = 10.obs;
|
|
|
|
|
|
final postList = <Records>[].obs;
|
|
|
|
getPostList() async {
|
|
try{
|
|
final response = await _userApi.userPageAuthorPost(
|
|
pageNum: page.value,
|
|
pageSize: size.value,
|
|
authorUserId: userId.value ?? ""
|
|
);
|
|
if (response.data.isSuccess && response.data.data != null) {
|
|
final data = response.data.data?.records ?? [];
|
|
|
|
postList.addAll(data.toList());
|
|
if((data.length ?? 0) == size.value){
|
|
|
|
listRefreshController.finishLoad(IndicatorResult.success);
|
|
} else {
|
|
listRefreshController.finishLoad(IndicatorResult.noMore);
|
|
}
|
|
} else {
|
|
|
|
// 响应失败,抛出异常
|
|
throw Exception(response.data.message ?? '获取数据失败');
|
|
}
|
|
} catch(e) {
|
|
print('活动列表获取失败: $e');
|
|
SmartDialog.showToast('活动列表获取失败');
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
final tab = 0.obs;
|
|
|
|
|
|
changeTab(int i){
|
|
tab.value = i;
|
|
update();
|
|
}
|
|
}
|