<template>
  <view class="login">
    <view class="auth-pop" v-if="isMpWeixin && !isAuthorizationed">
      <view class="auth-box">
        <image
          src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/shield.png"
        ></image>
        <label>{{ __("新用户注册") }}</label>
        <text>{{ __("使用微信头像、昵称授权注册") }}</text>

        <view class="btn-row" style="margin-top: 40rpx; padding: 10rpx 20rpx">
          <checkbox-group @change="onChangeProtocol">
            <label>
              <checkbox :checked="protocol_checked" value="1" />
            </label>
            <label @tap="showProtocol('reg_protocols_description')">
              {{ __("同意") }}{{ __("《用户协议》") }}
            </label>
          </checkbox-group>
        </view>

        <button
          open-type="getUserInfo"
          type="primary"
          @getuserinfo="bindGetUserInfo"
        >
          {{ __("一键注册") }}
        </button>
      </view>
    </view>
    <view class="content" v-else>
      <!-- 头部logo -->
      <view class="header">
        <image :src="logo"></image>
      </view>
      <!-- 主体表单 -->
      <view class="main">
        <wInput
          v-model="account"
          type="text"
          :placeholder="__('请输入账号')"
        ></wInput>
        <wInput
          v-model="password"
          type="password"
          :placeholder="__('请输入密码')"
        ></wInput>
      </view>
      <wButton
        :text="__('登 录')"
        :rotate="isRotate"
        @click.native="bindLogin()"
        class="wbutton"
      ></wButton>

      <!-- 其他登录 -->
      <!-- #ifdef H5 -->
      <view class="other_login cuIcon">
        <view
          class="login_icon"
          v-for="provider in providerList"
          :key="provider.value"
        >
          <view class="cuIcon-item" @tap="login_weixin"
            ><image
              :src="provider.image"
              @tap="plus_oauth(provider.value)"
            ></image
          ></view>
        </view>
      </view>
      <!-- #endif -->

      <!-- #ifndef H5 -->
      <view class="other_login cuIcon">
        <view
          class="login_icon"
          v-for="provider in providerList"
          :key="provider.value"
        >
          <view class="cuIcon-item" @tap="login_weixin"
            ><image :src="provider.image" @tap="oauth(provider.value)"></image
          ></view>
        </view>
      </view>
      <!-- #endif -->

      <!-- 底部信息 -->
      <view class="footer">
        <navigator url="forget" open-type="navigate">{{
          __("找回密码")
        }}</navigator>
        <text>|</text>
        <navigator url="register" open-type="navigate">{{
          __("注册账号")
        }}</navigator>
      </view>
    </view>
  </view>
</template>



<script>
import wInput from "../../components/watch-login/watch-input.vue"; //input
import wButton from "../../components/watch-login/watch-button.vue"; //button

// #ifdef H5
import $cookies from "../../helpers/vue-cookies";
// #endif

/*
//获取当前路由
let curPage = getCurPage();
//在微信小程序或是app中，通过curPage.options；如果是H5，则需要curPage.$route.query（H5中的curPage.options为undefined，所以刚好就不需要条件编译了）
let curParam = curPage.options || curPage.$route.query;

export function getCurPage(){
    let pages = getCurrentPages();
    let curPage = pages[pages.length-1];
    return curPage
}
*/

import { mapState, mapMutations } from "vuex";

