From 0d7eb14288048f7979b8079dcfcb42259d257f1b Mon Sep 17 00:00:00 2001 From: HenryGaoGH <930127195@qq.com> Date: Mon, 6 May 2024 10:36:58 +0800 Subject: [PATCH 1/2] append hours & minutes to updated when day is changed append hours & minutes to updated when day is changed --- lib/time_picker/route/date_picker_route.dart | 34 ++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lib/time_picker/route/date_picker_route.dart b/lib/time_picker/route/date_picker_route.dart index 715e6cb..fb81f25 100644 --- a/lib/time_picker/route/date_picker_route.dart +++ b/lib/time_picker/route/date_picker_route.dart @@ -389,6 +389,7 @@ class _PickerState extends State<_PickerContentView> { _setMonth(); break; case DateType.Day: + _setDay(); break; case DateType.Hour: _setHour(); @@ -540,6 +541,39 @@ class _PickerState extends State<_PickerContentView> { } } + void _setDay() { + /// 小时的变化 + if (_dateItemModel.hour) { + int index = 0; + int begin = 0; + int end = 23; + // 限制区域 + if (intNotEmpty(minDate.hour)) { + begin = minDate.hour!; + } + if (intNotEmpty(maxDate.hour) && + _selectData.year == maxDate.year && + _selectData.month == maxDate.month && + _selectData.day == maxDate.day + ) { + end = maxDate.hour!; + } + + _dateTimeData.hour = TimeUtils.calcHour(begin: begin, end: end); + + if (_initSelectData.hour != null) { + index = _dateTimeData.hour.indexOf(_initSelectData.hour); + index = index < 0 ? 0 : index; + } + // setState(() { + // _selectData.hour = _dateTimeData.hour[index]; + // scrollCtrl[DateType.Hour] = + // FixedExtentScrollController(initialItem: index); + // }); + _setHour(); + } + } + void _setHour() { // 可能造成 分 秒 list的改变 if (_dateItemModel.minute) { From a73859a41d9eeaeba7a319f7e49bb33538e66e71 Mon Sep 17 00:00:00 2001 From: HenryGaoGH <930127195@qq.com> Date: Mon, 6 May 2024 11:43:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E5=AF=B9=E5=88=86?= =?UTF-8?q?=E9=92=9F=E7=9A=84=E5=BD=B1=E5=93=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新 对分钟的影响 --- lib/time_picker/route/date_picker_route.dart | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/time_picker/route/date_picker_route.dart b/lib/time_picker/route/date_picker_route.dart index fb81f25..1da54c1 100644 --- a/lib/time_picker/route/date_picker_route.dart +++ b/lib/time_picker/route/date_picker_route.dart @@ -571,6 +571,7 @@ class _PickerState extends State<_PickerContentView> { // FixedExtentScrollController(initialItem: index); // }); _setHour(); + _setMinute(); } } @@ -588,7 +589,12 @@ class _PickerState extends State<_PickerContentView> { if (intNotEmpty(minDate.minute) && _selectData.hour == minDate.hour) { beginMinute = minDate.minute!; } - if (intNotEmpty(maxDate.minute) && _selectData.hour == maxDate.hour) { + if (intNotEmpty(maxDate.minute) && + _selectData.year == maxDate.year && + _selectData.month == maxDate.month && + _selectData.day == maxDate.day && + _selectData.hour == maxDate.hour + ) { endMinute = maxDate.minute!; }