Procházet zdrojové kódy

筛选状态可缓存

loki.wu před 9 měsíci
rodič
revize
81433fb9c0
2 změnil soubory, kde provedl 14 přidání a 7 odebrání
  1. 2 0
      lib/ecg_list/view.dart
  2. 12 7
      lib/ecg_list/widgets/filter_time.dart

+ 2 - 0
lib/ecg_list/view.dart

@@ -97,6 +97,8 @@ class EcgListPage extends GetView<EcgListController> {
                   controller.endTime = end;
                   controller.getDatas();
                 },
+                startTime: controller.startTime,
+                endTime: controller.endTime,
               ),
             );
           },

+ 12 - 7
lib/ecg_list/widgets/filter_time.dart

@@ -11,11 +11,15 @@ import 'input.dart';
 // ignore: must_be_immutable
 class FilterView extends StatefulWidget {
   final void Function(DateTime, DateTime) onConfirm;
+  final DateTime? startTime;
+  final DateTime? endTime;
 
-  FilterView({
+  const FilterView({
     required this.onConfirm,
+    this.startTime,
+    this.endTime,
     super.key,
-  }) {}
+  });
 
   @override
   State<StatefulWidget> createState() {
@@ -40,8 +44,9 @@ class FilterViewState extends State<FilterView> {
   Widget build(BuildContext context) {
     // 设置日期格式为 年-月-日 时:分
     String startFormattedDate =
-        DateFormat('yyyy-MM-dd HH:mm').format(_startTime);
-    String endFormattedDate = DateFormat('yyyy-MM-dd HH:mm').format(_endTime);
+        DateFormat('yyyy-MM-dd HH:mm').format(widget.startTime ?? _startTime);
+    String endFormattedDate =
+        DateFormat('yyyy-MM-dd HH:mm').format(widget.endTime ?? _endTime);
     _startController.text = startFormattedDate;
     _endController.text = endFormattedDate;
     return Alert(
@@ -156,7 +161,7 @@ class FilterViewState extends State<FilterView> {
   void _onChangeStartTime() async {
     DateTime now = DateTime.now();
     DateTime? result;
-    var initialValue = _startTime;
+    var initialValue = widget.startTime ?? _startTime;
     if (kIsWeb) {
       result = await showDatePicker(
         context: Get.context!,
@@ -201,7 +206,7 @@ class FilterViewState extends State<FilterView> {
   Future<void> _onChangeEndTime() async {
     DateTime now = DateTime.now();
     DateTime? result;
-    var initialValue = _endTime;
+    var initialValue = widget.endTime ?? _endTime;
     if (kIsWeb) {
       result = await showDatePicker(
         context: Get.context!,
@@ -214,7 +219,7 @@ class FilterViewState extends State<FilterView> {
       }
       var time = await showTimePicker(
         context: Get.context!,
-        initialTime: TimeOfDay(hour: 9, minute: 0),
+        initialTime: const TimeOfDay(hour: 9, minute: 0),
       );
       if (time != null) {
         result = result.add(Duration(hours: time.hour, minutes: time.minute));