| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import 'dart:async';
- import 'package:flutter/material.dart';
- import 'package:electronic_assistant/base/base_controller.dart';
- import 'package:electronic_assistant/module/talk/mindmap/mind_util.dart';
- import 'package:electronic_assistant/resource/assets.gen.dart';
- import 'package:flutter/rendering.dart';
- import 'package:flutter/widgets.dart';
- import 'package:get/get.dart';
- import 'package:get/get_core/src/get_main.dart';
- import 'package:webview_flutter/webview_flutter.dart';
- import '../../../data/bean/template_bean.dart';
- import '../controller.dart';
- class MindMapController extends BaseController {
- final String? talkId;
- MindMapController(this.talkId);
- TalkController get talkController => Get.find<TalkController>(tag: talkId);
- List<TemplateBean>? get templateList => talkController.templateList.value;
- int? get templateSelectId => talkController.templateSelectId.value;
- RxBool get isShowMindFullScreen => talkController.isShowMindFullScreen;
- StreamSubscription? _talkSummaryListener;
- GlobalKey repaintKey = GlobalKey();
- @override
- void onReady() async {
- super.onReady();
- talkController.webViewController.loadFlutterAsset(Assets.html.index);
- talkController.webViewController.setNavigationDelegate(
- NavigationDelegate(
- onPageFinished: (String url) async {
- _dealTalkSummaryUpdate(talkController.talkBean.value?.summary.value);
- },
- onNavigationRequest: (NavigationRequest request) {
- return NavigationDecision.navigate;
- },
- ),
- );
- _talkSummaryListener =
- talkController.talkBean.value?.summary.listen((summary) {
- _dealTalkSummaryUpdate(summary);
- });
- }
- void _dealTalkSummaryUpdate(String? summary) {
- debugPrint('mindMap summary: $summary');
- talkController.webViewController
- .callHandler(MindUtil.functionToJsUpdateMind, args: [summary],
- handler: (value) {
- debugPrint('mindMap update success: $value');
- });
- }
- void addTemplateClick() {}
- void fullScreenClick() {
- talkController.isShowMindFullScreen.value = true;
- }
- void exitFullScreenClick() {
- talkController.onExitMindFullScreen();
- }
- @override
- void onClose() {
- super.onClose();
- _talkSummaryListener?.cancel();
- }
- }
|