<template>
  <view class="blank-page"></view>
</template>

<script>
import { getPlatformEnv } from "@/utils";
import zlbConfig from "@/common/js/zlbConfig";
import { getSsoUserInfo ,getSsoUserInfoUnity} from "@/api/user";
import { storageUserInfo } from "@/utils/index";
import Track from "@/common/js/track";
import Vconsole from "vconsole";
import dd from "gdt-jsapi";
import {getTemplateList} from "@/api/commitment";
const app = getApp();
export default {
  name: "blank",
  components: {},
  props: {},
  data() {
    return {};
  },
  onShow() {
//    if (app.globalData.isLogin) {
//      ZWJSBridge.close();
//    } else {
//      this.unityLogin()
//    }
    dd.getAuthCode({
//      corpId: ""
    }).then(res => {
      console.log(res)
    }).catch(err => {})

  },
  methods: {
    async getNewSsoUserInfo(ticket) {  
      const res = await getSsoUserInfoUnity({ ticketId: ticket });    
      const userInfo = res.data;
      storageUserInfo({
        nickName: userInfo.name,
        avatarUrl: userInfo.headPicture,
        phoneNumber: userInfo.phoneWx,
        phoneWx: userInfo.phoneWx,
        username: userInfo.name,
        openId: userInfo.userIdZlb,
        uuid: userInfo.uuid,
      });
      app.globalData.openid = userInfo.uuid;
      // 开始埋点上报
      this.startTrack();
      if (app.globalData.options.code) {
        uni.switchTab({
          url: "/pages/home/home",
        });
      } else {
        if (
          userInfo.doorplateCount
        ) {
          uni.switchTab({
            url: "/pages/home/home",
          });
        } else {
          uni.reLaunch({
            url: "/subPages/pages/scanCode/scanCode",
          });
        }
      }
    },
    resolveParams(){
      const params = this.getQuery(window.location.search);
      if (params.qjw_debug) {
        localStorage.setItem("debug", "true");
        new Vconsole();
      } else {
        localStorage.setItem("debug", "false");
      }
      if (params.sp) {
          console.error("sp", params.sp);
          const spParams = this.getQuery(decodeURIComponent(params.sp));
          console.error("spParams", spParams);
          app.globalData.options = {
            code: spParams.code,
          };
        }
        //门牌code直接在链接上的话，说明从微信小程序过来
        if (params.code) {
          console.log("应该为微信环境,链接地址：", window.location.href);
          console.error("code：", params.code);
          app.globalData.options = {
            code: params.code,
          };
        }
    },
    async unityLogin() {
      this.resolveParams()
      if (ZWJSBridge.ssoTicket) {
        const ssoFlag = await ZWJSBridge.ssoTicket({});
        if (ssoFlag && ssoFlag.result === true) {
          //使用 IRS“浙里办”统一单点登录组件
          if (ssoFlag.ticketId) {
            // TODO 应用方服务端单点登录接口
            app.globalData.isLogin = true;
            this.getNewSsoUserInfo(ssoFlag.ticketId);
          } else {
            //当“浙里办”单点登录失败或登录态失效时调用 ZWJSBridge.openLink 方法重新获取ticketId。
            this.login()
          }
        } else {
          console.log('当前环境不支持 “浙里办”统一单点登录 ')
          this.login()
        }
      } else {
        console.log('ZWJSBridge 加载异常')
        //异常情况：ZWJSBridge 加载异常
      }
    },
    ssoLogin() {
      const platformEnv = getPlatformEnv();
      const params = this.getQuery(window.location.search);
      let ssoUrl = "";
      // 登录
      if (platformEnv.bIsAlipayMini) {
        console.log("支付宝环境单点登录");
        ssoUrl = zlbConfig.alipaySsoUrl;
      } else if (platformEnv.bIsDtDreamApp) {
        console.log("浙里办环境单点登录");
        ssoUrl = zlbConfig.zlbSsoUrl;
      } else {
        //为了h5测试
        ssoUrl = zlbConfig.zlbSsoUrl;
      }
      if (params.code) {
        ssoUrl += `&goto=${window.location.href.split("#")[0]}`;
      }
      console.log(ssoUrl);
      window.location.replace(ssoUrl);
    },
    login() {
      console.log("应用所处地址", window.location.href);
      console.log("useragent", window.navigator.userAgent.toLowerCase());
      const platformEnv = getPlatformEnv();
      const params = this.getQuery(window.location.search);
      if (params.qjw_debug) {
        localStorage.setItem("debug", "true");
      } else {
        localStorage.setItem("debug", "false");
      }
      if (!params.ticket && !platformEnv.bIsWxMini) {
        this.ssoLogin();
      } else {
        app.globalData.isLogin = true;
        console.log(
          "登录成功后回调地址和参数解析：",
          window.location.href,
          params
        );
        // 跳转回来的参数解析
        if (params.sp) {
          console.error("sp", params.sp);
          const spParams = this.getQuery(decodeURIComponent(params.sp));
          console.error("spParams", spParams);
          app.globalData.options = {
            code: spParams.code,
          };
        }
        //门牌code直接在链接上的话，说明从微信小程序过来
        if (params.code) {
          console.log("应该为微信环境,链接地址：", window.location.href);
          console.error("code：", params.code);
          app.globalData.options = {
            code: params.code,
          };
        }
        let ticket = "";
        //浙里办微信是获取ticketId
        if (platformEnv.bIsWxMini) {
          ticket = params.ticketId;
        } else {
          ticket = params.ticket;
        }
        console.log("获取的ticket", ticket);
        this.getSsoUserInfo(ticket);
      }
    },
    async getSsoUserInfo(ticket) {
      let res = "";
      try {
        res = await getSsoUserInfo({ ticketId: ticket });
      } catch (err) {
        uni.setStorageSync("testErr", err);
        if (uni.getStorageSync("errNum")) {
          let errNum = Number(uni.getStorageSync("errNum"));
          if (errNum + 1 < 3) {
            uni.setStorageSync("errNum", errNum + 1);
          } else {
            uni.removeStorageSync("errNum");
            return;
          }
        } else {
          uni.setStorageSync("errNum", 1);
        }
         this.ssoLogin();
      }
      const userInfo = res.data;
      // console.log("单点登录后用户信息", userInfo);
      storageUserInfo({
        nickName: userInfo.name,
        avatarUrl: userInfo.headPicture,
        phoneNumber: userInfo.phoneWx,
        phoneWx: userInfo.phoneWx,
        username: userInfo.name,
        openId: userInfo.userIdZlb,
        uuid: userInfo.uuid,
      });
      app.globalData.openid = userInfo.uuid;

      // 开始埋点上报
      this.startTrack();
      history.pushState(null, null, document.URL);
      uni.removeStorageSync("errNum");
      if (app.globalData.options.code) {
        uni.switchTab({
          url: "/pages/home/home",
        });
      } else {
        if (
          userInfo.doorplateCount
        ) {
          uni.switchTab({
            url: "/pages/home/home",
          });
        } else {
          uni.reLaunch({
            url: "/subPages/pages/scanCode/scanCode",
          });
        }
      }
    },
    startTrack() {
      app.globalData.trackIns = new Track();
    },
    getQuery(url) {
      const str = url.substr(url.indexOf("?") + 1);
      const arr = str.split("&");
      const result = {};
      for (let i = 0; i < arr.length; i++) {
        const item = arr[i].split("=");
        result[item[0]] = item[1];
      }
      return result;
    },
  },
};
</script>

<style scoped></style>
