初始化
This commit is contained in:
@@ -0,0 +1,222 @@
|
||||
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<String> get menuVerNameArr => [
|
||||
"意见反馈",
|
||||
"我的购买",
|
||||
"我的喜欢",
|
||||
"分享邀请",
|
||||
"应用推荐",
|
||||
"账号凭证",
|
||||
"锁屏密码",
|
||||
"我的消息",
|
||||
];
|
||||
|
||||
List<IconBean> 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<void> getUserInfo() async {
|
||||
await globalStore.updateUserInfo();
|
||||
}
|
||||
|
||||
Future<void> getWallet() async {
|
||||
await globalStore.refreshWallet();
|
||||
}
|
||||
|
||||
Future<void> onRefresh() async {
|
||||
await Future.wait([
|
||||
getUserInfo(),
|
||||
MineMsgProvider().getMessageTip(),
|
||||
PreSaleProvider().refreshAll(), //刷新预售
|
||||
MineMsgProvider().refreshPayPopup(), //刷新支付分层配置(状态变则清会员卡缓存 + 重启倒计时)
|
||||
getWallet(),
|
||||
]).whenComplete(() {
|
||||
refreshCtr?.refreshCompleted();
|
||||
update();
|
||||
});
|
||||
}
|
||||
|
||||
/// 首次进入二维码页面提示保存二维码
|
||||
Future<dynamic> _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});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user