import 'dart:io';

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:secverify/secverify.dart';
import 'package:zhiying_comm/models/user/user_info_model.dart';
import 'package:zhiying_comm/models/user/user_info_model_notifier.dart';
import 'package:zhiying_comm/pages/login_page/account/login_account_page.dart';
import 'package:zhiying_comm/pages/login_page/invite/login_invite_page.dart';
import 'package:zhiying_comm/pages/login_page/model/login_style_model.dart';
import 'package:zhiying_comm/util/dialog/loading/loading.dart';
import 'package:zhiying_comm/util/empty_util.dart';
import 'package:zhiying_comm/util/global_config.dart';
import 'package:zhiying_comm/util/log/let_log.dart';
import 'package:zhiying_comm/util/net_util.dart';
import 'package:provider/provider.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:zhiying_comm/util/router_util.dart';
import '../../page_factory.dart';

class QuickLoginUtil {
  // sdk 版本
  String _version = "unkown";

  // 是否支持
  bool _isVerifySupport = true;

  /// 单例对象
  static QuickLoginUtil _instance;

  /// 内部构造方法，可避免外部暴露构造函数，进行实例化
  QuickLoginUtil._internal();

  /// 工厂构造方法，这里使用命名构造函数方式进行声明
  factory QuickLoginUtil.getInstance() => _getInstance();

  /// 获取单例内部方法
  static _getInstance() {
    // 只能有一个实例
    if (_instance == null) {
      _instance = QuickLoginUtil._internal();
    }
    return _instance;
  }

  /// 初始化方法
  void init() {
    //可选预先设置
    _preSettings();
    //判断手机本地环境是否支持
    isVerifySupport();
    if (_isVerifySupport) {
      //预取号
      _preVerify();
    }
  }

  /// 打开秒验登录页面的方法
  void openQuickLogin(BuildContext context, Quick model) {
    Loading.show(context);
    // 取号前设置
    Secverify.autoFinishOauthPage(false);
    //设置UI属性
    _setPortraitLayout(model);
    Secverify.isVerifySupport.then((bool value) {
      if (value) {
        _verify(context);
      } else {
        // showAlert("当前环境不支持", context);
        Logger.warn("当前环境不支持");
        Loading.dismiss();
        _openSMSLoginPage(context);
      }
    });
  }

  /// 打开验证码登录的方法
  void _openSMSLoginPage(BuildContext context) {
    /// 需要填写注册码再跳首页
    Navigator.push(context, CupertinoPageRoute(builder: (_) => LoginAccountPage(null)));
  }

  /// 打开邀请码页面
  void _openInvitePage(BuildContext context, String mobile) {
    print('跳转到邀请码页面');
    Navigator.push(context, CupertinoPageRoute(builder: (_) => LoginInvitePage({'mobile': mobile})));
  }

  /// 打开首页的方法
  void _openHomePage(BuildContext context) {
    RouterUtil.goBackHomePage(context);
    // Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (BuildContext context) => PageFactory.create('homePage', null)), (Route<dynamic> route) => false);
  }

