<script lang="ts" setup>
import { getCode } from '@/utils/dd'
import { useAuthStore } from '@/store/auth'
import { useUserStore } from '@/store/user'
import { useTokenStore } from '@/store/token'
import { onLoad} from '@dcloudio/uni-app'


defineOptions({
  name: 'Home',
})
definePage({
  // 使用 type: "home" 属性设置首页，其他页面不需要设置，默认为page
  type: 'page',
  style: {
    // 'custom' 表示开启自定义导航栏，默认 'default'
    navigationStyle: 'custom',
    navigationBarTitleText: '%tabbar.home%',
  },
})

// 状态管理
const authStore = useAuthStore()
const userStore = useUserStore()
const tokenStore = useTokenStore()

/**
 * 处理H5平台的登录逻辑
 * @param code 钉钉授权码
 */
async function handleH5Login(code: string) {
  if (code !== 'fail') {
    try {
      // 调用钉钉登录接口
      console.log('H5平台：开始钉钉登录')
      await authStore.authDingTalkLogin(code)
      // 登录成功后获取用户信息
      console.log('H5平台：登录成功，获取用户信息')
      await userStore.fetchUserInfo()
      uni.reLaunch({
        url: '/pages/schedule/view/index'
      })
    } catch (error) {
      console.error('H5平台钉钉登录失败:', error)
    }
  } else {
    console.log('H5平台：未在钉钉环境中，跳转到非钉钉页面')
  }
}

/**
 * 初始化页面
 */
async function init() {
  console.log('开始初始化页面...')
  
  // 钉钉免登录
  getCode((codeType: string, code: string) => {
    console.log('获取到钉钉授权码:', { codeType, code })
    if (codeType === 'H5') {
      console.log('处理H5平台登录')
      handleH5Login(code)
    }
  })
}

/**
 * 页面加载时执行
 * @param options 页面参数
 */

onLoad(() => {
  // 初始化页面
  init()
})
</script>

<template>
  <view class="wrap min-h-screen">
        1
  </view>
</template>

<style scoped></style>
