201 lines
5.4 KiB
JavaScript
201 lines
5.4 KiB
JavaScript
// pages/zuzhangduan/zuzhangduan.js
|
||
import request from '../../utils/request.js'
|
||
|
||
Page({
|
||
data: {
|
||
// 页面状态
|
||
isZuzhang: false,
|
||
isLoading: false,
|
||
|
||
// 邀请码相关
|
||
inviteCode: '',
|
||
|
||
// 用户信息
|
||
uid: '',
|
||
nicheng: '',
|
||
avatarUrl: '',
|
||
|
||
// 组长信息
|
||
ketixian: '0.00', // 可提现金额
|
||
guanshiCount: 0, // 邀请的管事数量
|
||
fenhongZonge: '0.00', // 分红总额
|
||
},
|
||
|
||
onLoad() {
|
||
this.checkLoginStatus()
|
||
},
|
||
|
||
onShow() {
|
||
this.registerNotificationComponent()
|
||
if (this.data.isZuzhang) {
|
||
this.getZuzhangInfo()
|
||
}
|
||
},
|
||
|
||
// 检查登录状态
|
||
checkLoginStatus() {
|
||
const token = wx.getStorageSync('token')
|
||
if (!token) {
|
||
wx.showModal({
|
||
title: '提示',
|
||
content: '您尚未登录,请先登录',
|
||
confirmText: '去登录',
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
wx.reLaunch({ url: '/pages/gerenzhongxin/gerenzhongxin' })
|
||
}
|
||
}
|
||
})
|
||
return false
|
||
}
|
||
this.checkZuzhangStatus()
|
||
return true
|
||
},
|
||
|
||
// 检查组长状态
|
||
checkZuzhangStatus() {
|
||
try {
|
||
const zuzhangstatus = wx.getStorageSync('zuzhangstatus')
|
||
if (zuzhangstatus === 1) {
|
||
this.setData({ isZuzhang: true })
|
||
this.loadUserInfo()
|
||
this.getZuzhangInfo()
|
||
} else {
|
||
this.setData({ isZuzhang: false })
|
||
}
|
||
} catch (error) {
|
||
console.error('读取缓存失败:', error)
|
||
this.setData({ isZuzhang: false })
|
||
}
|
||
},
|
||
|
||
// 加载用户信息
|
||
loadUserInfo() {
|
||
const app = getApp()
|
||
const globalData = app.globalData || {}
|
||
|
||
const touxiang = wx.getStorageSync('touxiang')
|
||
const ossImageUrl = globalData.ossImageUrl || ''
|
||
const morentouxiang = globalData.morentouxiang || 'avatar/default.jpg'
|
||
|
||
let avatarUrl = ''
|
||
if (touxiang) {
|
||
avatarUrl = ossImageUrl + (touxiang.startsWith('/') ? touxiang : '/' + touxiang)
|
||
} else {
|
||
avatarUrl = ossImageUrl + (morentouxiang.startsWith('/') ? morentouxiang : '/' + morentouxiang)
|
||
}
|
||
|
||
const uid = wx.getStorageSync('uid') || ''
|
||
const nicheng = wx.getStorageSync('nicheng') || globalData.nicheng || ''
|
||
|
||
this.setData({ avatarUrl, uid, nicheng })
|
||
},
|
||
|
||
// 注册通知组件
|
||
registerNotificationComponent() {
|
||
const app = getApp()
|
||
const notificationComp = this.selectComponent('#global-notification')
|
||
if (notificationComp && notificationComp.showNotification) {
|
||
app.globalData.globalNotification = {
|
||
show: (data) => notificationComp.showNotification(data),
|
||
hide: () => notificationComp.hideNotification()
|
||
}
|
||
}
|
||
},
|
||
|
||
// 获取组长信息(刷新)
|
||
async getZuzhangInfo() {
|
||
this.setData({ isLoading: true })
|
||
try {
|
||
const res = await request({
|
||
url: '/yonghu/zuzhangxinxi',
|
||
method: 'POST'
|
||
})
|
||
if (res && res.data.code === 200) {
|
||
const data = res.data.data
|
||
this.setData({
|
||
ketixian: data.ketixian || '0.00',
|
||
guanshiCount: data.guanshiCount || 0,
|
||
fenhongZonge: data.fenhongZonge || '0.00',
|
||
isLoading: false
|
||
})
|
||
wx.showToast({ title: '刷新成功', icon: 'success', duration: 1500 })
|
||
} else {
|
||
throw new Error(res?.data?.msg || '获取信息失败')
|
||
}
|
||
} catch (error) {
|
||
console.error('获取组长信息失败:', error)
|
||
this.setData({ isLoading: false })
|
||
wx.showToast({ title: error.message || '刷新失败', icon: 'none' })
|
||
}
|
||
},
|
||
|
||
// 刷新按钮点击
|
||
refreshZuzhangInfo() {
|
||
this.getZuzhangInfo()
|
||
},
|
||
|
||
// 邀请码输入
|
||
onInviteCodeInput(e) {
|
||
this.setData({ inviteCode: e.detail.value.trim() })
|
||
},
|
||
|
||
// 注册组长
|
||
async onRegister() {
|
||
const { inviteCode } = this.data
|
||
if (!inviteCode) {
|
||
wx.showToast({ title: '请输入邀请码', icon: 'none', duration: 2000 })
|
||
return
|
||
}
|
||
if (inviteCode.length > 100) {
|
||
wx.showToast({ title: '邀请码不能超过100字符', icon: 'none', duration: 2000 })
|
||
return
|
||
}
|
||
|
||
this.setData({ isLoading: true })
|
||
try {
|
||
const res = await request({
|
||
url: '/yonghu/zuzhangzhuce',
|
||
method: 'POST',
|
||
data: { inviteCode }
|
||
})
|
||
if (res && res.data.code === 200) {
|
||
wx.setStorageSync('zuzhangstatus', 1)
|
||
const data = res.data.data
|
||
this.setData({
|
||
isZuzhang: true,
|
||
ketixian: data.ketixian || '0.00',
|
||
guanshiCount: data.guanshiCount || 0,
|
||
fenhongZonge: data.fenhongZonge || '0.00',
|
||
isLoading: false
|
||
})
|
||
this.loadUserInfo()
|
||
wx.showToast({ title: '注册成功!', icon: 'success', duration: 2000 })
|
||
} else {
|
||
throw new Error(res?.data?.msg || '注册失败')
|
||
}
|
||
} catch (error) {
|
||
console.error('注册失败:', error)
|
||
this.setData({ isLoading: false })
|
||
wx.showToast({ title: error.message || '注册失败', icon: 'error' })
|
||
}
|
||
},
|
||
|
||
// 🔥【修改】跳转到提现页面,传递from=zuzhang参数
|
||
goToWithdraw() {
|
||
const { ketixian } = this.data
|
||
wx.navigateTo({
|
||
url: `/pages/tixian/tixian?from=zuzhang&amount=${ketixian}`
|
||
})
|
||
},
|
||
|
||
// 跳转到分红记录页面
|
||
goToFenhongJilu() {
|
||
wx.navigateTo({ url: '/pages/zzfhjilu/zzfhjilu' })
|
||
},
|
||
|
||
// 跳转到邀请管事页面
|
||
goToYaoqingGuanshi() {
|
||
wx.navigateTo({ url: '/pages/yqguanshi/yqguanshi' })
|
||
}
|
||
}) |