set_time_widget.dart 2.12 KB
import 'package:flutter/material.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/utils.dart';

typedef SetTimeCallback = void Function(List value);

class SetTimeWidget {
  static List dateData = [
    {
      '深夜00时': [00, 30]
    },
    {
      '深夜01时': [00, 30]
    },
    {
      '深夜02时': [00, 30]
    },
    {
      '深夜03时': [00, 30]
    },
    {
      '深夜04时': [00, 30]
    },
    {
      '深夜05时': [00, 30]
    },
    {
      '早上06时': [00, 30]
    },
    {
      '早上07时': [00, 30]
    },
    {
      '早上08时': [00, 30]
    },
    {
      '早上09时': [00, 30]
    },
    {
      '中午10时': [00, 30]
    },
    {
      '中午11时': [00, 30]
    },
    {
      '中午12时': [00, 30]
    },
    {
      '中午13时': [00, 30]
    },
    {
      '中午14时': [00, 30]
    },
    {
      '下午15时': [00, 30]
    },
    {
      '下午16时': [00, 30]
    },
    {
      '下午17时': [00, 30]
    },
    {
      '下午18时': [00, 30]
    },
    {
      '晚上19时': [00, 30]
    },
    {
      '晚上20时': [00, 30]
    },
    {
      '晚上21时': [00, 30]
    },
    {
      '晚上22时': [00, 30]
    },
    {
      '晚上23时': [00, 30]
    }
  ];
  showTimeSelector(
      context, data, hourAndMinute, SetTimeCallback setTimeCallback) {
    DialogUtil.showSelectCusmanDialog(context, data, (value) {
      setTimeCallback(value);
    }, selecteds: [
      _getFirSelected(hourAndMinute, data),
      _getSecSelected(hourAndMinute)
    ]).then((value) {
      print(value);
    });
  }

  // 第一列当前选中第几个
  _getFirSelected(String hourAndMinute, List data) {
    String hour = Utils.getHourFromhourAndMinute(hourAndMinute);
    for (int i = 0; i < data.length; i++) {
      Map map = data[i];
      String key = map.keys.first;
      if (key.contains(hour)) {
        return i;
      }
    }
    return 0;
  }

  // 第二列当前选中第几个
  _getSecSelected(String hourAndMinute) {
    String minute = Utils.getMinuteFromhourAndMinute(hourAndMinute);
    if (minute == '00') {
      return 0;
    }
    return 1;
  }
}