import { useState, useEffect } from 'react' import { View } from '@tarojs/components' import Taro from '@tarojs/taro' import { Avatar, Empty, Tabs, TabPane } from '@nutui/nutui-react-taro' import './index.scss' interface TeamMember { id: string nickname: string avatar: string joinTime: string level: number orderCount: number totalCommission: number status: 'active' | 'inactive' } interface TeamStats { totalMembers: number activeMembers: number level1Members: number level2Members: number totalCommission: number monthCommission: number } function MyTeam() { const [activeTab, setActiveTab] = useState('0') const [members, setMembers] = useState([]) const [stats, setStats] = useState({ totalMembers: 0, activeMembers: 0, level1Members: 0, level2Members: 0, totalCommission: 0, monthCommission: 0 }) const [loading, setLoading] = useState(true) useEffect(() => { Taro.setNavigationBarTitle({ title: '我的团队' }) loadTeamData() }, []) const loadTeamData = async () => { try { setLoading(true) // 模拟数据 const mockMembers: TeamMember[] = [ { id: '1', nickname: '张小明', avatar: 'https://img12.360buyimg.com/imagetools/jfs/t1/143702/31/16654/116794/5fc6f541Edebf8a57/4138097748889987.png', joinTime: '2024-01-15', level: 1, orderCount: 15, totalCommission: 150.50, status: 'active' }, { id: '2', nickname: '李小红', avatar: 'https://img12.360buyimg.com/imagetools/jfs/t1/143702/31/16654/116794/5fc6f541Edebf8a57/4138097748889987.png', joinTime: '2024-01-10', level: 1, orderCount: 8, totalCommission: 89.20, status: 'active' }, { id: '3', nickname: '王小华', avatar: 'https://img12.360buyimg.com/imagetools/jfs/t1/143702/31/16654/116794/5fc6f541Edebf8a57/4138097748889987.png', joinTime: '2024-01-08', level: 2, orderCount: 3, totalCommission: 25.80, status: 'inactive' }, { id: '4', nickname: '赵小刚', avatar: 'https://img12.360buyimg.com/imagetools/jfs/t1/143702/31/16654/116794/5fc6f541Edebf8a57/4138097748889987.png', joinTime: '2024-01-05', level: 2, orderCount: 12, totalCommission: 98.60, status: 'active' } ] // 计算统计数据 const totalMembers = mockMembers.length const activeMembers = mockMembers.filter(m => m.status === 'active').length const level1Members = mockMembers.filter(m => m.level === 1).length const level2Members = mockMembers.filter(m => m.level === 2).length const totalCommission = mockMembers.reduce((sum, m) => sum + m.totalCommission, 0) setTimeout(() => { setMembers(mockMembers) setStats({ totalMembers, activeMembers, level1Members, level2Members, totalCommission, monthCommission: totalCommission * 0.3 // 模拟本月佣金 }) setLoading(false) }, 1000) } catch (error) { console.error('加载团队数据失败:', error) setLoading(false) } } const getFilteredMembers = () => { switch (activeTab) { case '1': return members.filter(member => member.level === 1) case '2': return members.filter(member => member.level === 2) case '3': return members.filter(member => member.status === 'active') default: return members } } const handleMemberClick = (member: TeamMember) => { Taro.showModal({ title: '成员详情', content: ` 昵称:${member.nickname} 加入时间:${member.joinTime} 等级:${member.level}级下线 订单数量:${member.orderCount} 累计佣金:¥${member.totalCommission.toFixed(2)} 状态:${member.status === 'active' ? '活跃' : '不活跃'} `.trim(), showCancel: false }) } if (loading) { return ( 加载中... ) } return ( {/* 团队统计 */} {stats.totalMembers} 团队总人数 {stats.activeMembers} 活跃成员 ¥{stats.totalCommission.toFixed(2)} 累计佣金 ¥{stats.monthCommission.toFixed(2)} 本月佣金 {/* 等级统计 */} 一级下线 {stats.level1Members}人 二级下线 {stats.level2Members}人 {/* 成员列表 */} setActiveTab(value)}> {getFilteredMembers().length === 0 ? ( ) : ( getFilteredMembers().map((member) => ( handleMemberClick(member)} > {member.nickname} {member.level}级 订单:{member.orderCount} 佣金:¥{member.totalCommission.toFixed(2)} 加入时间:{member.joinTime} {member.status === 'active' ? '活跃' : '不活跃'} )) )} ) } export default MyTeam