wine_setting_page.dart 13.5 KB
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/provider/menu_provider.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';

import '../../../provider/user_model.dart';
import '../../../route/navigator_util.dart';
import '../../../utils/screen_util.dart';
import '../../../widgets/h_empty_view.dart';

/**
 * 存酒配置
 */

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

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

class _WineSettingPageState extends State<WineSettingPage> {
  TextEditingController dayC = TextEditingController();
  FocusNode dayF = FocusNode();
  bool swich = true;

  bool swichNotice = false; //推送消息
  bool swichMsg = false; //发短信
  MenuManageProvider menuManageProvider;

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) async {
      _getDzSellerConf();
    });
  }

  _getDzSellerConf() async {
    bool success =
        await menuManageProvider.getDzSellerConf(context, showLoading: false);
    if (success) {
      swich =
          menuManageProvider.dzSellerConfModel.isStoreSms == '0' ? false : true;

      swichNotice = menuManageProvider.dzSellerConfModel.storePushMeg == '1'
          ? true
          : false;
      swichMsg = menuManageProvider.dzSellerConfModel.storePushSms == '1'
          ? true
          : false;
      dayC.text = menuManageProvider.dzSellerConfModel.storeDate ?? '';
      setState(() {});
    }
  }

  Widget _divider() {
    return Padding(
      padding: EdgeInsets.only(left: w(16)),
      child: MyDivider(
        double.infinity,
        w(1),
        color: MyColours.color_E7E7E7,
      ),
    );
  }

  ///请输入
  ///输入框
  Widget _textfield(
      BuildContext context,
      String title,
      String hintText,
      TextEditingController editingController,
      FocusNode focusNode,
      String subTitle,
      {TextInputType inputType = TextInputType.text}) {
    return Container(
      height: w(48),
      margin: EdgeInsets.only(top: w(12)),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          Container(
            // width: w(81),
            // height: w(48),
            // alignment: Alignment.center,
            child: Text(
              title,
              style: TextStyle(
                  fontSize: ScreenUtil().setSp(32),
                  color: MyColours.color_515151),
            ),
          ),
          HEmptyView(32),
          Expanded(
            child: Container(
                // height: ScreenUtil().setHeight(120),
                height: w(48),
                padding: EdgeInsets.only(top: w(4)),
                child: TextField(
                  controller: editingController,
                  textAlign: TextAlign.right,
                  // textAlignVertical: TextAlignVertical.bottom,
                  maxLines: 1,
                  // inputFormatters: [],

                  // //光标颜色
                  // cursorColor:
                  //     widget.isSelect ? Colors.white : MyColours.color_199095,
                  //输入文本的样式
                  style: TextStyle(
                      fontSize: ScreenUtil().setSp(32),
                      color: MyColours.color_515151),
                  focusNode: focusNode,
                  decoration: InputDecoration(
                    border: OutlineInputBorder(borderSide: BorderSide.none),
                    hintText: hintText,
                    hintStyle: TextStyle(
                      color: hintText == '请输入'
                          ? MyColours.color_999999
                          : MyColours.color_515151,
                      fontSize: ScreenUtil().setSp(32),
                    ),
                    contentPadding: EdgeInsets.zero,
                  ),
                  onChanged: (value) {},
                  onEditingComplete: () {
                    FocusScope.of(context)
                        .requestFocus(FocusNode()); //点击空白处隐藏键盘
                  },
                  keyboardType: inputType,
                )),
          ),
          Container(
            padding: EdgeInsets.only(left: w(4)),
            child: Text(
              subTitle,
              style: TextStyle(
                  color: MyColours.color_515151,
                  fontSize: ScreenUtil().setSp(32)),
            ),
          ),
        ],
      ),
    );
  }

  ///获取经理数据
  _setData() async {
    Map<String, dynamic> data = {
      "is_store_sms": swich ? '1' : '0',
      "store_date": dayC.text.trim(),
      "store_push_meg": swichNotice ? '1' : '0',
      "store_push_sms": swichMsg ? '1' : '0'
    };
    Map<String, String> params = {
      'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
      'data': jsonEncode(data),
    };

    bool success =
        await menuManageProvider.setConfings(context, params, needToast: true);
    // if (success) {
    //   return true;
    // } else {
    //   return false;
    // }
  }

  ///
  // Future<bool> _setStoreDate() async {
  //   Map<String, String> params = {
  //     'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
  //     'key': 'store_date',
  //     'value': dayC.text.trim()
  //   };

  //   bool success =
  //       await menuManageProvider.setConfing(context, params, needToast: false);
  //   if (success) {
  //     return true;
  //   } else {
  //     return false;
  //   }
  // }

  // _setData() async {
  //   await Future.wait<bool>([_setIsStoreSms(), _setStoreDate()])
  //       .then((results) async {
  //     print(results[0]);
  //     if (results[0] && results[1]) {
  //       //都成功
  //       Utils.showToast('设置成功');
  //     } else {
  //       if (results[0]) {
  //         //取酒是否需要短信验证码成功
  //         Utils.showToast('取酒需要提供短信验证码设置成功');
  //       } else {
  //         //取酒是否需要短信验证码成功失败
  //         Utils.showToast('取酒需要提供短信验证码设置失败');
  //       }
  //       if (results[1]) {
  //         //超期提醒天数成功
  //         Utils.showToast('超期提醒天数设置成功');
  //       } else {
  //         //超期提醒天数失败
  //         Utils.showToast('超期提醒天数设置失败');
  //       }
  //     }
  //   }).catchError((e) {
  //     print(e);
  //   });
  // }

  @override
  Widget build(BuildContext context) {
    menuManageProvider =
        Provider.of<MenuManageProvider>(context, listen: false);
    return KeyboardDismissOnTap(
        child: Scaffold(
      backgroundColor: MyColours.color_ffffff,
      appBar: SystemAppBar(
        '存酒配置',
      ),
      body: Column(
        children: [
          Expanded(
            child: SingleChildScrollView(
                child: Column(
              children: [
                InkWell(
                    onTap: () {
                      setState(() {
                        swich = !swich;
                      });
                    },
                    child: Container(
                      height: w(48),
                      padding: EdgeInsets.symmetric(horizontal: w(16)),
                      child: Row(
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: [
                          Text(
                            '取酒需要提供短信验证码',
                            style: TextStyle(
                                fontSize: font(16),
                                color: MyColours.color_515151),
                          ),
                          Image.asset(
                            Utils.getImgPath(swich ? 'swich_on' : 'swich_off'),
                            width: w(44),
                          )
                        ],
                      ),
                    )),
                _divider(),
                Container(
                    height: w(48),
                    padding: EdgeInsets.symmetric(horizontal: w(16)),
                    child: _textfield(context, '存酒超期提醒', '请输入', dayC, dayF, '天',
                        inputType:
                            TextInputType.numberWithOptions(decimal: true))),
                _divider(),
                VEmptyView(20),
                InkWell(
                    onTap: () {
                      setState(() {
                        swichNotice = !swichNotice;
                      });
                    },
                    child: Container(
                      height: w(48),
                      padding: EdgeInsets.only(left: w(30), right: w(26)),
                      child: Row(
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: [
                          Text(
                            '存酒超期时发送超期消息',
                            style: TextStyle(
                                fontSize: font(16),
                                color: MyColours.color_515151),
                          ),
                          Image.asset(
                            Utils.getImgPath(
                                swichNotice ? 'swich_on' : 'swich_off'),
                            width: w(44),
                          )
                        ],
                      ),
                    )),
                Padding(
                  padding: EdgeInsets.only(left: w(15), right: w(10)),
                  child: _divider(),
                ),
                VEmptyView(20),
                InkWell(
                    onTap: () {
                      setState(() {
                        swichMsg = !swichMsg;
                      });
                    },
                    child: Container(
                      height: w(48),
                      padding: EdgeInsets.only(left: w(30), right: w(26)),
                      child: Row(
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: [
                          Text(
                            '存酒超期时自动给客户发送短信',
                            style: TextStyle(
                                fontSize: font(16),
                                color: MyColours.color_515151),
                          ),
                          Image.asset(
                            Utils.getImgPath(
                                swichMsg ? 'swich_on' : 'swich_off'),
                            width: w(44),
                          )
                        ],
                      ),
                    )),
                Padding(
                  padding: EdgeInsets.only(left: w(15), right: w(10)),
                  child: _divider(),
                ),
                VEmptyView(20),
                InkWell(
                    onTap: () {
                      NavigatorUtil.goWineSettingMsgPage(context);
                    },
                    child: Container(
                        height: w(48),
                        padding: EdgeInsets.only(left: w(30), right: w(26)),
                        child: Row(
                            mainAxisAlignment: MainAxisAlignment.spaceBetween,
                            children: [
                              Text(
                                '存酒超期通知短信设置',
                                style: TextStyle(
                                    color: MyColours.color_515151,
                                    fontSize: font(16)),
                              ),
                              Container(
                                padding: EdgeInsets.symmetric(
                                    horizontal: w(11), vertical: w(4)),
                                child: Image.asset(
                                  "assets/arrow_right_new.png",
                                  width: w(9),
                                  height: w(16),
                                ),
                              )
                            ]))),
                Padding(
                  padding: EdgeInsets.only(left: w(15), right: w(10)),
                  child: _divider(),
                ),
              ],
            )),
          ),
          RoundButton(
            text: '保存',
            height: w(40),
            margin: EdgeInsets.only(
                left: w(45), right: w(45), top: w(13), bottom: w(26)),
            bgColor: MyColours.color_438E93,
            textColor: MyColours.color_F9F9F9,
            isBold: true,
            fontSize: 32,
            radius: r(8),
            onPressed: () async {
              if (dayC.text.trim().length == 0) {
                Utils.showToast('请输入存酒超期提醒天数!');
                return;
              }
              if (!Utils.isInteger(dayC.text.trim())) {
                Utils.showToast('请输入数字!');
                return;
              }

              //接口保存
              //
              //调用接口

              _setData();
            },
          )
        ],
      ),
    ));
  }
}