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