Procházet zdrojové kódy

[new]增加思维导图案例

zk před 1 rokem
rodič
revize
df094d0b14

+ 1 - 0
lib/module/talk/controller.dart

@@ -91,6 +91,7 @@ class TalkController extends BaseController {
 
   final List<String> tabBeans = [
     StringName.talkTabSummary.tr,
+    '思维导图',
     StringName.talkTabMyTask.tr,
     StringName.talkTabOriginal.tr
   ];

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

@@ -0,0 +1,23 @@
+import 'package:webview_flutter/webview_flutter.dart';
+import 'package:electronic_assistant/base/base_controller.dart';
+
+class MindMapController extends BaseController {
+  final WebViewController webViewController = WebViewController();
+
+  final String? talkId;
+
+  MindMapController(this.talkId);
+
+  @override
+  void onInit() {
+    super.onInit();
+  }
+
+  @override
+  void onReady() {
+    super.onReady();
+    webViewController.setJavaScriptMode(JavaScriptMode.unrestricted);
+    webViewController.enableZoom(false);
+    webViewController.loadRequest(Uri.parse('https://markmap.js.org/repl'));
+  }
+}

+ 23 - 0
lib/module/talk/mindmap/view.dart

@@ -0,0 +1,23 @@
+import 'package:electronic_assistant/base/base_page.dart';
+import 'package:electronic_assistant/module/talk/mindmap/controller.dart';
+import 'package:flutter/src/widgets/framework.dart';
+import 'package:get/get.dart';
+import 'package:get/get_core/src/get_main.dart';
+
+import 'package:webview_flutter/webview_flutter.dart';
+
+class MindMapView extends BasePage<MindMapController> {
+  final String? talkId;
+
+  MindMapView(this.talkId, {super.key}) {
+    Get.lazyPut(() => MindMapController(talkId), tag: talkId);
+  }
+
+  @override
+  get controller => Get.find<MindMapController>(tag: talkId);
+
+  @override
+  Widget buildBody(BuildContext context) {
+    return WebViewWidget(controller: controller.webViewController);
+  }
+}

+ 3 - 1
lib/module/talk/view.dart

@@ -1,5 +1,6 @@
 import 'package:electronic_assistant/base/base_page.dart';
 import 'package:electronic_assistant/module/talk/controller.dart';
+import 'package:electronic_assistant/module/talk/mindmap/view.dart';
 import 'package:electronic_assistant/module/talk/summary/view.dart';
 import 'package:electronic_assistant/module/talk/todo/view.dart';
 import 'package:electronic_assistant/resource/colors.gen.dart';
@@ -29,6 +30,7 @@ class TalkPage extends BasePage<TalkController> {
         tag: talkId, fenix: true);
     _pages = [
       SummaryView(talkId),
+      MindMapView(talkId),
       TodoView(talkId),
       OriginalView(talkId),
     ];
@@ -254,7 +256,7 @@ class TalkPage extends BasePage<TalkController> {
   Widget buildTabContentView() {
     return Expanded(
       child: TabBarView(
-        physics: controller.isEditModel
+        physics: controller.isEditModel || controller.tabIndex.value == 1
             ? const NeverScrollableScrollPhysics()
             : null,
         children: _pages,