input_name_phone_setting_page.dart 6.39 KB
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/GetDzSellerConfModel.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:provider/provider.dart';

import '../../provider/marketing_center_provider.dart';
import '../../provider/user_model.dart';
import '../../res/colors.dart';
import '../../utils/event_bus.dart';
import '../../utils/screen_util.dart';
import '../../utils/utils.dart';
import '../../widgets/MyDivider.dart';
import '../../widgets/round_button.dart';
import 'dart:convert';

/**
 * 姓名和电话输入的时候是否需要自动匹配
 */
class InputNamePhoneSettingPage extends StatefulWidget {
  InputNamePhoneSettingPage({Key key}) : super(key: key);

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

class _InputNamePhoneSettingPageState extends State<InputNamePhoneSettingPage> {
  bool nameSwich = true;
  bool phoneSwich = true;

  MarketingCenterProvider marketingCenterProvider;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();

    WidgetsBinding.instance.addPostFrameCallback((_) async {
      getDzSellerConf();
    });
  }

  getDzSellerConf() async {
    bool success = await marketingCenterProvider.getDzSellerConf(context);
    if (success && marketingCenterProvider.dzSellerConfModel != null) {
      if (marketingCenterProvider.dzSellerConfModel.isShowRnamePhone.length >
          0) {
        String uid = Provider.of<UserModel>(context, listen: false).user.openid;
        marketingCenterProvider.dzSellerConfModel.isShowRnamePhone
            .forEach((element) {
          List subdata = element.split('-');
          if (subdata[0] == uid) {
            //设置过
            phoneSwich = subdata[1] == '1' ? true : false;
            nameSwich = subdata[2] == '1' ? true : false;
            setState(() {});
          }
        });
      }
    }
  }

  Widget _itemSmsWidget(bool isSelect, String title,
      {GestureTapCallback onTap}) {
    return Column(
      children: [
        InkWell(
            onTap: onTap,
            child: Padding(
                padding: EdgeInsets.only(
                    left: w(16), top: w(14), bottom: w(3), right: w(12)),
                child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      Text(
                        title,
                        style: TextStyle(
                            color: MyColours.color_515151, fontSize: font(14)),
                      ),
                      Spacer(),
                      Container(
                        margin: EdgeInsets.symmetric(
                            horizontal: w(7), vertical: w(4)),
                        child: Image.asset(
                          Utils.getImgPath(isSelect ? 'swich_on' : 'swich_off'),
                          width: w(44),
                        ),
                      )
                      // RoundButton(
                      //   text: '预览',
                      //   gradientStart: MyColours.color_ffffff,
                      //   gradientEnd: MyColours.color_ffffff,
                      //   borderColor: MyColours.color_438E93,
                      //   textColor: MyColours.color_438E93,
                      //   radius: ScreenUtil().setWidth(22),
                      //   fontSize: 24,
                      //   width: w(72),
                      //   height: ScreenUtil().setWidth(44),
                      //   isBold: true,
                      //   onPressed: () {
                      //     NavigatorUtil.goMarkingPreviewPage(context);
                      //   },
                      // ),
                    ]))),
        Padding(
            padding: EdgeInsets.only(left: w(16)),
            child: MyDivider(double.infinity, w(0.5),
                color: MyColours.color_E7E7E7)),
      ],
    );
  }

  _setConfing() async {
    List<String> setting =
        marketingCenterProvider.dzSellerConfModel.isShowRnamePhone;
    String uid = Provider.of<UserModel>(context, listen: false).user.openid;

    marketingCenterProvider.dzSellerConfModel.isShowRnamePhone
        .forEach((element) {
      List subdata = element.split('-');
      if (subdata[0] == uid) {
        //设置过
        setting.remove(element); //如果有,则移除,重新设置
      }
    });
    String inputSetting =
        '${uid}-${phoneSwich ? '1' : '0'}-${nameSwich ? '1' : '0'}';

    setting.add(inputSetting);

    bool success = await marketingCenterProvider.setConfing(
        context,
        {
          'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
          'key': 'is_show_ranme_phone',
          'value': json.encode(setting)
        },
        needToast: false);
    if (success) {
      //刷新预订安排页面的配置
      bus.emit('getDzSellerConf');
      Navigator.pop(context);
    }
  }

  @override
  Widget build(BuildContext context) {
    marketingCenterProvider =
        Provider.of<MarketingCenterProvider>(context, listen: true);
    return Scaffold(
      backgroundColor: MyColours.color_ffffff,
      appBar: SystemAppBar('信息录入辅助设置'),
      body: Column(
        children: [
          Expanded(
              child: SingleChildScrollView(
            child: Column(
              children: [
                _itemSmsWidget(phoneSwich, '录入电话号码时,自动填充已有客户信息', onTap: () {
                  setState(() {
                    phoneSwich = !phoneSwich;
                  });
                }),
                _itemSmsWidget(nameSwich, '录入客户姓名时,自动填充已有电话信息', onTap: () {
                  setState(() {
                    nameSwich = !nameSwich;
                  });
                }),
              ],
            ),
          )),
          Container(
              padding: EdgeInsets.only(
                  left: w(45), top: w(12), bottom: w(25), right: w(45)),
              child: RoundButton(
                  text: '保存',
                  // width: ScreenUtil().setWidth(280 * 2),
                  height: ScreenUtil().setWidth(41 * 2),
                  radius: ScreenUtil().setWidth(10),
                  isBold: true,
                  fontSize: 32,
                  onPressed: () {
                    _setConfing();
                  }))
        ],
      ),
    );
  }
}