diff --git a/lib/modules/meeting/controllers/meeting_mine_controller.dart b/lib/modules/meeting/controllers/meeting_mine_controller.dart index 2e5470ea3..907ae480e 100644 --- a/lib/modules/meeting/controllers/meeting_mine_controller.dart +++ b/lib/modules/meeting/controllers/meeting_mine_controller.dart @@ -1,3 +1,26 @@ import 'package:get/get.dart'; -class MeetingMineController extends GetxController {} +import 'meeting_home_controller.dart'; + +class MeetingMineController extends GetxController { + final _controller = Get.find(); + + RxInt days = 0.obs; + RxInt numberFiles = 0.obs; + RxDouble hourage = 0.0.obs; + RxInt continuousDays = 0.obs; + RxInt maxNumberFiles = 0.obs; + RxDouble maxHourage = 0.0.obs; + + @override + void onInit() { + super.onInit(); + _getStatistics(); + } + + void _getStatistics() { + numberFiles.value = _controller.originalDataList.length; + + for (var element in _controller.originalDataList) {} + } +} diff --git a/lib/modules/meeting/views/bottomSheet/statistics_bottom_sheet.dart b/lib/modules/meeting/views/bottomSheet/statistics_bottom_sheet.dart index 772acae49..667bf370a 100644 --- a/lib/modules/meeting/views/bottomSheet/statistics_bottom_sheet.dart +++ b/lib/modules/meeting/views/bottomSheet/statistics_bottom_sheet.dart @@ -2,6 +2,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import '../../controllers/meeting_mine_controller.dart'; + class StatisticsBottomSheet extends StatefulWidget { const StatisticsBottomSheet({super.key}); @@ -10,6 +12,8 @@ class StatisticsBottomSheet extends StatefulWidget { } class _StatisticsBottomSheetState extends State { + final _mineController = Get.find(); + @override Widget build(BuildContext context) { return Stack( @@ -66,12 +70,36 @@ class _StatisticsBottomSheetState extends State { spacing: 5.w, runSpacing: 5.w, children: [ - _item('天', '1', Colors.amber), - _item('文件', '3', Colors.blueGrey), - _item('小时', '0.2', Colors.cyan), - _item('连续录音天数', '1', Colors.deepOrangeAccent), - _item('单日最多录音', '3', Colors.teal), - _item('单日最长录音', '0.2', Colors.pink), + _item( + '天', + '${_mineController.days.value}', + Colors.amber, + ), + _item( + '文件', + '${_mineController.numberFiles.value}', + Colors.blueGrey, + ), + _item( + '小时', + '${_mineController.hourage.value}', + Colors.cyan, + ), + _item( + '连续录音天数', + '${_mineController.continuousDays.value}', + Colors.deepOrangeAccent, + ), + _item( + '单日最多录音', + '${_mineController.maxNumberFiles.value}', + Colors.teal, + ), + _item( + '单日最长录音', + '${_mineController.maxHourage.value}', + Colors.pink, + ), ], ), ), diff --git a/lib/modules/meeting/views/meeting_mine_view.dart b/lib/modules/meeting/views/meeting_mine_view.dart index 7d97abf27..9b09005b4 100644 --- a/lib/modules/meeting/views/meeting_mine_view.dart +++ b/lib/modules/meeting/views/meeting_mine_view.dart @@ -2,16 +2,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import '../controllers/meeting_mine_controller.dart'; import 'bottomSheet/statistics_bottom_sheet.dart'; -class MeetingMineView extends StatefulWidget { +class MeetingMineView extends GetView { const MeetingMineView({super.key}); - @override - State createState() => _MeetingMineViewState(); -} - -class _MeetingMineViewState extends State { @override Widget build(BuildContext context) { return Scaffold( @@ -152,38 +148,52 @@ class _MeetingMineViewState extends State { color: Colors.white, borderRadius: BorderRadius.circular(16.w), ), - child: Column( - children: [ - Row( - children: [ - _statisticsItem('2', '天', Colors.lime), - _statisticsItem('4', '文件', Colors.lightGreen), - _statisticsItem('1.5', '小时', Colors.blueGrey), - ], - ), - Container( - height: 80.w, - padding: EdgeInsets.symmetric(horizontal: 2.w), - margin: EdgeInsets.only(top: 8.w, bottom: 2.w), - child: GridView.builder( - scrollDirection: Axis.horizontal, - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 7, - mainAxisSpacing: 2.w, - crossAxisSpacing: 2.w, + child: Obx( + () => Column( + children: [ + Row( + children: [ + _statisticsItem( + '${controller.days.value}', + '天', + Colors.lime, + ), + _statisticsItem( + '${controller.numberFiles.value}', + '文件', + Colors.lightGreen, + ), + _statisticsItem( + '${controller.hourage.value}', + '小时', + Colors.blueGrey, + ), + ], + ), + Container( + height: 80.w, + padding: EdgeInsets.symmetric(horizontal: 2.w), + margin: EdgeInsets.only(top: 8.w, bottom: 2.w), + child: GridView.builder( + scrollDirection: Axis.horizontal, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 7, + mainAxisSpacing: 2.w, + crossAxisSpacing: 2.w, + ), + itemCount: 364, + itemBuilder: (BuildContext context, int index) { + return Container( + decoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: BorderRadius.circular(2.w), + ), + ); + }, ), - itemCount: 364, - itemBuilder: (BuildContext context, int index) { - return Container( - decoration: BoxDecoration( - color: Colors.grey[200], - borderRadius: BorderRadius.circular(2.w), - ), - ); - }, ), - ), - ], + ], + ), ), ), );