<template>
  <view>
     <view v-for="item in mockData" @click="click(item)"
           class="item"
           :class="[item === active? 'u-border active' :'']">
       用户名:{{item.userName}}
     </view>
<!--     <button @click="getTenanList">getTenanList</button>-->
     <button @click="next" :disabled="active === -1">下一步</button>
     <button @click="login">下一步</button>
<!--     <view>encryptToken结果:{{token}}</view>-->
  </view>
</template>

<script>
export default {
  name: "index",
  data(){
    return {
      back: '',
      mockData: [
        // {
        //   "id": 0,
        //   "userNo": "string",
        //   "userName": "string",
        //   "phone": "string",
        //   "tenantId": "string",
        //   "tenantCode": "string",
        //   "tenantName": "string",
        //   "tenantPlat": "string",
        //   "globalUserId": "string"
        // }
        // {globalId: "1375592964957573120", tenantId: "1442659610786926593", subId: "1442659610786926600"}
      ],
      active: -1,
      token: "",
      userData: {}
    }
  },
  onLoad(){
    // #ifdef APP-PLUS
    uni.onNativeEventReceive((event,data)=>{
      if(event === 'getTenantList'){
        this.mockData = JSON.parse(data);
      }else if(event === 'encryptToken'){
        this.token = data;
        uni.setStorageSync('encryptToken', data);
        this.login()
      }
    })
    this.getTenanList();
    // #endif

  },
  methods:{
    click(item){
      this.active = item;
    },
    getTenanList(){
      // 向宿主App发送事件
      uni.sendNativeEvent('getTenantList', {

      }, ret => {
        // 返回的是 String 还是 JsonObject
        // this.back = ret;
        // this.mockData = JSON.parse(ret);
      })
    },
    encryptToken(){

        uni.sendNativeEvent('encryptToken',JSON.stringify(
            {
              globalId: this.active.globalUserId,
              tenantId: this.active.tenantId,
              subId: this.active.id,
            }
        ), ret => {
          // 返回的是 String 还是 JsonObject
          // this.token = ret;

        })

    },
    getToken(){
      uni.setStorageSync('encryptToken',"")
    },
    login(){
      // uni.setStorageSync('encryptToken',"MBN9Om00MUE9CEcnizCOwinwRe5NJNdZb4JyDT3/ze+vyyv5QNXVoo0Sb65Gptgdy9BZZFX36tEge08iDEzLHIYsLS95bnrcwUOh1tp9pMiJ0XYNBFnFcHFXP9AgeAmYe9EXW+akUkx4Zr7PGiG7eqhuabLlPisHhoQOBfFFTwQ=")
      // 核对
      this.$http(
          "auth.checkSecretKey",
          uni.getStorageSync('encryptToken')
      ).then(res =>{
        let {
          code, data
        } = res;
        if(code === 200){
          let {
            userId,      // 用户id
            enterpriseId // 企业id
          } = data;
          this.userData = data;
          uni.setStorageSync('tenantId', data.tenantId);
          if(userId && enterpriseId){
            this.createToken(data);
          }else{
            this.toRegister();
          }
        }
      })
    },
    // 跳转到注册
    toRegister(){
      let {userId,enterpriseId,subId,tenantId} = this.userData;
      this.$Router.push({
        path: "/pages/user/register",
        query:{
          pcUserId: userId || "",
          pcBasicsId: enterpriseId || "",
          tenantUserId:subId,
          tenantId,
        }
      })
    },
    // 跳转到首页
    toIndexPage(){
      this.$Router.push({
        path: "/pages/home/index"
      })
    },
    checkStatus(data){
      this.$http(
          "user.checkMagStatus",{
            pcUserId: data.userId,
            pcBasicsId: data.enterpriseId,
      }).then(res =>{
        let { code ,data} = res;
        if(code === 200){
          // 1-面料供应商, 2-品牌商, 3-设计机构, 4-检测机构
          let { identityType} = data.userLastIdentity;
          if(identityType){
            this.assignType = identityType;
            this.filterStatus(data)
          }
        }
      })
    },
    filterStatus(data){
      // 0-未完善 1-已完善
      let{
        isBrandOwner,   // 我要选款
        isDesignAgency, // 完善设计机构信息
        isFabricSupplier, //完善面料供应商信息
        isTestingFacility, // 完善检测机构信息
      } = data;
      let { assignType} = this;
      switch (assignType){
        case "1":
          isFabricSupplier  ? this.toIndexPage() : this.toRegister();
          return ;
        case "2":
          isBrandOwner  ? this.toIndexPage() : this.toRegister();
          return ;
        case "3":
          isDesignAgency   ? this.toIndexPage() : this.toRegister();
          return ;
        case "4":
          isTestingFacility ? this.toIndexPage() : this.toRegister();
          return ;
        default:
          this.toRegister();
          return;
      }
    },
    createToken(data){

      this.$http("auth.createTokenByApp" ,{
        ...data,
        ...{
          identityType: uni.getStorageSync("identityType")
        }
      }).then(res =>{
        let {
          code, data
        } = res;
        if(code === 200){
          uni.setStorageSync('token', data.accessToken);
          uni.setStorageSync('pcUserId', data.userId);
          uni.setStorageSync('pcBasicsId', data.enterpriseId);
          // uni.setStorageSync('tenantId', this.userData.tenantId);

          this.checkStatus(data);
        }
      })
    },
    next(){
      this.encryptToken();
        // this.encryptToken();
       // uni.setStorageSync('encryptToken',"MBN9Om00MUE9CEcnizCOwinwRe5NJNdZb4JyDT3/ze+vyyv5QNXVoo0Sb65Gptgdy9BZZFX36tEge08iDEzLHIYsLS95bnrcwUOh1tp9pMiJ0XYNBFnFcHFXP9AgeAmYe9EXW+akUkx4Zr7PGiG7eqhuabLlPisHhoQOBfFFTwQ=")
       // this.$Router.push({
       //   path: "/pages/user/register"
       // })
    }
  }
}
</script>

<style scoped>
.item{
  padding: 30rpx;
}
.active{
  color: #1E90FF;
}
</style>
