Quellcode durchsuchen

[new]完善思维导图tab页分析进度等状态显示

zk vor 1 Jahr
Ursprung
Commit
e4a8081151

+ 12 - 2
lib/module/talk/controller.dart

@@ -119,7 +119,8 @@ class TalkController extends BaseController {
   bool isLocalFileHas = false;
 
   final Rxn<Duration> playingDuration = Rxn();
-  final Rxn<TalkBean> summaryBean = Rxn();
+
+  bool isFirstRequestTask = true;
 
   @override
   void onInit() {
@@ -433,6 +434,7 @@ class TalkController extends BaseController {
       return;
     }
     agendaRepository.agendaListAll(id).then((agenda) {
+      isFirstRequestTask = false;
       agendaAllList.clear();
       agendaOriginalAllList.clear();
       if (agenda.list != null) {
@@ -637,7 +639,15 @@ class TalkController extends BaseController {
       return null;
     }
     return talkRepository.talkInfo(id).then((data) {
-      summaryBean.value = data.talkInfo;
+      final bean = data.talkInfo;
+      if (bean == null) {
+        return null;
+      }
+      if (talkBean.value == null) {
+        talkBean.value = data.talkInfo;
+      } else {
+        talkBean.value?.updateBean(bean);
+      }
       return data.talkInfo;
     });
   }

+ 5 - 0
lib/module/talk/mindmap/controller.dart

@@ -10,4 +10,9 @@ class MindMapController extends BaseController {
   TalkController get talkController => Get.find<TalkController>(tag: talkId);
 
   MindMapController(this.talkId);
+
+  @override
+  void onReady() {
+    super.onReady();
+  }
 }

+ 2 - 1
lib/module/talk/mindview/controller.dart

@@ -3,11 +3,12 @@ import 'dart:typed_data';
 
 import 'package:dsbridge_flutter/dsbridge_flutter.dart';
 import 'package:electronic_assistant/base/base_controller.dart';
-import 'package:electronic_assistant/module/talk/mindview/js_api.dart';
 import 'package:webview_flutter/webview_flutter.dart';
 import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart';
 import 'package:path_provider/path_provider.dart';
 
+import 'js_api.dart';
+
 class MindViewController extends BaseController {
   late final DWebViewController webViewController;
 

lib/module/talk/mindview/js_api.dart → lib/module/talk/mindmap/mindview/js_api.dart


lib/module/talk/mindview/view.dart → lib/module/talk/mindmap/mindview/view.dart


+ 30 - 2
lib/module/talk/mindmap/view.dart

@@ -1,10 +1,13 @@
 import 'package:electronic_assistant/base/base_page.dart';
+import 'package:electronic_assistant/data/bean/talks.dart';
 import 'package:electronic_assistant/module/talk/mindmap/controller.dart';
+import 'package:flutter/cupertino.dart';
 import 'package:flutter/src/widgets/framework.dart';
 import 'package:get/get.dart';
 import 'package:get/get_core/src/get_main.dart';
 
-import '../mindview/view.dart';
+import '../common_view.dart';
+import 'mindview/view.dart';
 
 class MindMapView extends BasePage<MindMapController> {
   final String? talkId;
@@ -18,6 +21,31 @@ class MindMapView extends BasePage<MindMapController> {
 
   @override
   Widget buildBody(BuildContext context) {
-    return MindView('');
+    return Obx(() {
+      if (controller.talkController.talkBean.value?.status.value ==
+          TalkStatus.analysisSuccess) {
+        return MindView(
+            controller.talkController.talkBean.value!.summary.value!);
+      } else if (controller.talkController.talkBean.value?.status.value ==
+          TalkStatus.analysisFail) {
+        return getTalkFailView();
+      } else {
+        return getTalkAnalyseView(
+            controller.talkController.isUploading.value == true &&
+                    controller.talkController.talkBean.value?.status.value ==
+                        TalkStatus.notAnalysis
+                ? '录音上传中,请勿关闭小听'
+                : controller
+                        .talkController.talkBean.value?.progressContent.value ??
+                    '',
+            controller.talkController.isUploading.value == true &&
+                    controller.talkController.talkBean.value?.status.value ==
+                        TalkStatus.notAnalysis
+                ? controller.talkController.uploadProgress.value
+                : controller.talkController.talkBean.value?.progress.value
+                        ?.toDouble() ??
+                    0.0);
+      }
+    });
   }
 }

+ 5 - 2
lib/module/talk/summary/controller.dart

@@ -25,7 +25,7 @@ class SummaryController extends BaseController {
 
   bool get isEditModel => _isEditModel.value;
 
-  Rxn<TalkBean> get summaryBean => talkController.summaryBean;
+  Rxn<TalkBean> get summaryBean => talkController.talkBean;
 
   @override
   void onReady() {
@@ -35,7 +35,10 @@ class SummaryController extends BaseController {
     });
     _talkStatusListener =
         talkController.talkBean.value?.status.listen((status) {
-      _dealTalkUpdate();
+      if (status == TalkStatus.analysisSuccess ||
+          status == TalkStatus.analysisFail) {
+        _dealTalkUpdate();
+      }
     });
     _dealTalkUpdate();
   }

+ 3 - 0
lib/module/talk/summary/view.dart

@@ -90,6 +90,9 @@ class SummaryView extends BasePage<SummaryController> {
   Widget buildAllTaskList() {
     return Obx(() {
       if (controller.agendaAllList.isEmpty) {
+        if (controller.talkController.isFirstRequestTask) {
+          return Container();
+        }
         return buildAgendaEmptyView(65.h,
             isVisible: controller.isEditModel == false);
       } else {

+ 1 - 1
lib/router/app_pages.dart

@@ -34,7 +34,7 @@ import '../module/modelexplain/controller.dart';
 import '../module/record/view.dart';
 import '../module/splash/view.dart';
 import '../module/talk/controller.dart';
-import '../module/talk/mindview/controller.dart';
+import '../module/talk/mindmap/mindview/controller.dart';
 
 abstract class AppPage {
   static final pages = <GetPage>[