Page({
  data: {
    isLogin: false, // 登录状态
    isHidden: true, // 弹窗状态
    avatarUrl: '', // 用户头像
    nickName: '', // 用户昵称
    username: '', // 用户名（用户名密码登录）
    password: '', // 密码（用户名密码登录）
    errorMessage: '', // 错误信息
  },

  // 获取用户头像
  getAvatar(e) {
    const avatarUrl = e.detail.avatarUrl; // 从事件中获取头像URL

    if (avatarUrl) {
      this.setData({
        avatarUrl: avatarUrl
      });

      // 授权登录后，自动设置默认密码到缓存
      wx.setStorageSync('password', '123');

      // 创建userInfo对象，保存头像和昵称到缓存
      let userInfo = {
        avatarUrl: avatarUrl,
        nickName: this.data.nickName
      };
      wx.setStorageSync('userinfo', userInfo); // 保存到缓存
    } else {
      wx.showToast({
        title: '头像获取失败',
        icon: 'error',
        duration: 2000
      });
    }
  },

  // 获取用户昵称
  getName(e) {
    const nickName = e.detail.value; // 获取昵称
    this.setData({
      nickName: nickName
    });

    // 在授权登录时，将昵称更新到缓存的 userInfo 对象中
    let userInfo = wx.getStorageSync('userinfo') || {};
    userInfo.nickName = nickName;
    wx.setStorageSync('userinfo', userInfo); // 更新缓存
  },

  // 显示登录弹窗
  gologin() {
    this.setData({
      isHidden: false
    });
  },

  // 取消登录弹窗
  potNo() {
    this.setData({
      isHidden: true
    });
  },

  // 确认登录弹窗
  popYes() {
    const { avatarUrl, nickName } = this.data;
    if (!avatarUrl || !nickName) {
      wx.showToast({
        icon: 'error',
        title: '请获取头像和昵称',
      });
      return;
    }

    this.setData({
      isLogin: true,
      isHidden: true,
    });

    // 登录成功后跳转到指定页面
    wx.switchTab({
      url: '/pages/Regular User/Home/Home',
    });
  },

  // 用户名密码登录
  inputUsername(e) {
    this.setData({
      username: e.detail.value
    });
  },

  inputPassword(e) {
    this.setData({
      password: e.detail.value
    });
  },

  // 登录验证
  login() {
    const { username, password } = this.data;

    if (!username || !password) {
      this.setData({
        errorMessage: '用户名和密码不能为空'
      });
      return;
    }

    wx.showLoading({
      title: '登录中...'
    });

    setTimeout(() => {
      wx.hideLoading();

      // 假设用户名和密码为123时登录成功
      if (username === '123' && password === '123') {
        wx.showToast({
          title: '登录成功',
          icon: 'success',
          duration: 2000
        });
        this.setData({
          isLogin: true,
          errorMessage: '',
        });

        // 登录成功后跳转到指定页面
        wx.switchTab({
          url: '/pages/Regular User/Home/Home',
        });
      } else {
        this.setData({
          errorMessage: '用户名或密码错误'
        });
        wx.showToast({
          title: '用户名或密码错误',
          icon: 'none',
          duration: 2000
        });
      }
    }, 1500);
  },

  // 页面加载时，检查是否有缓存的密码
  onLoad() {
    const storedPassword = wx.getStorageSync('password');
    const storedUserInfo = wx.getStorageSync('userinfo');

    // 如果有缓存的密码，则自动填充
    if (storedPassword) {
      this.setData({
        password: storedPassword // 自动填充缓存的密码
      });
    }

    // 如果有缓存的用户信息，自动填充头像和昵称
    if (storedUserInfo) {
      this.setData({
        avatarUrl: storedUserInfo.avatarUrl || '/assets/taddar/授权管理.png', // 默认头像
        nickName: storedUserInfo.nickName || '未登录', // 默认昵称
        isLogin: true, // 设置已登录状态
      });
    }

    // 如果没有设置头像，使用默认头像
    if (!this.data.avatarUrl) {
      this.setData({
        avatarUrl: '/assets/taddar/授权管理.png' // 默认头像
      });
    }
  }
});
