|
@@ -1,6 +1,7 @@
|
|
|
import 'dart:async';
|
|
import 'dart:async';
|
|
|
import 'dart:io';
|
|
import 'dart:io';
|
|
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
|
|
|
|
+import 'package:dsbridge_flutter/dsbridge_flutter.dart';
|
|
|
import 'package:electronic_assistant/base/base_controller.dart';
|
|
import 'package:electronic_assistant/base/base_controller.dart';
|
|
|
import 'package:electronic_assistant/data/consts/event_report_id.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/account_repository.dart';
|
|
@@ -10,6 +11,7 @@ import 'package:electronic_assistant/module/chat/view.dart';
|
|
|
import 'package:electronic_assistant/module/login/view.dart';
|
|
import 'package:electronic_assistant/module/login/view.dart';
|
|
|
import 'package:electronic_assistant/module/record/record_handler.dart';
|
|
import 'package:electronic_assistant/module/record/record_handler.dart';
|
|
|
import 'package:electronic_assistant/module/store/view.dart';
|
|
import 'package:electronic_assistant/module/store/view.dart';
|
|
|
|
|
+import 'package:electronic_assistant/module/talk/mindmap/mind_util.dart';
|
|
|
import 'package:electronic_assistant/module/talk/todo/controller.dart';
|
|
import 'package:electronic_assistant/module/talk/todo/controller.dart';
|
|
|
import 'package:electronic_assistant/resource/assets.gen.dart';
|
|
import 'package:electronic_assistant/resource/assets.gen.dart';
|
|
|
import 'package:electronic_assistant/resource/colors.gen.dart';
|
|
import 'package:electronic_assistant/resource/colors.gen.dart';
|
|
@@ -23,6 +25,7 @@ import 'package:electronic_assistant/utils/mmkv_util.dart';
|
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:flutter/scheduler.dart';
|
|
import 'package:flutter/scheduler.dart';
|
|
|
|
|
+import 'package:flutter/services.dart';
|
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
|
|
import 'package:get/get.dart';
|
|
import 'package:get/get.dart';
|
|
@@ -45,6 +48,7 @@ import '../../utils/common_utils.dart';
|
|
|
import '../../utils/event_bus.dart';
|
|
import '../../utils/event_bus.dart';
|
|
|
import '../../utils/system_share_util.dart';
|
|
import '../../utils/system_share_util.dart';
|
|
|
import '../../utils/toast_util.dart';
|
|
import '../../utils/toast_util.dart';
|
|
|
|
|
+import 'package:webview_flutter/webview_flutter.dart';
|
|
|
|
|
|
|
|
class TalkController extends BaseController {
|
|
class TalkController extends BaseController {
|
|
|
static const String argumentItem = 'argument_item';
|
|
static const String argumentItem = 'argument_item';
|
|
@@ -140,6 +144,9 @@ class TalkController extends BaseController {
|
|
|
|
|
|
|
|
double? get headViewHeight => _headViewHeight.value;
|
|
double? get headViewHeight => _headViewHeight.value;
|
|
|
|
|
|
|
|
|
|
+ final DWebViewController webViewController =
|
|
|
|
|
+ MindUtil.createMindWebViewController();
|
|
|
|
|
+
|
|
|
@override
|
|
@override
|
|
|
void onInit() {
|
|
void onInit() {
|
|
|
super.onInit();
|
|
super.onInit();
|
|
@@ -628,13 +635,43 @@ class TalkController extends BaseController {
|
|
|
_shareSummaryOrOriginal(
|
|
_shareSummaryOrOriginal(
|
|
|
talkBean.value!.id, fileName, type, shareTo, tag);
|
|
talkBean.value!.id, fileName, type, shareTo, tag);
|
|
|
} else if (type == ShareTalkType.mindMap) {
|
|
} else if (type == ShareTalkType.mindMap) {
|
|
|
- //TODO 生成思维导图
|
|
|
|
|
- _shareMindMap();
|
|
|
|
|
|
|
+ _shareMindMap(
|
|
|
|
|
+ talkBean.value?.title.value, talkBean.value?.summary.value);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- void _shareMindMap() {}
|
|
|
|
|
|
|
+ Future<String> loadSvgFromAssets() async {
|
|
|
|
|
+ String svgString = await rootBundle.loadString('assets/images/test2.svg');
|
|
|
|
|
+ return svgString;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ void _shareMindMap(String? title, String? summary) async {
|
|
|
|
|
+ // String svgString = await loadSvgFromAssets();
|
|
|
|
|
+ // final pngBytes = await MindUtil.svgToPng(svgString, Get.context!);
|
|
|
|
|
+ // MindUtil.convertToFile(pngBytes, 'test.png');
|
|
|
|
|
+ // webViewController.callHandler(MindUtil.functionToJsExport, args: ['test'],
|
|
|
|
|
+ // handler: (value) async {
|
|
|
|
|
+ // if (value == null) {
|
|
|
|
|
+ // throw Exception('Unable to convert SVG to PNG');
|
|
|
|
|
+ // }
|
|
|
|
|
+ // debugPrint('mindMap summary: $value');
|
|
|
|
|
+ //
|
|
|
|
|
+ // ToastUtil.showToast('思维导图svg下载成功');
|
|
|
|
|
+ // });
|
|
|
|
|
+
|
|
|
|
|
+ // await webViewController.loadFlutterAsset(Assets.html.index);
|
|
|
|
|
+ // webViewController.setNavigationDelegate(
|
|
|
|
|
+ // NavigationDelegate(
|
|
|
|
|
+ // onPageFinished: (String url) {
|
|
|
|
|
+ //
|
|
|
|
|
+ // },
|
|
|
|
|
+ // onNavigationRequest: (NavigationRequest request) {
|
|
|
|
|
+ // return NavigationDecision.navigate;
|
|
|
|
|
+ // },
|
|
|
|
|
+ // ),
|
|
|
|
|
+ // );
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
void _shareSummaryOrOriginal(String id, String fileName, ShareTalkType type,
|
|
void _shareSummaryOrOriginal(String id, String fileName, ShareTalkType type,
|
|
|
ShareTo shareTo, String tag) async {
|
|
ShareTo shareTo, String tag) async {
|