export default {
  data() {
    return {
      providerList: [],
      hasProvider: false,
      logo: "",
      account: "",
      password: "",
      positionTop: 0,
      protocol_checked: true,

      isAuthorizationed: false,
      isMpWeixin: false,
      wxwork: 0, //是否企业微信

      plusOauthWeixin: {},

      isRotate: false, //是否加载旋转
    };
  },
  components: {
    wInput,
    wButton,
  },
  computed: mapState([
    "Config",
    "StateCode",
    "notice",
    "plantformInfo",
    "shopInfo",
    "userInfo",
    "hasLogin",
    "forcedLoginState",
  ]),
  onLoad(options) {
    uni.setNavigationBarTitle({
      title: this.__("登录"),
    });

    this.setData({
      options: options,
    });

    setTimeout(() => {
      this.getPlantformInfo((plantformInfo) => {
        this.logo = plantformInfo.logo;
      });
    }, 200);

    let that = this;

    // #ifdef MP-WEIXIN
    this.isMpWeixin = true;

    //判断是否企业微信
    let e = that.$.getSystemInfoSync();

    if (e.environment) {
      this.wxwork = e.environment == "wxwork" ? 1 : 0;
    }

    this.wxwork = e.environment == "wxwork" ? 1 : 0;

    let login_func = that.$.login;

    if (this.wxwork) {
      login_func = wx.qy.login;
      wx.getSetting({
        success: function (res) {
          if (res.authSetting["scope.userInfo"]) {
            that.setData({ isAuthorizationed: false });

            login_func({
              success: function (qy_datainfo) {
                that.$.login({
                  success: function (datainfo) {
                    //请求服务器
                    that.$.request({
                      url: that.Config.URL.wx.checkAppLogin,
                      data: {
                        qy_code: qy_datainfo.code,
                        code: datainfo.code,
                        wxwork: that.wxwork,
                        source_store_id:
                          that.$.getStorageSync("source_store_id"),
                        source_user_id: that.$.getStorageSync("source_user_id"),
                      },
                      success: function (data, status, msg, code) {
                        if (status == 200) {
                          that.setData({ isAuthorizationed: true });

                          var id = that.$.setStorageSync("uid", data.user_id);
                          var key = that.$.setStorageSync("ukey", data.key);

                          that.toMain(data);
                        } else {
                          that.setData({ isAuthorizationed: false });
                        }
                      },
                      fail: function () {
                        // fail
                        // that.$.hideToast();
                      },
                      complete: function () {
                        // complete
                      },
                    });
                  },
                });
              },
            });
          } else {
            login_func({
              success: function (qy_datainfo) {
                that.$.login({
                  success: function (datainfo) {
                    //请求服务器
                    that.$.request({
                      url: that.Config.URL.wx.checkAppLogin,
                      data: {
                        qy_code: qy_datainfo.code,
                        code: datainfo.code,
                        wxwork: that.wxwork,
                        source_store_id:
                          that.$.getStorageSync("source_store_id"),
                        source_user_id: that.$.getStorageSync("source_user_id"),
                      },
                      success: function (data, status, msg, code) {
                        if (status == 200) {
                          that.setData({ isAuthorizationed: true });

                          var id = that.$.setStorageSync("uid", data.user_id);
                          var key = that.$.setStorageSync("ukey", data.key);

                          that.toMain(data);
                        } else {
                          that.setData({ isAuthorizationed: false });
                        }
                      },
                      fail: function () {
                        // fail
                        // that.$.hideToast();
                      },
                      complete: function () {
                        // complete
                      },
                    });
                  },
                });
              },
            });
          }
        },
      });
    } else {
      wx.getSetting({
        success: function (res) {
          if (res.authSetting["scope.userInfo"]) {
            that.setData({ isAuthorizationed: false });

            //console.log('是否授权！是');
            //console.info(res);

            login_func({
              success: function (datainfo) {
                //console.log('是否注册！否');
                //console.info(datainfo);
                //请求服务器
                that.$.request({
                  url: that.Config.URL.wx.checkAppLogin,
                  data: {
                    code: datainfo.code,
                    wxwork: that.wxwork,
                    source_store_id: that.$.getStorageSync("source_store_id"),
                    source_user_id: that.$.getStorageSync("source_user_id"),
                  },
                  success: function (data, status, msg, code) {
                    if (status == 200) {
                      that.setData({ isAuthorizationed: true });

                      var id = that.$.setStorageSync("uid", data.user_id);
                      var key = that.$.setStorageSync("ukey", data.key);

                      that.toMain(data);
                    } else {
                      that.setData({ isAuthorizationed: false });
                    }
                  },
                  fail: function () {
                    // fail
                    // that.$.hideToast();
                  },
                  complete: function () {
                    // complete
                  },
                });
              },
            });
          } else {
            login_func({
              success: function (t) {
                //console.log('是否注册！否');
                //console.info(t);
                //请求服务器
                that.$.request({
                  url: that.Config.URL.wx.checkAppLogin,
                  data: {
                    code: t.code,
                    wxwork: that.wxwork,
                    source_store_id: that.$.getStorageSync("source_store_id"),
                    source_user_id: that.$.getStorageSync("source_user_id"),
                  },
                  success: function (data, status, msg, code) {
                    if (status == 200) {
                      that.setData({ isAuthorizationed: true });

                      var id = that.$.setStorageSync("uid", data.user_id);
                      var key = that.$.setStorageSync("ukey", data.key);

                      that.toMain(data);
                    } else {
                      that.setData({ isAuthorizationed: false });
                    }
                  },
                  fail: function () {
                    // fail
                    // that.$.hideToast();
                  },
                  complete: function () {
                    // complete
                  },
                });
              },
            });
          }
        },
      });
    }
    // #endif

    // #ifdef H5
    if (that.$.isWeixin()) {
      let uid = $cookies.get("uid");
      let ukey = $cookies.get("ukey");

      if (uid && ukey) {
      } else {
        uid = that.$.getStorageSync("uid");
        ukey = that.$.getStorageSync("ukey");
      }

      //判断Cookie是否登录
      if (uid && ukey) {
        that.$.request({
          url: this.Config.URL.check_islogin,
          data: { perm_id: uid, perm_key: ukey },
          success: function (data, status, msg, code) {
            if (200 == status) {
              var id = that.$.setStorageSync("uid", uid);
              var key = that.$.setStorageSync("ukey", ukey);

              data["as"] = $cookies.get("as");
              that.toMain(data);

              //返回来源页面
            } else {
              that.logout();
            }
          },
          fail: function (err, status) {
            that.logout();
          },
        });
      } else {
        if (
          getCurrentPages()[getCurrentPages().length - 1].route ==
            "pages/login/login" ||
          getCurrentPages()[getCurrentPages().length - 1].route ==
            "/pages/login/login"
        ) {
          //记录来源页面
          if (getCurrentPages().length > 1) {
            var prePage = getCurrentPages()[getCurrentPages().length - 2];
            if (prePage) {
              that.$.setStorageSync("pre_route", prePage.route);

              if (prePage.options) {
                that.$.setStorageSync("pre_options", prePage.options);
              }
            }
          } else {
          }

          //是否企业微信
          if (that.$.isQyWeixin()) {
            window.location.href =
              that.Config.URL.wx.mplogin +
              "&wxwork=1" +
              "&callback=" +
              encodeURIComponent(
                that.Config.CONFIG.base_url + "/h5/pages/login/login"
              ); //暂时注释
          } else {
            window.location.href =
              that.Config.URL.wx.mplogin +
              "&callback=" +
              encodeURIComponent(
                that.Config.CONFIG.base_url + "/h5/pages/login/login"
              ); //暂时注释
          }
        } else {
          var prePage = getCurrentPages()[getCurrentPages().length - 1];
          if (prePage) {
            that.$.setStorageSync("pre_route", prePage.route);

            if (prePage.options) {
              that.$.setStorageSync("pre_options", prePage.options);
            }
          }
          //记录来源页面

          //是否企业微信
          if (that.$.isQyWeixin()) {
            window.location.href =
              that.Config.URL.wx.mplogin +
              "&wxwork=1" +
              "&callback=" +
              encodeURIComponent(
                that.Config.CONFIG.base_url + "/h5/pages/login/login"
              ); //暂时注释
          } else {
            window.location.href =
              that.Config.URL.wx.mplogin +
              "&callback=" +
              encodeURIComponent(
                that.Config.CONFIG.base_url + "/h5/pages/login/login"
              ); //暂时注释
          }
        }
      }
    } else {
      //H5
      let uid = $cookies.get("uid");
      let ukey = $cookies.get("ukey");

      if (uid && ukey) {
      } else {
        uid = that.$.getStorageSync("uid");
        ukey = that.$.getStorageSync("ukey");
      }

      //判断Cookie是否登录
      if (uid && ukey) {
        that.$.request({
          url: this.Config.URL.check_islogin,
          data: { perm_id: uid, perm_key: ukey },
          success: function (data, status, msg, code) {
            if (200 == status) {
              var id = that.$.setStorageSync("uid", uid);
              var key = that.$.setStorageSync("ukey", ukey);

              that.toMain(data);

              //返回来源页面
            } else {
              that.logout();
            }
          },
          fail: function (err, status) {
            that.logout();
          },
        });
      }
    }
    // #endif

    this.initPosition();
    this.initProvider();
  },
  //仅 5+App 平台上支持此函数。
  onBackPress() {},
  methods: {
    ...mapMutations([
      "login",
      "logout",
      "getPlantformInfo",
      "forceUserInfo",
      "getUserInfo",
    ]),
    initProvider() {
      let that = this;
      //const filters = ['weixin', 'qq', 'sinaweibo'];
      const filters = ["weixin"];
      //const filters = [];

      // #ifndef H5
      that.$.getProvider({
        service: "oauth",
        success: (res) => {
          if (res.provider && res.provider.length) {
            for (let i = 0; i < res.provider.length; i++) {
              if (~filters.indexOf(res.provider[i])) {
                this.providerList.push({
                  value: res.provider[i],
                  image: "/static/images/login/" + res.provider[i] + ".png",
                });
              }
            }
            this.hasProvider = true;
          }
        },
        fail: (err) => {
          console.error("获取服务供应商失败：" + JSON.stringify(err));
        },
      });
      // #endif

      // #ifdef H5
      //判断是否为APP调用
      if (that.$.ifUniApp()) {
        //1. 初始化加载分享模块
        plus.oauth.getServices(
          function (res) {
            //console.log(JSON.stringify(res));

            if (res && res.length) {
              for (let i = 0; i < res.length; i++) {
                if (~filters.indexOf(res[i]["id"])) {
                  that.providerList.push({
                    value: res[i]["id"],
                    image: "/static/images/login/" + res[i]["id"] + ".png",
                  });
                }

                if ("weixin" == res[i]["id"]) {
                  that.plusOauthWeixin = res[i];
                }
              }

              that.hasProvider = true;
            }
          },

          function (e) {
            alert("获取分享服务列表失败：" + e.message);
          }
        );

        //setTimeout(share, 5000)
      }
      // #endif
    },
    initPosition() {
      let that = this;
      /**
       * 使用 absolute 定位，并且设置 bottom 值进行定位。软键盘弹出时，底部会因为窗口变化而被顶上来。
       * 反向使用 top 进行定位，可以避免此问题。
       */
      this.positionTop = that.$.getSystemInfoSync().windowHeight - 100;
    },
    bindLogin() {
      var that = this;
      //登录
      if (this.isRotate) {
        //判断是否加载中，避免重复点击请求
        return false;
      }

      /**
       * 客户端对账号信息进行一些必要的校验。
       * 实际开发中，根据业务需要进行处理，这里仅做示例。
       */
      if (this.account.length < 4) {
        that.$.showToast({
          icon: "none",
          title: that.__("账号最短为 4 个字符"),
        });
        return;
      }

      if (this.password.length < 6) {
        that.$.showToast({
          icon: "none",
          title: that.__("密码最短为 6 个字符"),
        });
        return;
      }

      that.isRotate = true;
      setTimeout(function () {
        that.isRotate = false;
      }, 2000);

      /**
       * 下面简单模拟下服务端的处理
       * 检测用户账号密码是否在已注册的用户列表中
       * 实际开发中，使用 that.$.request 将账号信息发送至服务端，客户端在回调函数中获取结果信息。
       */
      //SYS.URL.login,
      const params = {
        user_account: this.account,
        user_password: this.password,
      };

      that.$.request({
        url: this.Config.URL.login,
        data: params,
        success: function (data, status, msg, code) {
          //console.info(JSON.stringify(data));

          if (200 == status) {
            var id = that.$.setStorageSync("uid", data.user_id);
            var key = that.$.setStorageSync("ukey", data.key);

            // #ifdef H5
            $cookies.set("uid", data.user_id);
            $cookies.set("ukey", data.key);
            // #endif

            data["user_password"] = params.user_password;

            that.toMain(data);
          } else {
            that.$.showToast({
              icon: "none",
              title: that.__("用户账号或密码不正确"),
            });
          }
        },
        fail: function (err, status) {
          that.$.showToast({
            icon: "none",
            title: that.__("登录有误，请重试"),
          });
        },
      });
    },
    oauth(value) {
      let that = this;
      that.$.login({
        provider: value,
        success: (res) => {
          that.$.getUserInfo({
            provider: value,
            success: (infoRes) => {
              if (infoRes.errMsg == "getUserInfo:ok") {
                //console.info(JSON.stringify(infoRes));
                //console.info(value);

                /**
                 * 实际开发中，获取用户信息后，需要将信息上报至服务端。
                 * 服务端可以用 userInfo.openId 作为用户的唯一标识新增或绑定用户信息。
                 */
                //this.toMain(infoRes.userInfo.nickName);
                var t = infoRes.userInfo;
                t.bind_name = value;

                //{"openId":"o6tGM1biEBK05U1f7-DjAhO8J864","nickName":"黄新泽","gender":1,"city":"闵行","province":"上海","country":"中国","avatarUrl":"http://thirdwx.qlogo.cn/mmopen/vi_32/PiajxSqBRaEJBP1wRhHlbGtp9FGR1go2f3hc21LRcruDqr5hncC4uSwCVYDuyReKSyic00E33sXOXeCWNhkVEHrQ/132","unionId":"ozDRT1vHoz4_NDw7xZ4vsRDasdYg"}

                if (value == "weixin") {
                  let rawData = JSON.parse(infoRes.rawData);

                  var encryptedData = encodeURIComponent(rawData.encryptedData); //一定要把加密串转成URI编码
                  var iv = encodeURIComponent(rawData.iv);
                  var code = t.openId;

                  t.code = code;
                  t.encryptedData = encryptedData;
                  t.iv = iv;
                }

                t.source_store_id = that.$.getStorageSync("source_store_id");
                t.source_user_id = that.$.getStorageSync("source_user_id");

                //请求服务器
                that.$.request({
                  url: that.Config.URL.do_app_login,
                  data: t,
                  success: function (data, status, msg, code) {
                    if (status != 200) {
                      // 登录错误
                      that.$.showModal({
                        title: "提示",
                        content: "无法登录，请重试！",
                        showCancel: false,
                      });

                      that.$.navigateBack();
                      return;
                    }

                    var id = that.$.setStorageSync("uid", data.user_id);
                    var key = that.$.setStorageSync("ukey", data.key);

                    that.toMain(data);
                  },
                  fail: function () {
                    // fail
                    // that.$.hideToast();
                  },
                  complete: function () {
                    // complete
                  },
                });
              } else {
              }
            },
          });
        },
        fail: (err) => {
          console.error("授权登录失败：" + JSON.stringify(err));
        },
      });
    },

    /* wap app 登录*/
    plus_oauth(value) {
      let that = this;

      // 登录操作
      function authLogin() {
        //console.info('plusOauthWeixin')
        //console.info(that.plusOauthWeixin)
        var s = that.plusOauthWeixin;

        if (!s.authResult) {
          s.login(
            function (e) {
              authUserInfo();
            },
            function (e) {
              alert("登录认证失败！");
            }
          );
        } else {
          //alert( "已经登录认证！" );

          authUserInfo();
        }
      }

      // 获取登录用户信息操作
      function authUserInfo() {
        var s = that.plusOauthWeixin;

        if (!s.authResult) {
          alert("未登录授权！");
        } else {
          s.getUserInfo(
            function (res) {
              ////console.info( "获取用户信息成功："+JSON.stringify(res) );
              //alert( "获取用户信息成功："+JSON.stringify(s.userInfo) );

              var value = "weixin";
              var infoRes = res.target;

              if (true) {
                /**
                 * 实际开发中，获取用户信息后，需要将信息上报至服务端。
                 * 服务端可以用 userInfo.openId 作为用户的唯一标识新增或绑定用户信息。
                 */
                //this.toMain(infoRes.userInfo.nickName);
                var t = infoRes.userInfo;
                t.bind_name = value;

                //{"openId":"o6tGM1biEBK05U1f7-DjAhO8J864","nickName":"黄新泽","gender":1,"city":"闵行","province":"上海","country":"中国","avatarUrl":"http://thirdwx.qlogo.cn/mmopen/vi_32/PiajxSqBRaEJBP1wRhHlbGtp9FGR1go2f3hc21LRcruDqr5hncC4uSwCVYDuyReKSyic00E33sXOXeCWNhkVEHrQ/132","unionId":"ozDRT1vHoz4_NDw7xZ4vsRDasdYg"}

                if (value == "weixin") {
                  /*
						        let rawData = JSON.parse(infoRes.rawData);

						        var encryptedData = encodeURIComponent(rawData.encryptedData); //一定要把加密串转成URI编码
						        var iv = encodeURIComponent(rawData.iv);
						        var code = t.openId;

						        t.encryptedData = encryptedData;
						        t.iv = iv;
								*/
                  t.code = t.openid;
                }

                t.source_store_id = that.$.getStorageSync("source_store_id");
                t.source_user_id = that.$.getStorageSync("source_user_id");

                //请求服务器
                that.$.request({
                  url: that.Config.URL.do_app_login,
                  data: t,
                  success: function (data, status, msg, code) {
                    if (status != 200) {
                      // 登录错误
                      that.$.showModal({
                        title: "提示",
                        content: "无法登录，请重试！",
                        showCancel: false,
                      });

                      that.$.navigateBack();
                      return;
                    }

                    var id = that.$.setStorageSync("uid", data.user_id);
                    var key = that.$.setStorageSync("ukey", data.key);

                    that.toMain(data);
                  },
                  fail: function () {
                    // fail
                    // that.$.hideToast();
                  },
                  complete: function () {
                    // complete
                  },
                });
              } else {
              }
            },
            function (e) {
              alert("获取用户信息失败：" + e.message + " - " + e.code);
            }
          );
        }
      }
      authLogin();
      /*
		    that.$.login({
		        provider: value,
		        success: res => {
		            that.$.getUserInfo({
		                provider: value,
		                success: infoRes => {
		                    if (infoRes.errMsg == 'getUserInfo:ok')
		                    {
		                        //console.info(JSON.stringify(infoRes));
		                        //console.info(value);

		                        //this.toMain(infoRes.userInfo.nickName);
		                        var t = infoRes.userInfo;
		                        t.bind_name = value;

		                        //{"openId":"o6tGM1biEBK05U1f7-DjAhO8J864","nickName":"黄新泽","gender":1,"city":"闵行","province":"上海","country":"中国","avatarUrl":"http://thirdwx.qlogo.cn/mmopen/vi_32/PiajxSqBRaEJBP1wRhHlbGtp9FGR1go2f3hc21LRcruDqr5hncC4uSwCVYDuyReKSyic00E33sXOXeCWNhkVEHrQ/132","unionId":"ozDRT1vHoz4_NDw7xZ4vsRDasdYg"}

		                        if (value == 'weixin')
		                        {
		                            let rawData = JSON.parse(infoRes.rawData);

		                            var encryptedData = encodeURIComponent(rawData.encryptedData); //一定要把加密串转成URI编码
		                            var iv = encodeURIComponent(rawData.iv);
		                            var code = t.openId;

		                            t.code = code;
		                            t.encryptedData = encryptedData;
		                            t.iv = iv;
		                        }

		                        t.source_store_id = that.$.getStorageSync('source_store_id');
		                        t.source_user_id = that.$.getStorageSync('source_user_id');

		                        //请求服务器
		                        that.$.request({
		                            url: that.Config.URL.do_app_login,
		                            data: t,
		                            success: function(data, status, msg, code) {
		                                if (status != 200) {
		                                    // 登录错误
		                                    that.$.showModal({
		                                        title: '提示',
		                                        content: '无法登录，请重试！',
		                                        showCancel: false
		                                    });

		                                    that.$.navigateBack();
		                                    return;
		                                }

		                                var id = that.$.setStorageSync('uid', data.user_id);
		                                var key = that.$.setStorageSync('ukey', data.key);

		                                that.toMain(data);
		                            },
		                            fail: function() {
		                                // fail
		                                // that.$.hideToast();
		                            },
		                            complete: function() {
		                                // complete
		                            }
		                        });
		                    }
		                    else
		                    {

		                    }
		                }
		            });
		        },
		        fail: err => {
		            console.error('授权登录失败：' + JSON.stringify(err));
		        }
		    });
			*/
    },

    toMain(userInfo) {
      var that = this;

      that.$.request({
        url: this.Config.URL.user.overview,
        success: function (data, status, msg, code) {
          userInfo = Object.assign(userInfo, data.member_info);
          that.login("=======" + userInfo);
          if (userInfo.im && that.plantformInfo.config.chat_global) {
            that.$Socket.connectserver(userInfo.im);
          }

          that.notice.postNotificationName("RefreshCart", 0);
          /**
           * 强制登录时使用reLaunch方式跳转过来
           * 返回首页也使用reLaunch方式
           */
          if (that.forcedLoginState) {
            that.$.reLaunch({
              url: "/pages/index/member",
            });
          } else {
            // #ifdef H5
            if (that.$.isWeixin()) {
              let pre_route = that.$.getStorageSync("pre_route");
              let pre_options = that.$.getStorageSync("pre_options");

              //console.info(pre_route);
              //console.info(pre_options);

              if (pre_route) {
                let pre_url = "/" + that.$.createUrl(pre_route, pre_options);
                that.$.gotopage(pre_url);
              } else {
                that.$.gotopage("/pages/index/member");
              }

              return;
            }
            // #endif

            if (
              getCurrentPages()[getCurrentPages().length - 1].route ==
                "pages/login/login" ||
              getCurrentPages()[getCurrentPages().length - 1].route ==
                "/pages/login/login"
            ) {
              if (getCurrentPages().length > 1) {
                var prePage = getCurrentPages()[getCurrentPages().length - 2];

                // #ifndef H5
                if (
                  "pages/login/login" == prePage.route ||
                  "/pages/login/login" == prePage.route
                ) {
                  that.$.switchTab({
                    url: "/pages/index/member",
                  });
                } else {
                  if (prePage.refreshData) {
                    prePage.refreshData(prePage.options);
                    that.$.navigateBack();
                  } else if (prePage.onLoad) {
                    prePage.onLoad(prePage.options);
                    that.$.navigateBack();
                  } else {
                    let pre_url =
                      "/" + that.$.createUrl(prePage.route, prePage.options);
                    that.$.gotopage(pre_url);
                  }
                }
                // #endif

                // #ifdef H5
                //修正 onLoad 不存在问题。
                //console.info('++++++++++++++++++++++');
                //console.info(prePage);
                //console.info(prePage.onLoad);
                //console.info(prePage.route);
                //console.info(prePage.options);

                if (
                  "pages/login/login" == prePage.route ||
                  "/pages/login/login" == prePage.route
                ) {
                  that.$.switchTab({
                    url: "/pages/index/member",
                  });
                } else {
                  if (prePage.refreshData) {
                    prePage.refreshData(prePage.options);
                    that.$.navigateBack();
                  } else if (prePage.onLoad) {
                    prePage.onLoad(prePage.options);
                    that.$.navigateBack();
                  } else {
                    let pre_url =
                      "/" + that.$.createUrl(prePage.route, prePage.options);
                    that.$.gotopage(pre_url);
                  }
                }
                // #endif
              } else {
                //回到上个页面
                that.$.switchTab({
                  url: "/pages/index/member",
                });
              }
            } else {
              var prePage = getCurrentPages()[getCurrentPages().length - 1];

              if (
                "pages/login/login" == prePage.route ||
                "/pages/login/login" == prePage.route
              ) {
                that.$.switchTab({
                  url: "/pages/index/member",
                });
              } else {
                prePage.onLoad && prePage.onLoad(prePage.options);
              }

              //that.$.navigateBack();
            }
          }
        },
      });
    },

    bindGetUserInfo: function (res2) {
      var that = this;

      if (!this.protocol_checked) {
        this.$.showModal({
          title: this.__("提示"),
          content: this.__("请先阅读并同意用户协议"),
          showCancel: false,
        });

        return;
      }

      let login_func = that.$.login;
      if (this.wxwork) {
        login_func = wx.qy.login;

        //console.info(res2);
        if (res2.detail.errMsg == "getUserInfo:ok") {
          that.setData({ isAuthorizationed: false });
          var wx_user = that.$.parseJSON(res2.detail.rawData);
          login_func({
            success: function (qy_datainfo) {
              that.$.login({
                success: function (res) {
                  var t = {
                    code: res.code,
                    wxwork: that.wxwork,
                    NickName: wx_user.nickName,
                    sex: wx_user.gender,
                    photo: wx_user.avatarUrl,
                    WXCountry: wx_user.country,
                    WXCity: wx_user.city,
                    WXProvince: wx_user.province,
                    Uid: 0,
                    storeId: 0,
                  };
                  var encryptedData = encodeURIComponent(
                    res2.detail.encryptedData
                  ); //一定要把加密串转成URI编码
                  var iv = encodeURIComponent(res2.detail.iv);
                  var code = res.code;

                  //请求服务器
                  that.$.request({
                    url: that.Config.URL.wx.applogin,
                    data: {
                      qy_code: qy_datainfo.code,
                      code: code,
                      wxwork: that.wxwork,
                      encryptedData: encryptedData,
                      iv: iv,
                      source_store_id: that.$.getStorageSync("source_store_id"),
                      source_user_id: that.$.getStorageSync("source_user_id"),
                    },
                    success: function (data, status, msg, code) {
                      if (status != 200) {
                        // 登录错误
                        that.$.showModal({
                          title: "提示",
                          content: "无法登录，请重试！",
                          showCancel: false,
                        });

                        that.$.navigateBack();
                        return;
                      }

                      var id = that.$.setStorageSync("uid", data.user_id);
                      var key = that.$.setStorageSync("ukey", data.key);

                      that.toMain(data);
                    },
                    fail: function () {
                      // fail
                      // that.$.hideToast();
                    },
                    complete: function () {
                      // complete
                    },
                  });
                },
              });
            },
          });
        }
      } else {
        //console.info(res2);
        if (res2.detail.errMsg == "getUserInfo:ok") {
          that.setData({ isAuthorizationed: false });
          var wx_user = that.$.parseJSON(res2.detail.rawData);
          login_func({
            success: function (res) {
              var t = {
                code: res.code,
                wxwork: that.wxwork,
                NickName: wx_user.nickName,
                sex: wx_user.gender,
                photo: wx_user.avatarUrl,
                WXCountry: wx_user.country,
                WXCity: wx_user.city,
                WXProvince: wx_user.province,
                Uid: 0,
                storeId: 0,
              };

              var encryptedData = encodeURIComponent(res2.detail.encryptedData); //一定要把加密串转成URI编码
              var iv = encodeURIComponent(res2.detail.iv);
              var code = res.code;

              //请求服务器
              that.$.request({
                url: that.Config.URL.wx.applogin,
                data: {
                  code: code,
                  encryptedData: encryptedData,
                  iv: iv,
                  source_store_id: that.$.getStorageSync("source_store_id"),
                  source_user_id: that.$.getStorageSync("source_user_id"),
                },
                success: function (data, status, msg, code) {
                  if (status != 200) {
                    // 登录错误
                    that.$.showModal({
                      title: "提示",
                      content: "无法登录，请重试！",
                      showCancel: false,
                    });

                    that.$.navigateBack();
                    return;
                  }

                  var id = that.$.setStorageSync("uid", data.user_id);
                  var key = that.$.setStorageSync("ukey", data.key);

                  that.toMain(data);
                },
                fail: function () {
                  // fail
                  // that.$.hideToast();
                },
                complete: function () {
                  // complete
                },
              });
            },
          });
        }
      }
    },

    onChangeProtocol: function (e) {
      var values = e.detail.value;

      if (values.length > 0) {
        this.protocol_checked = true;
      } else {
        this.protocol_checked = false;
      }
    },

    showProtocol: function (id) {
      uni.navigateTo({
        url: "/member/member/protocol?id=" + id,
      });
    },
    startLogin: function () {
      //登录
      if (this.isRotate) {
        //判断是否加载中，避免重复点击请求
        return false;
      }

      console.info(this.account);
      console.info(typeof this.account);
      if (this.account.length == "") {
        uni.showToast({
          icon: "none",
          position: "bottom",
          title: "用户名不能为空",
        });
        return;
      }
      if (this.password.length < 5) {
        uni.showToast({
          icon: "none",
          position: "bottom",
          title: "密码不正确",
        });
        return;
      }

      console.log("登录成功");

      _this.isRotate = true;
      setTimeout(function () {
        _this.isRotate = false;
      }, 3000);
      // uni.showLoading({
      // 	title: '登录中'
      // });
      // getLogin()
      // .then(res => {
      // 	//console.log(res)
      // 	//简单验证下登录（不安全）
      // 	if(_this.account==res.data.username && _this.password==res.data.password){
      // 		let userdata={
      // 			"username":res.data.username,
      // 			"nickname":res.data.nickname,
      // 			"accesstoken":res.data.accesstoken,
      // 		} //保存用户信息和accesstoken
      // 		_this.$store.dispatch("setUserData",userdata); //存入状态
      // 		try {
      // 			uni.setStorageSync('setUserData', userdata); //存入缓存
      // 		} catch (e) {
      // 			// error
      // 		}
      // 		uni.showToast({
      // 			icon: 'success',
      // 			position: 'bottom',
      // 			title: '登录成功'
      // 		});
      // 		uni.reLaunch({
      // 			url: '../../../pages/index',
      // 		});
      // 	}else{
      // 		_this.password=""
      // 		uni.showToast({
      // 			icon: 'error',
      // 			position: 'bottom',
      // 			title: '账号或密码错误，账号admin密码admin'
      // 		});
      // 	}
      // 	uni.hideLoading();
      // }).catch(err => {
      // 	uni.hideLoading();
      // })
    },
  },
};
</script>


<style lang="scss">
@import "../../styles/reg.scss";

.cuIcon-item {
  font-size: 64rpx;

  image {
    width: 64rpx;
    height: 64rpx;
  }
}

/* common/authorization-info.wxss */
.auth-pop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  flex-wrap: wrap;
  z-index: 999;
}
.auth-box {
  width: 600rpx;
  background-color: #fff;
  border-radius: 24rpx;
  box-sizing: border-box;
  padding: 110rpx 60rpx;
  box-shadow: 0 10rpx 30rpx rgba(0, 0, 0, 0.5);
}
.auth-box image {
  width: 166rpx;
  height: 197rpx;
}
.auth-box label {
  font-size: 32rpx;
  color: #333;
  margin: 20rpx 0;
  display: inline-block;
  width: 100%;
}
.auth-box text {
  font-size: 24rpx;
  color: #666;
}
.auth-box button {
  margin-top: 80rpx;
}

.btn-row {
  margin-top: 50px;
  padding: 0px;

  label {
    font-size: 32rpx;
    color: #333;
    margin: 20rpx 0;
    display: inline;
    width: 100%;
  }
}
</style>