  // 需要自己实现这部分
  void _doLogin(Map ret, BuildContext context) async {
    var opToken = ret.containsKey("opToken") ? ret["opToken"] : "";
    var token = ret.containsKey("token") ? ret["token"] : "";
    var operator = ret.containsKey("operator") ? ret["operator"] : "";
    var phoneOperator = ret.containsKey("phoneOperator") ? ret["phoneOperator"] : "";
    var md5 = ret.containsKey("md5") ? ret["md5"] : "";
    // var appKey = ret.containsKey("appkey") ? ret["appkey"] : "";

    var params = Map<String, String>();
    params["optoken"] = opToken;
    params["operator"] = operator;
    params["operator"] = phoneOperator;
    params["token"] = token;
    if(!EmptyUtil.isEmpty(md5)) params["md5"] = md5;
    // params["appkey"] = appKey;

    try {
      var result = await NetUtil.post('/api/v1/sign/mob/in', params: params, method: NetMethod.POST);
      if (NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {
        UserInfoModel model = UserInfoModel.fromJson(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
        if (!EmptyUtil.isEmpty(model)) {
          if (model.registerInviteCodeEnable == '1') {
            /// 需要填写注册码再跳首页
            _openInvitePage(context, model?.username);

            return;
          } else {
            /// 不需要填写注册码，直接登录
            Provider.of<UserInfoNotifier>(context, listen: false).setUserInfo(model);
            _openHomePage(context);
            return;
          }
        }
      }
    } catch (e, s) {
      Logger.error(e, s);
    }
    Fluttertoast.showToast(msg: '登录失败');
  }

  // 预取号
  void _preVerify() {
    Secverify.preVerify((Map ret, Map err) {
      if (err != null) {
        //失败情况下会返回错误信息，可以打印查看
//        showAlert(err.toString(),context);
        Logger.log('mob 秒验登录失败: ${err?.toString()}, sdk 版本 = ${_version}');
      } else {
        String rst = ret.toString();
        if (ret == null || ret.isEmpty) {
          rst = 'mob 秒验 预登录成功!, sdk 版本 = ${_version}, ret = ${rst?.toString()}';
          Logger.log(rst);
        }
        //        showAlert(rst,context);
      }
    });
  }

  // 预登录
  void _preSettings() {
    //提交隐私协议结果
    Secverify.submitPrivacyGrantResult(true);
    //是否自动关闭授权页面，如果不自动关闭，必须在取号回调中调用方法关闭授权页面
    Secverify.autoFinishOauthPage(false);
    //是否输出运营商控制台日志
    Secverify.setDebugMode(false);
    //设置超时时间
    Secverify.setTimeOut(5000);
    //获取当前SDK版本号
    getVersion();
  }

  // 获取SDK版本
  Future<String> getVersion() async {
    String version;
    version = await Secverify.getVersion;
    _version = version;
    return _version;
  }

  // 是否支持登录
  Future<bool> isVerifySupport() async {
    bool isVerifySupport = await Secverify.isVerifySupport;
    this._isVerifySupport = isVerifySupport;
    return this._isVerifySupport;
  }

  // 取号接口
  void _verify(BuildContext context) {
    Secverify.preVerify((ret, err) {
      if (err != null) {
        // showAlert(err.toString(),context);
        Logger.log(err.toString());
        _openSMSLoginPage(context);
        Loading.dismiss();
      } else {
        Secverify.verify((Map ret, Map err) {
          if (err != null) {
            //打印错误信息
            // showAlert(err.toString(), context);
            Logger.log(err.toString());
            _openSMSLoginPage(context);
            Loading.dismiss();
            Secverify.finshOauthPage();
            // Fluttertoast.showToast(msg: '未知错误 err = ${err?.toString()}');
          } else {
            String rst = ret.toString();
            if (ret == null || ret.isEmpty) {
              rst = '登录失败';
              // showAlert(rst, context);
              Logger.log(rst);
              Loading.dismiss();
              Fluttertoast.showToast(msg: '登录失败');
            } else if (ret.containsKey("otherLogin")) {
              ///其他登录方式
              _openSMSLoginPage(context);
              //调用此方法手动关闭授权页面
              Loading.dismiss();
              Secverify.finshOauthPage();
            } else if (ret.containsKey("opToken")) {
              //如果登录成功，将返回的信息提交给自己的服务器
              _doLogin(ret, context);
              //调用此方法手动关闭授权页面
              Loading.dismiss();
              Secverify.finshOauthPage();
            } else {
              //调用此方法手动关闭授权页面
              Loading.dismiss();
              Secverify.finshOauthPage();
            }
          }
        });
      }
    });
  }

  // 设置授权页面属性
  void _setPortraitLayout(Quick model) {
    if (Platform.isAndroid) {
      // 以下是 Android 自定义设置
      // 导航栏设置
      var customNav = {
        "navColor": "#FFFFFF", //导航栏背景颜色
        // "navText": "一键登录",   //导航栏文本内容
        "navTextColor": "#ffffff", //导航栏文本颜色
        "navHidden": false, //导航栏是否隐藏
        "navTransparent": false, //导航栏是否透明
        "navCloseImgHidden": false, //导航栏返回图片是否隐藏
        "navTextSize": 16, //导航栏文本大小
        "navTextBold": false, //导航栏文本是否加粗
        "navCloseImgPath": "close.png", //导航栏返回图片地址
        "portraitLayout": {
          "layoutWidth": 50, //导航栏图片宽度
          "layoutHeight": 50, //导航栏图片高度
          "layoutLeft": 10, //导航栏图片左间距
//          "layoutRight": 30,//导航栏图片右间距
//          "layoutTop": 10,//导航栏图片顶部间距
        }
      };

      // 授权页
      var customAuthPage = {
//        "backgroundImg":"bg.png",//授权页面背景图片地址
        "backgroundClickClose": false, //授权页面点击关闭
        "fullScreen": false, //是否全屏
        "immersiveTheme": true, // 是否沉浸式透明状态栏
        "immersiveStatusTextColorBlack": true // 是否修改状态栏意思
      };

      // 授权页Logo
      var customAuthPageLogo = {
        "logoImg": "app_icon.png", //logo地址
        "logoAlignParentRight": false, //logo是否靠页面右侧
        "logoHidden": false, // logo是否隐藏
        "portraitLayout": {
          "layoutWidth": 80, //logo宽度
          "layoutHeight": 80, //logo高度
//          "layoutLeft": 30,//logo左间距
//          "layoutRight": 30,//logo右间距
          "layoutTop": 30, //logo顶部间距
//          "layoutBottom": 30,//logo底部间距
        }
      };

      // 手机号码
      var customPhoneNumber = {
        "numberColor": model?.accountColor ?? "#333333", // 脱敏手机号颜色
        "numberSize": 22, //脱敏手机号大小
        "numberAlignParentRight": false, //脱敏手机号是否靠页面右侧
        "numberHidden": false, //脱敏手机号是否隐藏
        "numberBold": true, //脱敏手机号字体是否加粗
        "portraitLayout": {
//          "layoutLeft": 30,//脱敏手机号左间距
//          "layoutRight": 30,//脱敏手机号右间距
//           "layoutTop": 130,//脱敏手机号顶部间距
//          "layoutBottom": 30,//脱敏手机号底部间距
        }
      };

      // 切换帐号按钮
      var customSwitchNumber = {
        "switchAccColor": model?.textTipColor ?? '#FF3939', //切换登录文本颜色
        "switchAccTextSize": 13, //切换登录文字大小
        "switchAccHidden": false, //切换登录是否隐藏
        "switchAccAlignParentRight": false, //切换登录是否靠屏幕右侧
        "switchAccText": model?.textTip ?? '切换账号', //切换登录文本内容
        "switchAccTextBold": false, //切换登录文本是否加粗
        "portraitLayout": {
//          "layoutLeft": 30,//切换登录左间距
//          "layoutRight": 30,//切换登录右间距
//           "layoutTop": 170,//切换登录顶部间距
//          "layoutBottom": 30,//切换登录底部间距
        }
      };

      // 登陆按钮设置
      var customLoginBtn = {
        "loginBtnImgArr": [model?.btnSubmitBgColor ?? "#FF0000", model?.btnSubmitBgColor ?? "#FF0000", model?.btnSubmitBgColor ?? "#FF0000"], //登录按钮背景图片或者颜色
        "loginBtnText": model?.btnSubmitText ?? "立即登录", //登录按钮文本
        "loginBtnTextColor": model?.btnSubmitTextColor ?? "#FFFFFF", //登录按钮文字颜色
        "loginBtnTextSize": 15, //登录按钮文本大小
        "loginBtnAlignParentRight": false, //登录按钮是否靠屏幕右侧
        "loginBtnHidden": false, //登录按钮是否隐藏
        "loginBtnTextBold": false, //登录按钮文本是否加粗
        "portraitLayout": {
          // "layoutWidth": 200,//登录按钮宽度
          // "layoutHeight": 30,//登录按钮高度
//          "layoutLeft": 30,//登录按钮左间距
//          "layoutRight": 30,//登录按钮右间距
//           "layoutTop": 200,//登录按钮顶部间距
//          "layoutBottom": 30,//登录按钮底部间距
        }
      };

      // 隐私条款设置(切记,不可隐藏)
      var customPrivacy = {
        "agreementColor": "${model?.protocol[1]?.textColor ?? '#FF3939'}", //运营商隐私条款颜色和自定义隐私条款文本颜色
        "agreementBaseTextColor": "${model?.protocol[0]?.textColor ?? '#C0C0C0'}", //隐私条款其他文字颜色
        "agreementTextSize": 11, //隐私条款文字大小
        "agreementTextStart": "${model?.protocol[0]?.text ?? '同意'} ", //隐私条款开头文本
        "agreementTextEnd": " ", //隐私条款结束文本
        "agreementAlignParentRight": false, //隐私条款是否靠屏幕右侧
        "agreementHidden": false, //隐私条款是否隐藏
        'secPrivacyProtocolMarkArr': ['《', '》'], // 协议文本前后符号(例['<','>'])
        "agreementCmccText": "《中国移动服务协议》", //隐私条款 移动运营商显示文本
        "agreementCuccText": "《中国联通服务协议》", //隐私条款 联通运营商显示文本
        "agreementCtccText": "《中国电信服务协议》", //隐私条款 电信运营商显示文本
        "agreementTextBold": false, //隐私条款文本是否加粗
        "agreementTextWithUnderLine": false, //隐私条款是否带下划线
        "cusAgreementFirstArray": ['${model?.protocol[1]?.text ?? '《用户协议》'}', '${model?.protocol[1]?.url}', ''], //隐私条款 自定义一
        "cusAgreementSecondArray": ['${model?.protocol[3]?.text ?? '《隐私政策》'}', '${model?.protocol[3]?.url}', '${model?.protocol[2]?.text ?? '及'}'], //隐私条款 自定义二
        "agreementUncheckHintText": "请阅读并勾选隐私协议", //隐私条款 未勾选时提示的文本
        "portraitLayout": {
          "layoutLeft": 20, //隐私条款左间距
          "layoutRight": 20, //隐私条款右间距
          // "layoutTop": 250,//隐私条款顶部间距
//          "layoutBottom": 20,//隐私条款底部间距
        }
      };

      // 隐私条款复选框
      var customCheckBox = {
        // "checkboxImg": ["checked.png", "uncheck.png"], // 隐私协议checkbox背景图片
        "checkboxDefaultState": true, // 隐私协议checkbox默认状态
        "checkboxHidden": false, //隐私协议checkbox是否隐藏
        "scale": 1.2,
        "portraitLayout": {
          // "layoutWidth": 50,//隐私协议checkbox 返回图标宽度
          // "layoutHeight": 50,//隐私协议checkbox 返回图标高度
//          "layoutLeft": 20,//隐私协议checkbox左间距
//          "layoutRight": 20,//隐私协议checkbox右间距
//          "layoutTop": 10,//隐私协议checkbox顶部间距
//          "layoutBottom": 20,//隐私协议checkbox底部间距
        }
      };
      // 隐私条款具体协议内容页面设置
      var customPrivacyContentPage = {
        "agreementPageTitle": "隐私协议页", //隐私协议页面 标题
        "cusAgreementPageOneTitle": "自定义隐私协议页一", //隐私协议页面 自定义隐私协议一标题
        "cusAgreementPageTwoTitle": "自定义隐私协议页二", //隐私协议页面 自定义隐私协议二标题
        "cusAgreementPageThreeTitle": "自定义隐私协议页三", //隐私协议页面 自定义隐私协议三标题
        "agreementPageCloseImg": "close.png", //隐私协议页面 返回图标名称
        "agreementPageTitleTextSize": 16, //隐私协议页面 标题文本大小
        "agreementPageTitleTextColor": "#330F33", //隐私协议页面  标题文本颜色
        "agreementPageTitleTextBold": true, //隐私协议页面 标题文本是否加粗
        "agreementPageTitleHidden": false, //隐私协议页面 标题文本是否隐藏
        "agreementPageCloseImgHidden": false, //隐私协议页面 返回图标是否隐藏
        "portraitLayout": {
          "layoutWidth": 50, //隐私协议页面 返回图标宽度
          "layoutHeight": 50, //隐私协议页面 返回图标高度
        }
      };

      // 运营商品牌标签
      var customOperatorSlogan = {
        "sloganTextSize": 20, // Slogan文本大小
        "sloganTextColor": "#330F33", // Slogan文本颜色
        "sloganHidden": false, // Slogan是否隐藏
        "sloganAlignParentRight": false, // Slogan是否靠屏幕右侧
        "sloganTextBold": true, // Slogan文本是否加粗
        "portraitLayout": {
//          "layoutLeft": 30,//Slogan左间距
//          "layoutRight": 30,//Slogan右间距
//          "layoutTop": 30,//Slogan顶部间距
          "layoutBottom": 30, //Slogan底部间距
        }
      };

      // 弹窗设置
      var customDialog = {
        "dialogTheme": false, //弹框
        "dialogAlignBottom": false, //弹框是否靠底部
//        "dialogBackground": "bg.png",//弹框蒙版背景图片名称
        "dialogBackgroundClickClose": false, //弹框蒙版背景是否点击关闭
        "portraitLayout": {
          "layoutWidth": 250, //弹框宽度
          "layoutHeight": 400, //弹框高度
          "layoutLeft": 30, //弹框左间距
          "layoutTop": 30, //弹框顶部间距
        }
      };

      // 自定义控件设置,目前安卓只支持文本TextView和图片ImageView
      var customView = {
        "customView": [
          {
            "viewClass": "TextView", //添加的控件类型
            "viewText": "测试文本1", // 控件文本
            "viewTextColor": "#330F33", // 控件文本颜色
            "viewTextFont": 20, // 控件文本大小
            "viewTextBold": true, // 控件文本是否加粗
            "viewAlignParentRight": false, // 控件是否靠屏幕右侧
            "viewHorizontalCenter": true, //控件是否靠屏幕中间
            "portraitLayout": {
//            "layoutLeft": 30,//控件左间距
//            "layoutRight": 30,//控件右间距
//            "layoutTop": 30,//控件顶部间距
              "layoutBottom": 135, //控件底部间距
            }
          },
          {
            "viewClass": "TextView", //添加的控件类型
            "viewText": "测试文本2", // 控件文本
            "viewTextColor": "#330F33", // 控件文本颜色
            "viewTextFont": 16, // 控件文本大小
            "viewTextBold": false, // 控件文本是否加粗
            "viewAlignParentRight": false, //控件是否靠屏幕右侧
            "viewHorizontalCenter": true, //控件是否靠屏幕中间
            "portraitLayout": {
//              "layoutLeft": 30,//控件左间距
//              "layoutRight": 30,//控件右间距
//              "layoutTop": 50,//控件顶部间距
              "layoutBottom": 115, //控件底部间距
            },
          },
          {
            "viewClass": "ImageView", //添加的控件类型
            "viewImg": "logo.png", //图片的地址
            "viewAlignParentRight": false, //控件是否靠屏幕右侧
            "viewHorizontalCenter": true, //控件是否靠屏幕中间
            "portraitLayout": {
              "layoutWidth": 30, //隐私协议页面 返回图标宽度
              "layoutHeight": 30, //隐私协议页面 返回图标高度
//              "layoutLeft": 30,//控件左间距
//              "layoutRight": 30,//控件右间距
//              "layoutTop": 50,//控件顶部间距
              "layoutBottom": 75, //控件底部间距
            },
          }
        ]
      };

      var customParams = {
        // 'customNav': customNav,//导航栏设置
        'customAuthPage': customAuthPage, //授权页面设置
        // 'customAuthPageLogo': customAuthPageLogo,//logo设置
        'customPhoneNumber': customPhoneNumber, //脱敏手机号设置
        'customSwitchNumber': customSwitchNumber, //切换登录设置
        'customCheckBox': customCheckBox, //复选框设置
        'customPrivacy': customPrivacy, //隐私条款设置
        // 'customPrivacyContentPage': customPrivacyContentPage,//隐私协议页面设置
        'customLoginBtn': customLoginBtn, //登录按钮设置
        // 'customOperatorSlogan': customOperatorSlogan,//slogan设置
        // 'customDialog': customDialog,//弹框设置
        // 'customView': customView,//自定义控件设置
      };
      Secverify.setPortraitLayout(customParams);
      // Secverify.setLandscapeLayout(customParams);
    } else if (Platform.isIOS) {
      // 以下是 iOS 自定义设置
      // 自定义动画设置
      var customAnimation = {
        'secAnimateType': 1, //动画类型 0:默认 1:水平翻转 2:淡入淡出 3: Alert 4: Push 5:sheet
        // 'secShowType': 0, //展示类型 0:默认 1:Alert 2:Push 3: Sheet
        // 以下自定义动画设置只针对于Alert/Sheet展示类型
        'secAnimateBgColor': '#F7B376', //弹窗控制器的背景色
        'secLeftControlImage': 'leftImg.png', //左边按钮背景图片名称
        'secLeftControlHidden': true, //左边按钮是否显示
        'secRightControlImage': 'rightImg.png', //右边按钮背景图片名称
        'secRightControlHidden': true, //右边按钮是否显示
        'secBgViewHidden': false, //背景视图是否展示
        'secBgViewCorner': 15, //背景视图的圆角
        'secBgViewColor': '#000000', //背景视图颜色
        'secBgViewImage': 'bgImg.png', //背景视图的背景图片名称
        'secCloseType': true, //关闭按钮显示在左边还是右边 true:左边 false:右边
      };
      // 导航栏设置
      var customNav = {
        'secNavBarTintColor': '#FFFFFF', //  导航栏背景色(default is white)
        // 'secNavText': '一键验证', // 导航栏标题
        // 'secNavReturnImg': 'close.png', // 导航栏返回按钮图标
        // 'secNavBottomLineHidden': true, // 是否隐藏导航栏尾部线条(默认显示,例: true)
        // 'secNavBarHidden': false, // 导航栏隐藏(例: false)
        // 'secNavStatusBarHidden': false, // 导航栏状态栏隐藏(例: false)
        // 'secNavTranslucent': false, // 导航栏透明(例: false)
        // 'secNavBackBtnHidden': false, // 导航栏返回按钮隐藏(例: false)
        // 'secNavLeftControlHidden': false, // 隐藏导航栏左边按钮
        // 'secNavTintColor': '#FF0000', //  导航栏文字颜色
        // 'secNavBackgroundClear': false, //  导航栏背景透明(例: false)
      };
      // 授权页
      var customAuthPage = {
        // 'secBackgroundColor': '#E5E589', // 授权页背景颜色
        'secBgImg': 'bg.png', // 授权背景图片
        'secCancelBySingleClick': false, //单击页面实现取消操作(例: false)
      };
      // 授权页Logo
      var customAuthPageLogo = {
        'secLogoImg': 'app_icon.png', // Logo图片名称
        'secLogoHidden': false, // Logo是否隐藏(例: false)
        // 'secLogoCornerRadius': 10, // Logos圆角(例: 10)
        // 'secPortraitLayout': {
        //   // 针对该控件的竖屏布局(注意: 每个控件的布局字段所表示的含义都相同,下面将不再解释)
        //   'secLayoutTop': 100, // 顶部间距
        //   // 'secLayoutBottom': -40,    // 底部间距
        //   'secLayoutLeft': 20, // 左边间距
        //   // 'secLayoutRight': -20,     // 右边间距
        //   'secLayoutWidth': 80, // 控件宽度
        //   'secLayoutHeight': 80, // 控件高度
          // 'secLayoutCenterX': 0,     // 相对于父视图的CenterX的偏移量,0表示不偏移,即水平居中
          // 'secLayoutCenterY': 0,     // 相对于父视图的CenterY的偏移量,0表示不偏移,即垂直居中
        // },
      };
      // 手机号码
      var customPhoneNumber = {
        'secNumberColor': model?.accountColor ?? '#333333', // 手机号码字体颜色
        'secNumberFont': 25, // 字体大小(例: 18)
        'secNumberTextAlignment': 1, // 手机号对其方式(例: 0-Left, 1-Center, 2-Right)
        // 'secNumberBgColor': '#C2F6A3', // 手机号码背景颜色
        'secPhoneHidden': false, //手机号码是否隐藏
        // 'secPhoneBorderColor': '#FF0000', //手机号码边框颜色
        // 'secPhoneBorderWidth': 2, //手机号码边框宽度
        // 'secPhoneCorner': 5, //手机号码圆角
        'secPortraitLayout': {
          // 'secLayoutTop': 100 + 10,
          // 'secLayoutLeft': 20 + 80 + 15,
          // 'secLayoutRight': -20,
          // 'secLayoutHeight': 22, // 控件高度
        }
      };
      // 切换帐号按钮
      var customSwitchNumber = {
        'secSwitchBgColor': '#FFFFFF', // 切换账号背景颜色
        'secSwitchColor': model?.textTipColor ?? '#FF3939', // 切换账号字体颜色
        'secSwitchFont': 14, // 切换账号字体大小
        'secSwitchTextHorizontalAlignment': 0, // 切换账号对其方式(例: 0-Center, 1-Left, 2-Right)
        'secSwitchHidden': false, // 隐藏切换账号按钮, 默认为false(例: true)
        'secSwitchText': model?.textTip ?? '切换账号', // 切换账号标题
        'secPortraitLayout': {
          // 'secLayoutTop': 100 + 80 - 30,
          // 'secLayoutLeft': 20 + 80 + 15,
          // 'secLayoutRight': -20,
          // 'secLayoutHeight': 18, // 控件高度
        }
      };
      // 登陆按钮设置
      var customLoginBtn = {
        'secLoginBtnText': model?.btnSubmitText ?? '立即登录', // 登录按钮文本
        'secLoginBtnTextColor': model?.btnSubmitTextColor ?? '#FFFFFF', // 登录按钮文本颜色
        'secLoginBtnBgColor': model?.btnSubmitBgColor ?? '#FF3939', // 登录按钮背景颜色
        'secLoginBtnBorderWidth': 2.0, // 登录按钮边框宽度 (例: 2.0)
        'secLoginBtnBorderColor': '#FF0000', // 登录按钮边框颜色
        'secLoginBtnCornerRadius': 5.5, // 登录按钮圆角(例: 5.0)
        'secLoginBtnTextFont': 15, // 登录按钮文字字体大小
        'secLoginBtnBgImgArr': [
          model?.btnSubmitBgColor ?? '#FF3939',
          model?.btnSubmitBgColor ?? '#FF3939',
          model?.btnSubmitBgColor ?? '#FF3939'
        ], //['enabled.png', 'disabled.png', 'highlighted.png'], // 登录按钮背景图片数组(例:['激活状态图片','失效状态图片','高亮状态图片'], 支持颜色数组: ['#FF0000', '#00FF00', '0000FF'])
        'secLoginBtnHidden': false, // 登陆按钮是否隐藏, 不建议隐藏!!!
        'secPortraitLayout': {
          // 'secLayoutCenterY': 0,
          // 'secLayoutLeft': 20,
          // 'secLayoutRight': -20,
          // 'secLayoutHeight': 30, // 控件高度
        }
      };
      // 隐私条款设置(切记,不可隐藏)
      var customPrivacy = {
        'secPrivacyTextColor': model?.protocol[0]?.textColor ?? '#C0C0C0', // 隐私条款基本文字颜色
        'secPrivacyTextFont': 11, // 隐私条款协议文字字体大小
        'secPrivacyTextAlignment': 0, // 隐私条款对其方式(例: 0-Left, 1-Center, 2-Right)
        'secPrivacyAgreementColor': model?.protocol[1]?.textColor ?? '#FF3939', // 隐私条款协议文字颜色
        // 'secPrivacyAgreementBgColor': '#000000', // 隐私条款协议背景颜色
        // 'secPrivacyAppName': '秒验Flutter', // 隐私条款应用名称
        'secPrivacyProtocolMarkArr': ['', ''], // 协议文本前后符号(例['<','>'])
        'secPrivacyFirstTextArr': [model?.protocol[1]?.text ?? '用户协议', model?.protocol[1]?.url ?? '', model?.protocol[2]?.text ?? ' '], // 开发者隐私条款第一组协议(例:['名字','url','分割符'])
        'secPrivacySecondTextArr': [model?.protocol[3]?.text ?? '隐私政策', model?.protocol[3]?.url ?? '', '及'], // 开发者隐私条款第二组协议(例:['名字','url','分割符'])
        'secPrivacyLineSpacing': 5.0, // 隐私条款多行时行距(例: 5.0)
        // 'secPrivacyDefaultText': '开发者隐私条款', //开发者隐私条款协议默认名称(不建议修改)
        'secPrivacyUnderlineStyle': 0, //隐私协议下划线样式(例: 0-None, 1-Single, 2-Thick, 9-Double)
        'secPrivacyNormalTextFirst': model?.protocol[0]?.text ?? '同意', // 隐私条款开头(例: '登录即同意')
        'secPrivacyNormalTextEnd': ' ', // 隐私条款中间连接文字(例: '并授权')
        'secPrivacyHidden': false, // 隐私条款是否隐藏, 强烈建议不要隐藏!!!
        'isPrivacyOperatorsLast': false, // 运营商协议是否排在最后 默认为false(例: true)
        'secPortraitLayout': {
          // 'secLayoutLeft': 50,
          // 'secLayoutCenterY': 80,
          // 'secLayoutRight': -20,
          // 'secLayoutHeight': 70, // 控件高度
        }
      };
      // 隐私条款复选框
      var customCheckBox = {
        'secCheckedImg': 'checked.png', // 复选框选中时的图片
        'secUncheckedImg': 'uncheck.png', // 复选框未选中时的图片
        'secCheckDefaultState': false, // 隐私条款check框默认状态，默认为false(例: true)
        // secCheckSize: 30, // 复选框尺寸(宽高相同,例: 30)
        'secCheckHidden': false, // 隐私条款check框是否隐藏，默认为false(例: true)
        'secPortraitLayout': {
          // !!!! 注意: 这个复选框的布局是相对于隐私条款的,所以建议先把隐私条款布局好再布局这个框
          'secLayoutRight': -10,
          'secLayoutCenterY': -20,
          'secLayoutWidth': 20,
          'secLayoutHeight': 20,
        }
      };
      // 隐私条款具体协议内容页面设置
      var customPrivacyContentPage = {
        'secPrivacyWebBackBtnImage': 'close.png', // 隐私条款WEB页面返回按钮图片
        'secPrivacyWebTitle': '隐私条款内容', // 隐私条款WEB页面标题
        'secPrivacyWebNavBarStyle': 0, // 隐私条款导航style (例: 0-Default, 1-Black)
      };
      // 运营商品牌标签
      var customOperatorSlogan = {
        'secSloganTextFont': 13, //运营商品牌文字字体大小
        'secSloganTextColor': '#0099FF', //运营商品牌文字颜色
        'secSloganTextAlignment': 1, //运营商品牌文字对齐方式(例: 0-Left, 1-Center, 2-Right)
        'secSloganBgColor': '#666666', //运营商品牌背景颜色
        // 'secSloganText': '运营商品牌文字', //运营商品牌文字(不建议修改)
        'secSloganHidden': false, //运营商品牌是否隐藏
        'secSloganBorderColor': '#FFEEDD', //运营商品牌边框颜色
        'secSloganBorderWidth': 2.0, //运营商品牌边框宽度
        'secSloganCorner': 5.0, //运营商品牌边框圆角
        'secPortraitLayout': {
          'secLayoutLeft': 20,
          'secLayoutRight': -20,
          'secLayoutBottom': -64,
          'secLayoutHeight': 18, // 控件高度
        },
      };
      var customParams = {
        // 'customAnimation': customAnimation, // 自定义动画设置
        'customNav': customNav, // 导航栏设置
        // 'customAuthPage': customAuthPage,  // 授权页
        'customAuthPageLogo': customAuthPageLogo,  // 授权页Logo
        'customPhoneNumber': customPhoneNumber, // 手机号码
        'customSwitchNumber': customSwitchNumber, // 切换帐号按钮
        // 'customCheckBox': customCheckBox, // 隐私条款复选框
        'customPrivacy': customPrivacy, // 隐私条款设置(切记,不可隐藏)
        // 'customPrivacyContentPage': customPrivacyContentPage,  // 隐私条款具体协议内容页面设置
        'customLoginBtn': customLoginBtn, // 登陆按钮设置
        // 'customOperatorSlogan': customOperatorSlogan,  // 运营商品牌标签
      };
      Secverify.setPortraitLayout(customParams);
      // Secverify.setLandscapeLayout(customParams);
    }
  }
}
