/** * Soul创业实验 - 分销中心页 * 1:1还原Web版本 */ const app = getApp() Page({ data: { statusBarHeight: 44, isLoggedIn: false, userInfo: null, // 收益数据 earnings: 0, pendingEarnings: 0, distributorShare: 90, // 统计数据 referralCount: 0, expiringCount: 0, // 邀请码 referralCode: '', // 绑定用户 showBindingList: true, activeTab: 'active', activeBindings: [], convertedBindings: [], expiredBindings: [], currentBindings: [], totalBindings: 0 }, onLoad() { this.setData({ statusBarHeight: app.globalData.statusBarHeight }) this.initData() }, onShow() { this.initData() }, // 初始化数据 async initData() { const { isLoggedIn, userInfo } = app.globalData if (isLoggedIn && userInfo) { // 生成邀请码 const referralCode = userInfo.referralCode || 'SOUL' + (userInfo.id || Date.now().toString(36)).toUpperCase().slice(-6) // 尝试从API获取真实数据 let realData = null try { const res = await app.request('/api/referral/data', { method: 'GET', data: { userId: userInfo.id } }) if (res.success) { realData = res.data } } catch (e) { console.log('获取推广数据失败,使用本地数据') } // 使用真实数据或本地存储的数据 const storedBindings = wx.getStorageSync('referral_bindings') || [] const storedEarnings = wx.getStorageSync('referral_earnings') || { total: 0, pending: 0 } let activeBindings, convertedBindings, expiredBindings if (realData) { activeBindings = realData.activeBindings || [] convertedBindings = realData.convertedBindings || [] expiredBindings = realData.expiredBindings || [] } else if (storedBindings.length > 0) { // 使用本地存储的数据 activeBindings = storedBindings.filter(b => b.status === 'active') convertedBindings = storedBindings.filter(b => b.status === 'converted') expiredBindings = storedBindings.filter(b => b.status === 'expired') } else { // 默认空数据 activeBindings = [] convertedBindings = [] expiredBindings = [] } const expiringCount = activeBindings.filter(b => b.daysRemaining <= 7).length this.setData({ isLoggedIn: true, userInfo, earnings: realData?.earnings || storedEarnings.total || 0, pendingEarnings: realData?.pendingEarnings || storedEarnings.pending || 0, referralCount: realData?.referralCount || activeBindings.length + convertedBindings.length, referralCode, activeBindings, convertedBindings, expiredBindings, expiringCount, currentBindings: activeBindings, totalBindings: activeBindings.length + convertedBindings.length + expiredBindings.length }) } }, // 切换Tab switchTab(e) { const tab = e.currentTarget.dataset.tab let currentBindings = [] if (tab === 'active') { currentBindings = this.data.activeBindings } else if (tab === 'converted') { currentBindings = this.data.convertedBindings } else { currentBindings = this.data.expiredBindings } this.setData({ activeTab: tab, currentBindings }) }, // 切换绑定列表显示 toggleBindingList() { this.setData({ showBindingList: !this.data.showBindingList }) }, // 复制邀请链接 copyLink() { const link = `https://soul.quwanzhi.com/?ref=${this.data.referralCode}` wx.setClipboardData({ data: link, success: () => wx.showToast({ title: '链接已复制', icon: 'success' }) }) }, // 生成海报 generatePoster() { wx.showToast({ title: '海报功能开发中', icon: 'none' }) }, // 分享到朋友圈 shareToMoments() { const shareText = `🔥 发现一本超棒的创业实战书《一场Soul的创业实验》!\n\n💡 62个真实商业案例,从私域运营到资源整合,干货满满!\n\n🎁 通过我的链接购买立享5%优惠,我是 ${this.data.userInfo?.nickname || '卡若'} 推荐!\n\n👉 ${this.data.referralCode} 是我的专属邀请码\n\n#创业实验 #私域运营 #商业案例` wx.setClipboardData({ data: shareText, success: () => { wx.showModal({ title: '文案已复制', content: '请打开微信朋友圈,粘贴分享文案即可', showCancel: false, confirmText: '知道了' }) } }) }, // 提现 handleWithdraw() { const earnings = parseFloat(this.data.earnings) if (earnings < 10) { wx.showToast({ title: '满10元可提现', icon: 'none' }) return } wx.showToast({ title: '提现功能开发中', icon: 'none' }) }, // 显示通知 showNotification() { wx.showToast({ title: '暂无新消息', icon: 'none' }) }, // 显示设置 showSettings() { wx.showActionSheet({ itemList: ['自动提现设置', '收益通知设置'], success: (res) => { if (res.tapIndex === 0) { wx.showToast({ title: '自动提现功能开发中', icon: 'none' }) } else { wx.showToast({ title: '通知设置开发中', icon: 'none' }) } } }) }, // 分享 onShareAppMessage() { return { title: '📚 一场SOUL的创业实验场 - 来自派对房的真实商业故事', path: `/pages/index/index?ref=${this.data.referralCode}` } }, goBack() { wx.navigateBack() } })