用户点击邀请按钮 → 立即弹出对话框 → 停留在当前页面
(cherry picked from commit b641d661d7b7c6e5e9fa4d2d8456170ee078b043)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:kaer_with_panels/app/common/app_config.dart';
|
||||
import 'package:kaer_with_panels/app/localization/app_translations.dart';
|
||||
import 'package:kaer_with_panels/app/widgets/kr_local_image.dart';
|
||||
import '../controllers/kr_invite_controller.dart';
|
||||
|
||||
@@ -6,6 +6,10 @@ import 'package:kaer_with_panels/app/modules/kr_statistics/views/kr_statistics_v
|
||||
import 'package:kaer_with_panels/app/modules/kr_user_info/views/kr_user_info_view.dart';
|
||||
import 'package:kaer_with_panels/app/modules/kr_user_info/controllers/kr_user_info_controller.dart';
|
||||
import 'package:kaer_with_panels/app/widgets/kr_keep_alive_wrapper.dart';
|
||||
import 'package:kaer_with_panels/app/common/app_run_data.dart';
|
||||
import 'package:kaer_with_panels/app/localization/app_translations.dart';
|
||||
import 'package:kaer_with_panels/app/widgets/dialogs/kr_dialog.dart';
|
||||
import 'package:kaer_with_panels/app/routes/app_pages.dart';
|
||||
|
||||
import '../../../widgets/kr_language_switch_dialog.dart';
|
||||
|
||||
@@ -56,9 +60,38 @@ class KRMainController extends GetxController {
|
||||
|
||||
/// 到哪个页面,具体传值查看MainRoutes的枚举类
|
||||
kr_setPage(int index) {
|
||||
// 🔒 检查邀请页面(index=1)是否需要登录
|
||||
if (index == 1) {
|
||||
final appRunData = KRAppRunData.getInstance();
|
||||
final isDeviceLogin = appRunData.isDeviceLogin();
|
||||
final isLoggedIn = appRunData.kr_isLogin.value && !isDeviceLogin;
|
||||
|
||||
// 如果是游客模式,弹出登录提示对话框,不切换页面
|
||||
if (!isLoggedIn) {
|
||||
KRDialog.show(
|
||||
title: AppTranslations.kr_dialog.deviceLoginBindingTitle,
|
||||
message: AppTranslations.kr_dialog.deviceLoginBindingMessage,
|
||||
confirmText: AppTranslations.kr_dialog.kr_ok,
|
||||
cancelText: AppTranslations.kr_dialog.kr_cancel,
|
||||
onConfirm: () {
|
||||
Get.back(); // 关闭对话框
|
||||
// 延迟后跳转到登录页面
|
||||
Future.delayed(const Duration(milliseconds: 300), () {
|
||||
Get.toNamed(Routes.MR_LOGIN);
|
||||
});
|
||||
},
|
||||
onCancel: () {
|
||||
Get.back(); // 关闭对话框
|
||||
},
|
||||
);
|
||||
return; // 不切换页面
|
||||
}
|
||||
}
|
||||
|
||||
// 正常切换页面
|
||||
kr_currentIndex.value = index;
|
||||
pageController.jumpToPage(index);
|
||||
|
||||
|
||||
// 监控页面进入
|
||||
if (index == MainRoutes.USER_CENTER.i) {
|
||||
final userInfoController = Get.find<KRUserInfoController>();
|
||||
|
||||
Reference in New Issue
Block a user