<template>
  <view class="container">
    <view v-if="!token">
      <!-- 小程序 -->
      <view v-if="$deviceType == 'routine'&&authorize">
        <view class="getUserInfo">
          <text>您还未允许微信登录授权,请点击下方按钮允许微信授权登录。</text>
          <button type="primary" open-type="getUserInfo" @getuserinfo="getUserInfo">允许微信登录授权</button>
          <view style="height:20rpx"></view>
          <button @click="back">取消微信登录授权</button>
        </view>
      </view>
      <!-- app -->
      <view v-if="$deviceType == 'app'&&authorize">
        <view class="getUserInfo">
          <text>请先登录</text>
          <button type="primary" @click="this.toLogin">去登录</button>
        </view>
      </view>
      <view v-if="!authorize">
        <view class="getUserInfo">
          <text>登录中</text>
        </view>
      </view>
    </view>
  </view>
</template>

<script>
import { mapState, mapMutations, mapActions } from "vuex";
// 组件
// import request from "@//api/request";
import { wxappAuth, getUser } from "@/api/user";
import dayjs from "dayjs";
import cookie from "@/utils/store/cookie";
import { login, authorize } from "@/utils";

export default {
  data() {
    return {
      authorize: false
    };
  },
  computed: {
    ...mapState(["isAuthorization", "$deviceType", "token"])
  },
  onShow() {
    // // 先校验用户是否授权,如果没有授权,显示授权按钮
    console.log("onShow 先校验用户是否授权,如果没有授权,显示授权按钮");
    authorize("userInfo")
      .then(res => {
        console.log(res);
      })
      .catch(error => {
        console.log(error);
        // 用户未授权,显示授权按钮
        this.authorize = true;
      });
  },
  onHide() {
    console.log("离开授权页面,11111");
    this.updateAuthorizationPage(false);
    this.changeAuthorization(false);
  },
  onUnload() {
    console.log("离开授权页面,11111");
    this.updateAuthorizationPage(false);
    this.changeAuthorization(false);
  },
  methods: {
    ...mapActions(["changeAuthorization", "setUserInfo"]),
    ...mapMutations(["updateAuthorizationPage",]),
    
    back() {
      this.$yrouter.switchTab({
        path: "/pages/home/index",
        query: {}
      });
    },
    getUserInfo(data) {
      if (data.detail.errMsg == "getUserInfo:fail auth deny") {
        uni.showToast({
          title: "取消授权",
          icon: "none",
          duration: 2000
        });
        return;
      }
      uni.showLoading({
        title: "登录中"
      });
      login()
        .then(res => {
          this.$yrouter.replace({ path: cookie.get("redirect") });
        })
        .catch(error => {
          console.log(error);
          uni.showToast({
            title: error,
            icon: "none",
            duration: 2000
          });
        });
    },
    toLogin() {
      this.$yrouter.push({
        path: "/pages/user/Login/index",
        query: {}
      });
    }
  },
  onUnload() {
    console.log("离开授权页面,11111");
    this.updateAuthorizationPage(false);
    this.changeAuthorization(false);
  },
  mounted() {
    // // 先校验用户是否授权,如果没有授权,显示授权按钮
    console.log("mounted 先校验用户是否授权,如果没有授权,显示授权按钮");
    authorize("userInfo")
      .then(res => {
        console.log(res);
      })
      .catch(error => {
        console.log(error);
        // 用户未授权,显示授权按钮
        this.authorize = true;
      });
  }
};
</script>

<style lang="less">
.sp-cell {
  height: 20rpx;
}

.getUserInfo {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 30px;

  text {
    font-size: 30rpx;
    text-align: center;
    margin-bottom: 20px;
  }
}

.container {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  position: relative;
}

.tab-bar {
  font-size: 0;
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.9);
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 99;
  border-top: 1px solid rgba(248, 248, 248, 1);

  .tab-bar-item {
    flex: 1;
    height: 49px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;

    &.active {
      text {
        color: #ee7559;
      }

      .tab-bar-pic {
        display: none;
        background: #f9f9f9;

        &.active {
          display: block;
        }
      }
    }

    .tab-bar-pic {
      display: block;
      background: #f9f9f9;

      &.active {
        display: none;
      }
    }
  }

  .tab-bar-pic {
    width: 25px;
    height: 25px;
    background: #f9f9f9;

    image {
      width: 25px;
      height: 25px;
    }
  }

  .tab-bar-pic-active {
  }

  text {
    font-size: 10px;
    color: rgb(160, 160, 160);
    line-height: 10px;
    margin-top: 5px;
  }
}

.tab-bar-bg {
  padding-top: 46px;
  width: 100%;
}

.view-item {
  display: none;
  width: 100%;
}

.view-item-active {
  display: block;
}

.getUserInfo {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 30px;

  p {
    margin-bottom: 20px;
  }
}

._van-dialog {
  z-index: 99999999999;
}
</style>