浏览代码

[fix]修复谈话详情登录成功流程问题

zk 1 年之前
父节点
当前提交
f7114a6db7

+ 4 - 2
lib/module/login/view.dart

@@ -19,8 +19,10 @@ enum LoginFromType { talkDetail, mainLogin, store, aiChat }
 class LoginPage extends BasePage<LoginController> {
   const LoginPage({super.key});
 
-  static start({LoginFromType? fromType}) {
-    Get.toNamed(RoutePath.login, arguments: {"fromType": fromType});
+  static Future<bool> start({LoginFromType? fromType}) async {
+    final result =
+        await Get.toNamed(RoutePath.login, arguments: {"fromType": fromType});
+    return result == true;
   }
 
   @override

+ 2 - 2
lib/module/record/controller.dart

@@ -58,8 +58,8 @@ class RecordController extends BaseController {
     super.onReady();
     EventHandler.report(EventId.event_100010,
         params: {EventId.id: EventId.id_001});
-    if (KVUtil.getBool(isRequestSuccessAudio, false) &&
-        !await hasUnUploadRecord()) {
+    // if (KVUtil.getBool(isRequestSuccessAudio, false) &&
+    if (!await hasUnUploadRecord()) {
       _startOrContinueRecord();
     }
   }

+ 17 - 9
lib/module/talk/controller.dart

@@ -6,6 +6,7 @@ import 'package:electronic_assistant/base/base_controller.dart';
 import 'package:electronic_assistant/data/consts/event_report_id.dart';
 import 'package:electronic_assistant/data/repositories/account_repository.dart';
 import 'package:electronic_assistant/data/repositories/task_repository.dart';
+import 'package:electronic_assistant/router/app_pages.dart';
 import 'package:electronic_assistant/utils/audio_picker_utils.dart';
 import 'package:electronic_assistant/handler/event_handler.dart';
 import 'package:electronic_assistant/module/chat/view.dart';
@@ -414,9 +415,8 @@ class TalkController extends BaseController {
     });
   }
 
-  void clickAIAnalysis() {
-    if (!accountRepository.isLogin.value) {
-      LoginPage.start(fromType: LoginFromType.talkDetail);
+  void clickAIAnalysis() async {
+    if (!await checkLogin()) {
       return;
     }
     if (talkBean.value != null) {
@@ -436,12 +436,10 @@ class TalkController extends BaseController {
     });
   }
 
-  void onEditModelClick() {
-    if (!accountRepository.isLogin.value) {
-      LoginPage.start(fromType: LoginFromType.talkDetail);
+  void onEditModelClick() async {
+    if (!await checkLogin()) {
       return;
     }
-
     _isEditModel.value = true;
     if (_audioPlayer.playing) {
       _audioPlayer.pause();
@@ -554,9 +552,19 @@ class TalkController extends BaseController {
     }
   }
 
-  void onShareClick() {
+  Future<bool> checkLogin() async {
     if (!accountRepository.isLogin.value) {
-      LoginPage.start(fromType: LoginFromType.talkDetail);
+      bool isLogin = await LoginPage.start(fromType: LoginFromType.talkDetail);
+      if (isLogin) {
+        Get.offNamed(RoutePath.mainTab);
+      }
+      return false;
+    }
+    return true;
+  }
+
+  void onShareClick() async {
+    if (!await checkLogin()) {
       return;
     }
     if (talkBean.value?.status.value != TalkStatus.analysisSuccess) {

+ 2 - 3
lib/module/talk/todo/controller.dart

@@ -88,9 +88,8 @@ class TodoController extends BaseController {
     });
   }
 
-  void onClickThinking(Agenda agenda) {
-    if (!accountRepository.isLogin.value) {
-      LoginPage.start(fromType: LoginFromType.talkDetail);
+  void onClickThinking(Agenda agenda) async {
+    if (!await _talkController.checkLogin()) {
       return;
     }
     TalkBean? bean = talkBean.value;