Browse Source

修改会议助手

newdev_shunjiawei
tanlongsheng 2 years ago
parent
commit
2d45dfe476
  1. 3
      lib/modules/meeting/controllers/meeting_details_controller.dart
  2. 58
      lib/modules/meeting/controllers/meeting_edit_controller.dart
  3. 8
      lib/modules/meeting/views/meeting_edit_view.dart

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

@ -15,6 +15,8 @@ class MeetingDetailsController extends GetxController
Rx<MeetingModel> meetingData = MeetingModel().obs;
Rx<MeetingDetailsModel> dataDetails = MeetingDetailsModel().obs;
int seconds = 0;
RxBool isPlay = false.obs;
@override
@ -36,6 +38,7 @@ class MeetingDetailsController extends GetxController
final data = await SqfliteApi.getMeetingDetails(id);
meetingData.value = MeetingModel.fromJson(data);
dataDetails.value = MeetingDetailsModel.fromJson(data['details']);
seconds = meetingData.value.seconds;
isLoading.value = false;
}

58
lib/modules/meeting/controllers/meeting_edit_controller.dart

@ -2,21 +2,23 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../data/services/db/sqflite_api.dart';
import '../model/meeting_details_model.dart';
import '../model/meeting_model.dart';
import 'meeting_controller.dart';
import 'meeting_details_controller.dart';
class MeetingEditController extends GetxController
with GetSingleTickerProviderStateMixin {
final MeetingController meetingController = Get.find<MeetingController>();
final MeetingDetailsController meetingDetailsController =
Get.find<MeetingDetailsController>();
late AnimationController lottieController;
late TextEditingController titleController;
late TextEditingController contentController;
int id = 0;
int creationTime = 0;
RxBool isLoading = true.obs;
Rx<MeetingModel> meetingData = MeetingModel().obs;
Rx<MeetingDetailsModel> dataDetails = MeetingDetailsModel().obs;
int id = 0;
RxBool isPlay = false.obs;
@ -38,16 +40,13 @@ class MeetingEditController extends GetxController
}
void _getDataDetails() async {
final data = await SqfliteApi.getMeetingDetails(id);
meetingData.value = MeetingModel.fromJson(data);
dataDetails.value = MeetingDetailsModel.fromJson(data['details']);
titleController = TextEditingController(
text: meetingData.value.title,
text: meetingDetailsController.meetingData.value.title,
);
contentController = TextEditingController(
text: dataDetails.value.content,
text: meetingDetailsController.dataDetails.value.content,
);
isLoading.value = false;
creationTime = meetingDetailsController.meetingData.value.creationtime;
}
void start() {
@ -59,4 +58,39 @@ class MeetingEditController extends GetxController
isPlay.value = true;
}
}
void confirm() async {
String content = contentController.text;
String firstContent =
content.length >= 20 ? content.substring(0, 20) : content;
String title = titleController.text.isNotEmpty
? titleController.text
: meetingDetailsController.meetingData.value.title;
Map<String, Object?> data = {
'title': title,
'firstContent': firstContent,
'seconds': meetingDetailsController.seconds,
'content': contentController.text,
};
final result = await SqfliteApi.editMeeting(id, data);
if (result != null) {
int index = meetingController.dataList.indexWhere(
(item) => item['id'] == id,
);
if (index != -1) {
final dataMap =
Map<String, dynamic>.from(meetingController.dataList[index]);
dataMap['title'] = title;
dataMap['content'] = firstContent;
dataMap['seconds'] = meetingDetailsController.seconds;
meetingController.dataList[index] = dataMap;
}
meetingDetailsController.meetingData.value.title = title;
meetingDetailsController.dataDetails.value.content =
contentController.text;
meetingDetailsController.meetingData.refresh();
meetingDetailsController.dataDetails.refresh();
Get.back();
}
}
}

8
lib/modules/meeting/views/meeting_edit_view.dart

@ -17,9 +17,7 @@ class MeetingEditView extends GetView<MeetingEditController> {
return Scaffold(
backgroundColor: isDarkMode ? Colors.black : Colors.grey[50],
appBar: _buildAppBar(isDarkMode),
body: Obx(() => !controller.isLoading.value
? _buildBody(isDarkMode)
: const SizedBox()),
body: _buildBody(isDarkMode),
);
}
@ -38,7 +36,7 @@ class MeetingEditView extends GetView<MeetingEditController> {
),
actions: [
GestureDetector(
onTap: () {},
onTap: controller.confirm,
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 12.w,
@ -105,7 +103,7 @@ class MeetingEditView extends GetView<MeetingEditController> {
padding: EdgeInsets.symmetric(vertical: 5.w),
child: Text(
DateUtil.formatDateMs(
controller.meetingData.value.creationtime,
controller.creationTime,
format: DateFormats.y_mo_d_h_m,
),
style: TextStyle(

Loading…
Cancel
Save