receive_orders_time_set.dart 7.42 KB
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/models/get_seller_info_model.dart';
import 'package:one_key/models/settime.dart';
import 'package:one_key/pages/my/book_time_set.dart';
import 'package:one_key/provider/book_set_time_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/set_time_widget.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';

class ReceiveOrdersTimeSetPage extends StatefulWidget {
  ReceiveOrdersTimeSetPage({Key key}) : super(key: key);

  @override
  _ReceiveOrdersTimeSetPageState createState() =>
      _ReceiveOrdersTimeSetPageState();
}

class _ReceiveOrdersTimeSetPageState extends State<ReceiveOrdersTimeSetPage> {
  SetTime receiveOrdersTime = SetTime();
  BookSetTimeModel bookSetTimeModel;

  @override
  void initState() {
    super.initState();
    receiveOrdersTime.start = '08:00';
    receiveOrdersTime.end = '23:00';
    WidgetsBinding.instance.addPostFrameCallback((_) {
      _getReceiveOrdersTime();
    });
  }

  ///获取接单时间接口
  _getReceiveOrdersTime() async {
    GetSellerInfoSunModel model = await bookSetTimeModel.getSellerById(context);
    setState(() {
      receiveOrdersTime.start = model.data.recStime.padLeft(5, '0');
      receiveOrdersTime.end = model.data.recEtime.padLeft(5, '0');
    });
  }

  ///从时间选择器中获取分钟数字符串 00 or 30
  String _getMinuteStrFromPicker(List value) {
    if (value[1] == 0) {
      return '00';
    } else {
      return '30';
    }
  }

  @override
  Widget build(BuildContext context) {
    bookSetTimeModel = Provider.of<BookSetTimeModel>(context, listen: true);
    return WillPopScope(
        child: Scaffold(
          backgroundColor: MyColours.color_f5f5f5,
          appBar: SystemAppBar(
            '接单时间',
            onTap: () {
              EventBus().emit('changeStatusColor');
              Navigator.of(context).pop();
            },
          ),
          body: SafeArea(
              child: Column(
            children: [
              Expanded(
                  child: SingleChildScrollView(
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Container(
                      height: ScreenUtil().setWidth(126 * 2),
                      color: MyColours.color_ffffff,
                      child: Column(
                        children: [
                          timeWidget('开始时间', receiveOrdersTime.start,
                              highted: true, onTap: () {
                            SetTimeWidget().showTimeSelector(
                                context,
                                SetTimeWidget.dateData,
                                receiveOrdersTime.start, (value) {
                              if (value != null) {
                                String tempMinute =
                                    _getMinuteStrFromPicker(value);

                                String time = Utils.getTimeString(
                                    Utils.getHourFromTitle(SetTimeWidget
                                        .dateData[value[0]].keys.first),
                                    tempMinute);
                                setState(() {
                                  receiveOrdersTime.start = time;
                                });
                              }
                            });
                          }),
                          Padding(
                              padding: EdgeInsets.symmetric(
                                  horizontal: ScreenUtil().setWidth(40)),
                              child: MyDivider(
                                double.infinity,
                                ScreenUtil().setWidth(2),
                                color: MyColours.color_f3f3f3,
                              )),
                          timeWidget('结束时间', receiveOrdersTime.end,
                              highted: true, onTap: () {
                            SetTimeWidget().showTimeSelector(
                                context,
                                SetTimeWidget.dateData,
                                receiveOrdersTime.end, (value) {
                              if (value != null) {
                                String tempMinute =
                                    _getMinuteStrFromPicker(value);
                                String time = Utils.getTimeString(
                                    Utils.getHourFromTitle(SetTimeWidget
                                        .dateData[value[0]].keys.first),
                                    tempMinute);
                                setState(() {
                                  receiveOrdersTime.end = time;
                                });
                              }
                            });
                          }),
                        ],
                      ),
                    ),
                    VEmptyView(60),
                    Padding(
                      padding: EdgeInsets.symmetric(
                          horizontal: ScreenUtil().setWidth(40)),
                      child: textWidget('温馨提示:'),
                    ),
                    VEmptyView(10),
                    Padding(
                        padding: EdgeInsets.symmetric(
                            horizontal: ScreenUtil().setWidth(40)),
                        child: textWidget('修改接单时间后,必须重启话机才能正常生效。'))
                  ],
                ),
              )),
              Padding(
                  padding: EdgeInsets.fromLTRB(
                      ScreenUtil().setWidth(40),
                      ScreenUtil().setWidth(0),
                      ScreenUtil().setWidth(40),
                      ScreenUtil().setWidth(60)),
                  child: CommonButton(
                    width: double.infinity,
                    height: 84,
                    fontSize: 34,
                    content: '保存',
                    state: 2,
                    onPress: () async {
                      bool isSuccess = await bookSetTimeModel.setReOrderTime(
                          context,
                          receiveOrdersTime.start,
                          receiveOrdersTime.end);
                      if (isSuccess) {
                        ///弹出提示框
                        ///
                        DialogUtil.openAlertDialog(context, '接单时间已修改',
                            '如果您在使用一键订电话机,需要将电话机重新启动后,电话机上才能生效。', '知道了', 372,
                            fontSize: 30, onTap: () {
                          EventBus().emit('changeStatusColor');
                          Navigator.of(context).pop();
                          Navigator.of(context).pop();
                        });
                      }
                    },
                  ))
            ],
          )),
        ),
        onWillPop: () async {
          EventBus().emit('changeStatusColor');
          return true;
        });
  }
}