From b54722ab7c4117816c49dcb08a1b7957c0ce16e6 Mon Sep 17 00:00:00 2001 From: tanlongsheng <252620078@qq.com> Date: Thu, 17 Jul 2025 22:05:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Markdown=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../meeting/views/meeting_details_view.dart | 1 + .../meeting/views/tabs/summary_tab.dart | 28 +++++++++++++++++++ pubspec.yaml | 6 ++-- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/lib/modules/meeting/views/meeting_details_view.dart b/lib/modules/meeting/views/meeting_details_view.dart index 46eca267f..ab674cdaf 100644 --- a/lib/modules/meeting/views/meeting_details_view.dart +++ b/lib/modules/meeting/views/meeting_details_view.dart @@ -312,6 +312,7 @@ class MeetingDetailsView extends GetView { child: TabBarView( controller: controller.tabController, physics: const NeverScrollableScrollPhysics(), + clipBehavior: Clip.none, children: [ Obx( () => controller.isLoading.value diff --git a/lib/modules/meeting/views/tabs/summary_tab.dart b/lib/modules/meeting/views/tabs/summary_tab.dart index 2cba7aac5..3838769f0 100644 --- a/lib/modules/meeting/views/tabs/summary_tab.dart +++ b/lib/modules/meeting/views/tabs/summary_tab.dart @@ -1,8 +1,10 @@ import 'package:common_utils/common_utils.dart'; +import 'package:fleather/fleather.dart'; import 'package:flutter/material.dart'; import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:parchment/codecs.dart'; import '../../../../data/services/db/sqflite_api.dart'; import '../../controllers/meeting_details_controller.dart'; @@ -26,6 +28,10 @@ class _SummaryTabState extends State { final TextEditingController _addressController = TextEditingController(); final TextEditingController _personnelController = TextEditingController(); + final FocusNode _focusNode = FocusNode(); + final GlobalKey _editorKey = GlobalKey(); + FleatherController? _fleatherController; + @override void initState() { super.initState(); @@ -39,6 +45,7 @@ class _SummaryTabState extends State { : '[输入与会人员]'); _addressController.addListener(_handleAddressChanged); _personnelController.addListener(_handlePersonnelChanged); + _initController(); } void _handleAddressChanged() { @@ -101,6 +108,12 @@ class _SummaryTabState extends State { } } + Future _initController() async { + final markdown = const ParchmentMarkdownCodec() + .decode(_controller.meetingDetails.value.summary); + _fleatherController = FleatherController(document: markdown); + } + @override void dispose() { _addressController.dispose(); @@ -119,6 +132,7 @@ class _SummaryTabState extends State { ); return Stack( + clipBehavior: Clip.none, children: [ SingleChildScrollView( padding: EdgeInsets.only(bottom: 80.w), @@ -352,6 +366,20 @@ class _SummaryTabState extends State { ), ), ), + Positioned( + bottom: 0, + left: -12.w, + right: -12.w, + child: Container( + height: 40, + color: Colors.white, + alignment: Alignment.center, + child: FleatherToolbar.basic( + controller: _fleatherController!, + editorKey: _editorKey, + ), + ), + ), ], ); } diff --git a/pubspec.yaml b/pubspec.yaml index 011abdb79..5cb80d6b3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -23,10 +23,8 @@ dependencies: audio_session: ^0.1.18 flutter_markdown: ^0.7.7+1 markdown: ^7.1.1 - appflowy_editor: - git: - url: https://github.com/AppFlowy-IO/appflowy-editor.git - ref: main + fleather: ^1.24.0+1 + parchment: ^1.24.0 wifi_iot: ^0.3.19+2 permission_handler: ^10.4.5 web_socket_channel: ^2.4.0