// 登录页面
const app = getApp();

Page({
  data: {
    loading: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },

  onLoad() {
    // 检查是否已登录
    if (app.globalData.userInfo) {
      this.redirectToHome();
    }
  },

  // 微信登录
  async onWxLogin() {
    if (this.data.loading) return;
    
    try {
      this.setData({ loading: true });
      
      const loginResult = await app.wxLogin();
      
      app.showSuccess('登录成功');
      
      // 延迟跳转，让用户看到成功提示
      setTimeout(() => {
        this.redirectToHome();
      }, 1000);
      
    } catch (error) {
      console.error('登录失败：', error);
      app.showError(typeof error === 'string' ? error : '登录失败，请重试');
    } finally {
      this.setData({ loading: false });
    }
  },

  // 获取用户信息（兼容旧版本）
  onGetUserInfo(e) {
    if (e.detail.userInfo) {
      this.handleUserInfo(e.detail);
    } else {
      app.showError('需要授权才能使用小程序');
    }
  },

  // 处理用户信息
  async handleUserInfo(userInfo) {
    try {
      this.setData({ loading: true });
      
      // 先获取登录code
      const loginRes = await this.wxLogin();
      
      // 发送登录请求
      const response = await app.request({
        url: '/auth/wechat/login',
        method: 'POST',
        data: {
          code: loginRes.code,
          encrypted_data: userInfo.encryptedData,
          iv: userInfo.iv
        }
      });
      
      const { token, user } = response.data;
      app.globalData.token = token;
      app.globalData.userInfo = user;
      
      // 保存到本地存储
      wx.setStorageSync('token', token);
      wx.setStorageSync('userInfo', user);
      
      app.showSuccess('登录成功');
      
      setTimeout(() => {
        this.redirectToHome();
      }, 1000);
      
    } catch (error) {
      console.error('登录失败：', error);
      app.showError('登录失败，请重试');
    } finally {
      this.setData({ loading: false });
    }
  },

  // 微信登录获取code
  wxLogin() {
    return new Promise((resolve, reject) => {
      wx.login({
        success: resolve,
        fail: reject
      });
    });
  },

  // 跳转到首页
  redirectToHome() {
    wx.switchTab({
      url: '/pages/index/index'
    });
  },

  // 跳过登录（游客模式）
  onSkipLogin() {
    wx.showModal({
      title: '提示',
      content: '游客模式下功能受限，建议登录后使用完整功能',
      confirmText: '继续',
      cancelText: '登录',
      success: (res) => {
        if (res.confirm) {
          this.redirectToHome();
        }
      }
    });
  },

  // 查看隐私政策
  onPrivacyPolicy() {
    wx.navigateTo({
      url: '/pages/common/privacy'
    });
  },

  // 查看用户协议
  onUserAgreement() {
    wx.navigateTo({
      url: '/pages/common/agreement'
    });
  }
});