2026-01-21 15:49:12 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 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()
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化数据
|
2026-01-23 16:31:54 +08:00
|
|
|
|
async initData() {
|
2026-01-21 15:49:12 +08:00
|
|
|
|
const { isLoggedIn, userInfo } = app.globalData
|
|
|
|
|
|
if (isLoggedIn && userInfo) {
|
|
|
|
|
|
// 生成邀请码
|
2026-01-23 16:31:54 +08:00
|
|
|
|
const referralCode = userInfo.referralCode || 'SOUL' + (userInfo.id || Date.now().toString(36)).toUpperCase().slice(-6)
|
2026-01-21 15:49:12 +08:00
|
|
|
|
|
2026-01-23 16:31:54 +08:00
|
|
|
|
// 尝试从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('获取推广数据失败,使用本地数据')
|
|
|
|
|
|
}
|
2026-01-21 15:49:12 +08:00
|
|
|
|
|
2026-01-23 16:31:54 +08:00
|
|
|
|
// 使用真实数据或本地存储的数据
|
|
|
|
|
|
const storedBindings = wx.getStorageSync('referral_bindings') || []
|
|
|
|
|
|
const storedEarnings = wx.getStorageSync('referral_earnings') || { total: 0, pending: 0 }
|
2026-01-21 15:49:12 +08:00
|
|
|
|
|
2026-01-23 16:31:54 +08:00
|
|
|
|
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 = []
|
|
|
|
|
|
}
|
2026-01-21 15:49:12 +08:00
|
|
|
|
|
|
|
|
|
|
const expiringCount = activeBindings.filter(b => b.daysRemaining <= 7).length
|
|
|
|
|
|
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
isLoggedIn: true,
|
|
|
|
|
|
userInfo,
|
2026-01-23 16:31:54 +08:00
|
|
|
|
earnings: realData?.earnings || storedEarnings.total || 0,
|
|
|
|
|
|
pendingEarnings: realData?.pendingEarnings || storedEarnings.pending || 0,
|
|
|
|
|
|
referralCount: realData?.referralCount || activeBindings.length + convertedBindings.length,
|
2026-01-21 15:49:12 +08:00
|
|
|
|
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() {
|
2026-01-23 05:47:09 +08:00
|
|
|
|
const link = `https://soul.quwanzhi.com/?ref=${this.data.referralCode}`
|
2026-01-21 15:49:12 +08:00
|
|
|
|
wx.setClipboardData({
|
|
|
|
|
|
data: link,
|
|
|
|
|
|
success: () => wx.showToast({ title: '链接已复制', icon: 'success' })
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 生成海报
|
|
|
|
|
|
generatePoster() {
|
|
|
|
|
|
wx.showToast({ title: '海报功能开发中', icon: 'none' })
|
2026-01-23 16:31:54 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 分享到朋友圈
|
|
|
|
|
|
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: '知道了'
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
2026-01-21 15:49:12 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 提现
|
|
|
|
|
|
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()
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|