<template>
  <view class="waiting">
    <u--image
      src="/static/favicon.png"
      width="288rpx"
      height="288rpx"
      mode="aspectFit"
      :fade="true"
      duration="200"
    ></u--image>
    <button class="login" @click="login">授权登录</button>
  </view>
</template>

<script>
import { getAccessToken, getOpenId } from '@/utils/auth'
import { qrLogin } from '@/api/login'

export default {
  data() {
    return {
      scene: ''
    }
  },
  methods: {
    login() {
      if (!this.scene) {
        uni
          .showModal({
            content: '链接失效,请重新扫码',
            showCancel: false
          })
          .then(() => {
            uni.exitMiniProgram({
              success: res => {
                console.log(res)
              }
            })
          })
      } else {
        uni.showLoading({
          title: '登陆中。。。'
        })
        qrLogin({
          code: this.scene,
          openid: getAccessToken()
        }).then(res => {
          setTimeout(() => {
            uni.hideLoading()
            uni.switchTab({
              url: '/pages/index'
            })
          }, 3000)
        })
      }
    }
  },
  onLoad(query) {
    // scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
    this.scene = decodeURIComponent(query.scene)
  }
}
</script>

<style lang="scss" scoped>
.waiting {
  height: 100vh;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  background: #17c653;
  gap: 40px;
  .login {
    display: flex;
    padding: var(--Number-12px, 24rpx) var(--Number-40px, 80rpx);
    justify-content: center;
    align-items: center;
    border-radius: var(--Number-120px, 240rpx);
    background: var(--LightMode-Light-Light, #fff);
    box-shadow: 0px 6rpx 8rpx 0px rgba(0, 0, 0, 0.03);
    color: var(--LightMode-Success-Success, #17c653);
    font-family: 'PingFang SC';
    font-size: 32rpx;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
  }
  .title {
    font-family: 'PingFang SC';
    font-size: 32rpx;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
  }
}
</style>