|
|
@ -11,15 +11,27 @@ import '../model/meeting_model.dart'; |
|
|
import 'bottomSheet/edit_title_bottom_sheet.dart'; |
|
|
import 'bottomSheet/edit_title_bottom_sheet.dart'; |
|
|
import 'bottomSheet/import_audio_bottom_sheet.dart'; |
|
|
import 'bottomSheet/import_audio_bottom_sheet.dart'; |
|
|
|
|
|
|
|
|
class MeetingHomeView extends GetView<MeetingHomeController> { |
|
|
class MeetingHomeView extends StatefulWidget { |
|
|
const MeetingHomeView({super.key}); |
|
|
const MeetingHomeView({super.key}); |
|
|
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
|
State<MeetingHomeView> createState() => _MeetingHomeViewState(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
class _MeetingHomeViewState extends State<MeetingHomeView> |
|
|
|
|
|
with AutomaticKeepAliveClientMixin { |
|
|
|
|
|
final _controller = Get.put(MeetingHomeController()); |
|
|
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
|
bool get wantKeepAlive => true; |
|
|
|
|
|
|
|
|
@override |
|
|
@override |
|
|
Widget build(BuildContext context) { |
|
|
Widget build(BuildContext context) { |
|
|
|
|
|
super.build(context); |
|
|
final isDarkMode = Theme.of(context).brightness == Brightness.dark; |
|
|
final isDarkMode = Theme.of(context).brightness == Brightness.dark; |
|
|
|
|
|
|
|
|
return PopScope( |
|
|
return PopScope( |
|
|
onPopInvokedWithResult: controller.onPopInvokedWithResult, |
|
|
onPopInvokedWithResult: _controller.onPopInvokedWithResult, |
|
|
child: Scaffold( |
|
|
child: Scaffold( |
|
|
backgroundColor: isDarkMode ? Colors.black : Colors.grey[100], |
|
|
backgroundColor: isDarkMode ? Colors.black : Colors.grey[100], |
|
|
appBar: _buildAppBar(isDarkMode), |
|
|
appBar: _buildAppBar(isDarkMode), |
|
|
@ -61,7 +73,7 @@ class MeetingHomeView extends GetView<MeetingHomeController> { |
|
|
Widget _buildFiltrate(bool isDarkMode) { |
|
|
Widget _buildFiltrate(bool isDarkMode) { |
|
|
return GestureDetector( |
|
|
return GestureDetector( |
|
|
onTap: () { |
|
|
onTap: () { |
|
|
controller.meetingController.scaffoldKey.currentState?.openDrawer(); |
|
|
_controller.meetingController.scaffoldKey.currentState?.openDrawer(); |
|
|
}, |
|
|
}, |
|
|
behavior: HitTestBehavior.translucent, |
|
|
behavior: HitTestBehavior.translucent, |
|
|
child: Row( |
|
|
child: Row( |
|
|
@ -95,7 +107,7 @@ class MeetingHomeView extends GetView<MeetingHomeController> { |
|
|
5.horizontalSpace, |
|
|
5.horizontalSpace, |
|
|
Obx( |
|
|
Obx( |
|
|
() => Text( |
|
|
() => Text( |
|
|
'${controller.filtrateType.value.isNotEmpty ? controller.filtrateType : '全部文件'}(${controller.dataList.length})', |
|
|
'${_controller.filtrateType.value.isNotEmpty ? _controller.filtrateType : '全部文件'}(${_controller.dataList.length})', |
|
|
style: TextStyle( |
|
|
style: TextStyle( |
|
|
color: isDarkMode ? Colors.white : Colors.black87, |
|
|
color: isDarkMode ? Colors.white : Colors.black87, |
|
|
fontSize: 16.sp, |
|
|
fontSize: 16.sp, |
|
|
@ -194,10 +206,11 @@ class MeetingHomeView extends GetView<MeetingHomeController> { |
|
|
Widget _buildBody(BuildContext context, bool isDarkMode) { |
|
|
Widget _buildBody(BuildContext context, bool isDarkMode) { |
|
|
return Obx( |
|
|
return Obx( |
|
|
() => ListView.builder( |
|
|
() => ListView.builder( |
|
|
itemCount: controller.dataList.length, |
|
|
itemCount: _controller.dataList.length, |
|
|
padding: EdgeInsets.fromLTRB(12.w, 5.w, 12.w, 90.w), |
|
|
padding: EdgeInsets.fromLTRB(12.w, 5.w, 12.w, 90.w), |
|
|
itemBuilder: (BuildContext context, int index) { |
|
|
itemBuilder: (BuildContext context, int index) { |
|
|
MeetingModel data = MeetingModel.fromJson(controller.dataList[index]); |
|
|
MeetingModel data = |
|
|
|
|
|
MeetingModel.fromJson(_controller.dataList[index]); |
|
|
return _item(context, isDarkMode, data); |
|
|
return _item(context, isDarkMode, data); |
|
|
}, |
|
|
}, |
|
|
), |
|
|
), |
|
|
@ -298,7 +311,7 @@ class MeetingHomeView extends GetView<MeetingHomeController> { |
|
|
const Spacer(), |
|
|
const Spacer(), |
|
|
Obx(() { |
|
|
Obx(() { |
|
|
Map uploadData = |
|
|
Map uploadData = |
|
|
controller.meetingUploadService.uploadList.firstWhere( |
|
|
_controller.meetingUploadService.uploadList.firstWhere( |
|
|
(element) => element['id'] == data.id, |
|
|
(element) => element['id'] == data.id, |
|
|
orElse: () => {}, |
|
|
orElse: () => {}, |
|
|
); |
|
|
); |
|
|
@ -307,13 +320,14 @@ class MeetingHomeView extends GetView<MeetingHomeController> { |
|
|
alignment: Alignment.center, |
|
|
alignment: Alignment.center, |
|
|
children: [ |
|
|
children: [ |
|
|
if (uploadData['id'] == |
|
|
if (uploadData['id'] == |
|
|
controller.meetingUploadService.meetingId.value) |
|
|
_controller |
|
|
|
|
|
.meetingUploadService.meetingId.value) |
|
|
Obx( |
|
|
Obx( |
|
|
() => SizedBox( |
|
|
() => SizedBox( |
|
|
width: 20.w, |
|
|
width: 20.w, |
|
|
height: 20.w, |
|
|
height: 20.w, |
|
|
child: CircularProgressIndicator( |
|
|
child: CircularProgressIndicator( |
|
|
value: controller.meetingUploadService |
|
|
value: _controller.meetingUploadService |
|
|
.uploadProgress.value, |
|
|
.uploadProgress.value, |
|
|
valueColor: |
|
|
valueColor: |
|
|
const AlwaysStoppedAnimation<Color>( |
|
|
const AlwaysStoppedAnimation<Color>( |
|
|
@ -339,7 +353,7 @@ class MeetingHomeView extends GetView<MeetingHomeController> { |
|
|
}), |
|
|
}), |
|
|
Obx(() { |
|
|
Obx(() { |
|
|
Map taskData = |
|
|
Map taskData = |
|
|
controller.meetingTaskService.taskFinishList.firstWhere( |
|
|
_controller.meetingTaskService.taskFinishList.firstWhere( |
|
|
(element) => element['id'] == data.id, |
|
|
(element) => element['id'] == data.id, |
|
|
orElse: () => {}, |
|
|
orElse: () => {}, |
|
|
); |
|
|
); |
|
|
@ -401,9 +415,9 @@ class MeetingHomeView extends GetView<MeetingHomeController> { |
|
|
isDarkMode ? Colors.white : Colors.black87, |
|
|
isDarkMode ? Colors.white : Colors.black87, |
|
|
() { |
|
|
() { |
|
|
final dotIndex = data.title.lastIndexOf('.'); |
|
|
final dotIndex = data.title.lastIndexOf('.'); |
|
|
controller.titleController.text = |
|
|
_controller.titleController.text = |
|
|
dotIndex != -1 ? data.title.substring(0, dotIndex) : data.title; |
|
|
dotIndex != -1 ? data.title.substring(0, dotIndex) : data.title; |
|
|
controller.titleCSuffix = |
|
|
_controller.titleCSuffix = |
|
|
data.title.substring(dotIndex, data.title.length); |
|
|
data.title.substring(dotIndex, data.title.length); |
|
|
Get.bottomSheet( |
|
|
Get.bottomSheet( |
|
|
EditTitleBottomSheet(data.id), |
|
|
EditTitleBottomSheet(data.id), |
|
|
@ -426,7 +440,7 @@ class MeetingHomeView extends GetView<MeetingHomeController> { |
|
|
'delete'.tr, // 删除 |
|
|
'delete'.tr, // 删除 |
|
|
isDarkMode ? Colors.red[700]! : Colors.red, |
|
|
isDarkMode ? Colors.red[700]! : Colors.red, |
|
|
() { |
|
|
() { |
|
|
controller.deleteMeeting(data.id, data.filepath); |
|
|
_controller.deleteMeeting(data.id, data.filepath); |
|
|
}, |
|
|
}, |
|
|
), |
|
|
), |
|
|
], |
|
|
], |
|
|
|