receive_orders_time_set.dart 6.73 KB

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_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();
  late 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
  void dispose() {
    EventBus().emit('changeStatusColor');
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    bookSetTimeModel = Provider.of<BookSetTimeModel>(context, listen: true);
    return Scaffold(
      backgroundColor: MyColours.color_f5f5f5,
      appBar: SystemAppBar(
        '接单时间',
      ),
      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();
                    });
                  }
                },
              ))
        ],
      )),
    );
  }
}