/**
 * Soul创业实验 - 设置页
 * 账号绑定功能
 */
const app = getApp()

Page({
  data: {
    statusBarHeight: 44,
    isLoggedIn: false,
    userInfo: null,
    version: '1.0.0',
    
    // 绑定信息
    phoneNumber: '',
    wechatId: '',
    alipayAccount: '',
    
    // 绑定弹窗
    showBindModal: false,
    bindType: '', // phone | wechat | alipay
    bindValue: ''
  },

  onLoad() {
    this.setData({
      statusBarHeight: app.globalData.statusBarHeight,
      isLoggedIn: app.globalData.isLoggedIn,
      userInfo: app.globalData.userInfo
    })
    this.loadBindingInfo()
  },

  onShow() {
    this.loadBindingInfo()
  },

  // 加载绑定信息
  loadBindingInfo() {
    const { userInfo, isLoggedIn } = app.globalData
    if (isLoggedIn && userInfo) {
      // 从本地存储或用户信息中获取绑定数据
      const phoneNumber = wx.getStorageSync('user_phone') || userInfo.phone || ''
      const wechatId = wx.getStorageSync('user_wechat') || userInfo.wechat || ''
      const alipayAccount = wx.getStorageSync('user_alipay') || userInfo.alipay || ''
      
      this.setData({
        isLoggedIn: true,
        userInfo,
        phoneNumber,
        wechatId,
        alipayAccount
      })
    }
  },

  // 绑定手机号
  bindPhone() {
    this.setData({
      showBindModal: true,
      bindType: 'phone',
      bindValue: ''
    })
  },

  // 绑定微信号
  bindWechat() {
    this.setData({
      showBindModal: true,
      bindType: 'wechat',
      bindValue: ''
    })
  },

  // 绑定支付宝
  bindAlipay() {
    this.setData({
      showBindModal: true,
      bindType: 'alipay',
      bindValue: ''
    })
  },

  // 输入绑定值
  onBindInput(e) {
    let value = e.detail.value
    if (this.data.bindType === 'phone') {
      value = value.replace(/\D/g, '').slice(0, 11)
    }
    this.setData({ bindValue: value })
  },

  // 确认绑定
  confirmBind() {
    const { bindType, bindValue } = this.data
    
    if (!bindValue) {
      wx.showToast({ title: '请输入内容', icon: 'none' })
      return
    }
    
    // 验证
    if (bindType === 'phone' && !/^1[3-9]\d{9}$/.test(bindValue)) {
      wx.showToast({ title: '请输入正确的手机号', icon: 'none' })
      return
    }
    
    if (bindType === 'wechat' && bindValue.length < 6) {
      wx.showToast({ title: '微信号至少6位', icon: 'none' })
      return
    }
    
    if (bindType === 'alipay' && !bindValue.includes('@') && !/^1[3-9]\d{9}$/.test(bindValue)) {
      wx.showToast({ title: '请输入正确的支付宝账号', icon: 'none' })
      return
    }
    
    // 保存绑定信息
    if (bindType === 'phone') {
      wx.setStorageSync('user_phone', bindValue)
      this.setData({ phoneNumber: bindValue })
    } else if (bindType === 'wechat') {
      wx.setStorageSync('user_wechat', bindValue)
      this.setData({ wechatId: bindValue })
    } else if (bindType === 'alipay') {
      wx.setStorageSync('user_alipay', bindValue)
      this.setData({ alipayAccount: bindValue })
    }
    
    this.setData({ showBindModal: false })
    wx.showToast({ title: '绑定成功', icon: 'success' })
  },

  // 关闭绑定弹窗
  closeBindModal() {
    this.setData({ showBindModal: false })
  },

  // 清除缓存
  clearCache() {
    wx.showModal({
      title: '清除缓存',
      content: '确定要清除本地缓存吗？',
      success: (res) => {
        if (res.confirm) {
          // 保留登录信息，只清除其他缓存
          const token = wx.getStorageSync('token')
          const userInfo = wx.getStorageSync('userInfo')
          wx.clearStorageSync()
          if (token) wx.setStorageSync('token', token)
          if (userInfo) wx.setStorageSync('userInfo', userInfo)
          wx.showToast({ title: '缓存已清除', icon: 'success' })
        }
      }
    })
  },

  // 退出登录
  handleLogout() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          app.logout()
          this.setData({ 
            isLoggedIn: false, 
            userInfo: null,
            phoneNumber: '',
            wechatId: '',
            alipayAccount: ''
          })
          wx.showToast({ title: '已退出登录', icon: 'success' })
          setTimeout(() => wx.navigateBack(), 1500)
        }
      }
    })
  },

  // 联系客服
  contactService() {
    wx.setClipboardData({
      data: '28533368',
      success: () => wx.showToast({ title: '客服微信已复制', icon: 'success' })
    })
  },

  // 阻止冒泡
  stopPropagation() {},

  goBack() { wx.navigateBack() }
})
