import 'dart:async'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:hgdj/assets_tool/images.dart'; import 'package:hgdj/hj_page/pre_sale/pre_sale_provider.dart'; import 'package:hgdj/hj_utils/api_service/vid_service.dart'; import 'package:hgdj/hj_utils/light_model.dart'; import 'package:hgdj/hj_utils/store_keys.dart'; import 'package:hgdj/tools_base/global_store/store.dart'; import 'package:hgdj/tools_base/loading/loading_helper.dart'; import 'package:hgdj/tools_base/toast.dart'; import 'package:hgdj/tools_base/widget/common_alert.dart'; import 'package:hgdj/track_event_manager/device_service.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import '../../config/config.dart'; import '../../hj_model/user/user_info_model.dart'; import '../../routers/jump_router.dart'; import '../main_page/provider/msg_provider.dart'; import '../web_page/h5_page.dart'; import 'collec_history_buy/col_his_buy_page.dart'; import 'identity/mine_identity_page.dart'; import 'message/message_center_page.dart'; import 'mine_drive/mine_drive_page.dart'; import 'mine_following/mine_following_view.dart'; import 'mine_post/mine_publish_main_page.dart'; import 'mine_setting/mine_code_page.dart'; import 'mine_setting/mine_password_logic.dart'; import 'mine_setting/mine_password_page.dart'; import 'mine_setting/mine_setting_page.dart'; import 'mine_share/mine_share_page.dart'; import 'more_question/mine_feedback_page.dart'; import 'welfare/welfare_home_page.dart'; //图标 class IconBean { String image; String name; IconBean(this.image, this.name); } class MineMainLogic extends GetxController with GetTickerProviderStateMixin { RefreshController? refreshCtr; UserInfoModel? get userInfo => globalStore.meInfo; List get menuVerNameArr => [ "意见反馈", "我的购买", "我的喜欢", "分享邀请", "应用推荐", "账号凭证", "锁屏密码", "我的消息", ]; List iconList = [ IconBean('ic_launcher.webp'.commonImgPath, Config.appName), IconBean('icon_1.webp'.appImgPath, "爱音乐"), IconBean('icon_2.webp'.appImgPath, "爱阅读"), IconBean('icon_3.webp'.appImgPath, "支付宝"), IconBean('icon_4.webp'.appImgPath, "哔哩哔哩"), IconBean('icon_5.webp'.appImgPath, "饼干大作战"), IconBean('icon_6.webp'.appImgPath, "美食借鉴"), IconBean('icon_7.webp'.appImgPath, "我的世界"), IconBean('icon_8.webp'.appImgPath, "神选之战"), IconBean('icon_9.webp'.appImgPath, "随心无线"), IconBean('icon_10.webp'.appImgPath, "特轩小说"), IconBean('icon_11.webp'.appImgPath, "天天麻将"), IconBean('icon_12.webp'.appImgPath, "途游"), IconBean('icon_13.webp'.appImgPath, "微信"), IconBean('icon_14.webp'.appImgPath, "问道"), IconBean('icon_15.webp'.appImgPath, "英语图书角"), ]; @override void onReady() async { super.onReady(); bool savedQR = await lightKV.getBool(StoreKeys.HAVE_SAVE_QR_CODE) ?? false; if (!savedQR) { lightKV.setBool(StoreKeys.HAVE_SAVE_QR_CODE, true); await _showSaveQrDialog(); } onRefresh(); } Future getUserInfo() async { await globalStore.updateUserInfo(); } Future getWallet() async { await globalStore.refreshWallet(); } Future onRefresh() async { await Future.wait([ getUserInfo(), MineMsgProvider().getMessageTip(), PreSaleProvider().refreshAll(), //刷新预售 MineMsgProvider().refreshPayPopup(), //刷新支付分层配置(状态变则清会员卡缓存 + 重启倒计时) getWallet(), ]).whenComplete(() { refreshCtr?.refreshCompleted(); update(); }); } /// 首次进入二维码页面提示保存二维码 Future _showSaveQrDialog() async { final value = await Get.dialog(MineAccountIdentityPage()); if (value != null && value is UserInfoModel) { update(); } return value; } void menuTapEvent(int index) async { if (index == 0) { //我的帖子 Get.to(MinePublishPostPage(), preventDuplicates: false); } else if (index == 1) { //我的喜欢 ColHisBuyPage.to(PageType.like); } else if (index == 2) { //我的关注 Get.to(() => MineFollowingPage()); } else if (index == 3) { //消息中心 await Get.to(() => MessageCenterPage(), opaque: true, preventDuplicates: false); MineMsgProvider().getMessageTip(); } } void menuVerTapEvent(int index) async { if (index == 0) { //创作中心 Get.to(MinePublishPostPage(), preventDuplicates: false); } else if (index == 1) { //意见反馈 Get.to(() => const MineFeedbackPage()); } else if (index == 2) { //我的购买 ColHisBuyPage.to(PageType.buy); } else if (index == 3) { //我的喜欢 ColHisBuyPage.to(PageType.like); } else if (index == 4) { //分享邀请 Get.to(() => MineSharePage()); } else if (index == 5) { //领取兑换 Get.to(() => MineExchangeCodePage(type: 1)); } else if (index == 6) { //加群开车 Get.to(() => MineDrivePage()); } else if (index == 7) { //应用推荐 Get.to(() => const WelfareHomePage(index: 1), preventDuplicates: false); } else if (index == 8) { //账号凭证 await Get.dialog(MineAccountIdentityPage()); } else if (index == 9) { //锁屏密码 if (globalStore.password.isNotEmpty) { final close = await CommonAlert.show( title: '关闭锁定码', content: '您确定关闭锁定密码?\n\n开启需重新输入密码', cancelText: '稍后再说', confirmText: '确定关闭', ); if (close) { Get.toNamed(MinePasswordPage.routeName, arguments: MinePasswordType.close); } } else { Get.toNamed( MinePasswordPage.routeName, arguments: MinePasswordType.setting, ); } } else if (index == 10) { menuTapEvent(3); } else if (index == 11) { pushToCustomService(); } } toSetting() { Get.to(() => const MineSettingPage()); } toMineShare() { Get.to(() => MineSharePage()); } toExchangeCenter() { Get.to(() => const WelfareHomePage(index: 1)); } toShop() async { LoadingHelper.showLoading(); var result = await VidService.getShopAddress(); LoadingHelper.dismissLoading(); if (result is String && result.isNotEmpty != true) { showToast("获取商店地址失败~"); return; } Get.to(H5Page(url: result, showTitle: false, showClose: true), popGesture: true); } changeIcon(int index) async { if (!await CommonAlert.show(content: '您确定要更换图标吗?')) return; const platform = MethodChannel(DeviceInfoService.requestChannel); platform.invokeMethod('changeIcon', {"iconIndex": index}); } }