app.js 3.05 KB
/*
 * @Date: 2025-06-28 10:33:00
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2026-02-02 18:00:00
 * @FilePath: /manulife-weapp/src/app.js
 * @Description: 应用入口文件
 */
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import './utils/polyfill'
import './app.less'
import { useUserStore } from '@/stores/user'

const App = createApp({
  // 对应 onLaunch
  async onLaunch(options) {
    // 获取用户 store
    const userStore = useUserStore()

    // 打印环境信息(第一部分:基本信息)
    const env = process.env.NODE_ENV || 'unknown'
    const platform = process.env.TARO_ENV || 'unknown'

    console.log('\n==================== 环境信息 ====================')
    console.log(`📱 当前环境: ${env === 'development' ? '开发环境' : env === 'production' ? '生产环境' : env}`)
    console.log(`🔧 运行平台: ${platform === 'weapp' ? '微信小程序' : platform === 'h5' ? 'H5' : platform}`)
    console.log(`⏰ 启动时间: ${new Date().toLocaleString('zh-CN', { hour12: false })}`)

    // 打印当前页面路径
    try {
      const pages = getCurrentPages()
      if (pages.length > 0) {
        const currentPage = pages[pages.length - 1]
        console.log(`📄 当前页面: ${currentPage.route || 'app'}`)
      }
    } catch (err) {
      console.log('📄 当前页面: 无法获取')
    }

    // 打印会话信息
    try {
      const sessionid = wx.getStorageSync('sessionid')
      console.log(`🔐 会话状态: ${sessionid ? '已建立' : '未建立'}`)
    } catch (err) {
      console.log('🔐 会话状态: 无法获取')
    }

    // 用户状态:检查中
    console.log('👤 用户状态: 检查中...')
    console.log('====================================================\n')
    console.log('小程序启动', options)

    // 检查登录状态
    // - 如果 is_openid=false,会自动调用 wx.login 授权
    // - 如果授权后返回 user,说明已自动登录
    // - 如果 is_login=false,会跳转到登录页
    try {
      await userStore.checkLoginStatus()

      // 打印用户登录状态(在检查完成后)
      console.log('\n==================== 用户信息 ====================')
      if (userStore.isLoggedIn && userStore.userInfo) {
        console.log(`✅ 登录状态: 已登录`)
        console.log(`👤 用户ID: ${userStore.userInfo.id || '未知'}`)
        console.log(`👤 用户名: ${userStore.userInfo.name || userStore.userInfo.nickname || '未知'}`)
        console.log(`📱 手机号: ${userStore.userInfo.phone || userStore.userInfo.mobile || '未绑定'}`)
      } else {
        console.log(`❌ 登录状态: 未登录`)
      }
      console.log('====================================================\n')
    } catch (error) {
      console.error('启动时检查登录状态失败:', error)
      console.log('❌ 登录状态: 检查失败')
      // 即使失败也继续,让用户可以正常使用小程序
    }
  },

  onShow() {
    // 页面显示时的逻辑
  },
})

App.use(createPinia())

export default App