Browse Source

修改会议助手

newdev_shunjiawei
tanlongsheng 1 year ago
parent
commit
4f2bf0f1bf
  1. 3
      lib/modules/meeting/controllers/meeting_details_controller.dart
  2. 10
      lib/modules/meeting/controllers/mind_map_controller.dart
  3. 2
      lib/modules/meeting/views/bottomSheet/speaker_all_bottom_sheet.dart
  4. 1
      lib/modules/meeting/views/bottomSheet/speaker_bottom_sheet.dart
  5. 32
      lib/modules/meeting/views/tabs/summary_tab.dart

3
lib/modules/meeting/controllers/meeting_details_controller.dart

@ -55,6 +55,8 @@ class MeetingDetailsController extends GetxController
String editSpeakerTextChange = '';
int _everType = 99;
RxInt summaryNumberModifications = 0.obs;
RxInt personnelNumberModifications = 0.obs;
String markmapLibJs = '';
String d3Js = '';
@ -90,6 +92,7 @@ class MeetingDetailsController extends GetxController
} else if (value == 3) {
meetingDetails.value.summary = _meetingTaskService.summary;
meetingDetails.value.overview = _meetingTaskService.overview;
summaryNumberModifications.value++;
}
}
meetingDetails.refresh();

10
lib/modules/meeting/controllers/mind_map_controller.dart

@ -108,6 +108,12 @@ class MindMapController extends GetxController {
const toolbarElement = document.getElementById('toolbar');
toolbarElement.append(el);
window.updateMarkmap = async function(value) {
const { root } = transformer.transform(value);
await mm.setData(root);
await mm.fit();
}
window.captureImage = async function() {
const markmapElement = document.getElementById('markmap');
markmapElement.style.height = `${_width}px`;
@ -144,6 +150,10 @@ class MindMapController extends GetxController {
)
..setBackgroundColor(Colors.transparent)
..loadHtmlString(html);
ever(_meetingDetailsController.summaryNumberModifications, (value) {
webViewController.runJavaScript(
'updateMarkmap(`${_meetingDetailsController.meetingDetails.value.summary}`)');
});
}
void _messageReceived(message) async {

2
lib/modules/meeting/views/bottomSheet/speaker_all_bottom_sheet.dart

@ -576,10 +576,12 @@ class _SpeakerAllBottomSheetState extends State<SpeakerAllBottomSheet> {
'personnel': personnel,
});
_controller.meetingDetails.value.summary = summaryText;
_controller.summaryNumberModifications.value++;
} else {
SqfliteApi.editMeeting(_controller.id, {'personnel': personnel});
}
_controller.meetingDetails.value.personnel = personnel;
_controller.personnelNumberModifications.value++;
_controller.meetingDetails.refresh();
_storage.write("speaker_list", _historySpeakerList);
Get.back();

1
lib/modules/meeting/views/bottomSheet/speaker_bottom_sheet.dart

@ -382,6 +382,7 @@ class _SpeakerBottomSheetState extends State<SpeakerBottomSheet> {
'personnel': personnel,
});
_controller.meetingDetails.value.summary = summaryText;
_controller.summaryNumberModifications.value++;
} else {
SqfliteApi.editMeeting(_controller.id, {'personnel': personnel});
}

32
lib/modules/meeting/views/tabs/summary_tab.dart

@ -36,6 +36,20 @@ class _SummaryTabState extends State<SummaryTab> {
@override
void initState() {
super.initState();
_initController();
_addressController.addListener(_handleAddressChanged);
_personnelController.addListener(_handlePersonnelChanged);
_focusNode.addListener(() {
setState(() {
_hasFocus = _focusNode.hasFocus;
});
});
ever(_controller.personnelNumberModifications, (value) {
_initController();
});
}
void _initController() {
_addressController.text = _addressPrefix +
(_controller.meetingDetails.value.address.isNotEmpty
? _controller.meetingDetails.value.address
@ -44,9 +58,9 @@ class _SummaryTabState extends State<SummaryTab> {
(_controller.meetingDetails.value.personnel.isNotEmpty
? _controller.meetingDetails.value.personnel
: '[输入与会人员]');
_addressController.addListener(_handleAddressChanged);
_personnelController.addListener(_handlePersonnelChanged);
_initController();
final markdown = const ParchmentMarkdownCodec()
.decode(_controller.meetingDetails.value.summary);
_fleatherController = FleatherController(document: markdown);
}
void _handleAddressChanged() {
@ -109,17 +123,6 @@ class _SummaryTabState extends State<SummaryTab> {
}
}
Future<void> _initController() async {
final markdown = const ParchmentMarkdownCodec()
.decode(_controller.meetingDetails.value.summary);
_fleatherController = FleatherController(document: markdown);
_focusNode.addListener(() {
setState(() {
_hasFocus = _focusNode.hasFocus;
});
});
}
void _saveSummary() async {
final markdown =
const ParchmentMarkdownCodec().encode(_fleatherController!.document);
@ -129,6 +132,7 @@ class _SummaryTabState extends State<SummaryTab> {
{'summary': markdown},
);
_controller.meetingDetails.value.summary = markdown;
_controller.summaryNumberModifications.value++;
}
_focusNode.dispose();
_fleatherController?.dispose();

Loading…
Cancel
Save