/** * 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() } })