Files
soul/miniprogram/pages/referral/referral.js

161 lines
4.1 KiB
JavaScript
Raw Normal View History

/**
* 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()
},
// 初始化数据
initData() {
const { isLoggedIn, userInfo } = app.globalData
if (isLoggedIn && userInfo) {
// 生成邀请码
const referralCode = userInfo.referralCode || 'REFM' + (userInfo.id || Date.now().toString(36)).toUpperCase().slice(-6)
// 模拟绑定用户数据
const activeBindings = [
{ id: '1', nickname: '小明', bindingDate: '2025/12/25', daysRemaining: 5, status: 'active' },
{ id: '2', nickname: '小红', bindingDate: '2026/1/9', daysRemaining: 20, status: 'active' },
{ id: '3', nickname: '阿强', bindingDate: '2025/12/22', daysRemaining: 2, status: 'active' }
]
const convertedBindings = [
{ id: '4', nickname: '小李', bindingDate: '2025/12/10', commission: '8.91', orderAmount: '9.90', status: 'converted' }
]
const expiredBindings = [
{ id: '5', nickname: '小王', bindingDate: '2025/11/15', status: 'expired' }
]
const expiringCount = activeBindings.filter(b => b.daysRemaining <= 7).length
this.setData({
isLoggedIn: true,
userInfo,
earnings: (userInfo.earnings || 0).toFixed(2),
pendingEarnings: (userInfo.pendingEarnings || 0).toFixed(2),
referralCount: userInfo.referralCount || 0,
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.ckb.fit/?ref=${this.data.referralCode}`
wx.setClipboardData({
data: link,
success: () => wx.showToast({ title: '链接已复制', icon: 'success' })
})
},
// 生成海报
generatePoster() {
wx.showToast({ title: '海报功能开发中', icon: 'none' })
},
// 提现
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()
}
})