onTextTapped method

void onTextTapped(
  1. bool isMax
)

Implementation

void onTextTapped(bool isMax) {
  if (_datePickerController.isShow) return;
  // String format = 'yyyy年,MM月,dd日';
  // DateTime? minDate = DateTimeFormatter.convertIntValueToDateTime(
  //     (widget.item.extMap)['min']);
  // DateTime? maxDate = DateTimeFormatter.convertIntValueToDateTime(
  //     (widget.item.extMap)['max']);

  DateTime? minSelectedDateTime = SelectionUtil.isEmpty(widget.item.customMap)
      ? null
      : DateTimeFormatter.convertIntValueToDateTime(
          widget.item.customMap!['min']);
  DateTime? maxSelectedDateTime = SelectionUtil.isEmpty(widget.item.customMap)
      ? null
      : DateTimeFormatter.convertIntValueToDateTime(
          widget.item.customMap!['max']);

  //DateTime? _minDateTime;
  //DateTime? _maxDateTime;
  // if (widget.item.customMap == null ||
  //     (widget.item.customMap!['min'] == null &&
  //         widget.item.customMap!['max'] == null)) {
  //   // 如果开始时间和结束时间均未选择
  //   _minDateTime = minDate;
  //   _maxDateTime = maxDate;
  // } else {
  //   _minDateTime = !isMax ? minDate : (minSelectedDateTime ?? minDate);
  //   _maxDateTime = isMax ? maxDate : (maxSelectedDateTime ?? maxDate);
  // }

  Widget content = TableCalendar(
    locale: "zh",
    firstDay: DateTime(2000, 1, 1),
    lastDay: DateTime(2050, 12, 31),
    focusedDay: DateTime.now(),
    calendarFormat: CalendarFormat.month,
    rangeSelectionMode: RangeSelectionMode.toggledOn,
    rangeStartDay: minSelectedDateTime,
    rangeEndDay: maxSelectedDateTime,
    onRangeSelected: (start, end, focusedDay) {
      widget.item.isSelected = true;
      widget.item.customMap ??= {};
      widget.item.customMap!['min'] =
          start?.millisecondsSinceEpoch.toString() ?? "";
      widget.item.customMap!['max'] =
          end?.millisecondsSinceEpoch.toString() ?? "";
      closeSelectionPopupWindow();

      if (!isMax &&
          SelectionUtil.isEmpty(widget.maxTextEditingController.text)) {
        onTextTapped(true);
      }
      setState(() {});
    },
  );

  OverlayEntry entry = _createDatePickerEntry(context, content);
  Overlay.of(context).insert(entry);
  _datePickerController.entry = entry;
  _datePickerController.show();
}