refactor(dealer): 精简团队页面代码
- 移除了不必要的状态变量和方法 - 删除了未使用的团队统计数据相关代码 - 简化了团队成员列表的渲染逻辑 - 更新了 IsDealer 组件中的文本显示
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import React, {useState, useEffect, useCallback} from 'react'
|
import React, {useState, useEffect, useCallback} from 'react'
|
||||||
import {View, Text} from '@tarojs/components'
|
import {View, Text} from '@tarojs/components'
|
||||||
import {Space, Tabs, Avatar, Tag, Progress, Loading, PullToRefresh} from '@nutui/nutui-react-taro'
|
import {Space, Avatar, Loading} from '@nutui/nutui-react-taro'
|
||||||
import {User, Star, StarFill} from '@nutui/icons-react-taro'
|
import {User} from '@nutui/icons-react-taro'
|
||||||
import Taro from '@tarojs/taro'
|
import Taro from '@tarojs/taro'
|
||||||
import {useDealerUser} from '@/hooks/useDealerUser'
|
import {useDealerUser} from '@/hooks/useDealerUser'
|
||||||
import {listShopDealerReferee} from '@/api/shop/shopDealerReferee'
|
import {listShopDealerReferee} from '@/api/shop/shopDealerReferee'
|
||||||
@@ -19,18 +19,7 @@ interface TeamMemberWithStats extends ShopDealerReferee {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const DealerTeam: React.FC = () => {
|
const DealerTeam: React.FC = () => {
|
||||||
const [activeTab, setActiveTab] = useState('0')
|
|
||||||
const [loading, setLoading] = useState<boolean>(false)
|
|
||||||
const [refreshing, setRefreshing] = useState<boolean>(false)
|
|
||||||
const [teamMembers, setTeamMembers] = useState<TeamMemberWithStats[]>([])
|
const [teamMembers, setTeamMembers] = useState<TeamMemberWithStats[]>([])
|
||||||
const [teamStats, setTeamStats] = useState({
|
|
||||||
total: 0,
|
|
||||||
firstLevel: 0,
|
|
||||||
secondLevel: 0,
|
|
||||||
thirdLevel: 0,
|
|
||||||
monthlyCommission: '0.00'
|
|
||||||
})
|
|
||||||
|
|
||||||
const {dealerUser} = useDealerUser()
|
const {dealerUser} = useDealerUser()
|
||||||
|
|
||||||
// 获取团队数据
|
// 获取团队数据
|
||||||
@@ -38,7 +27,6 @@ const DealerTeam: React.FC = () => {
|
|||||||
if (!dealerUser?.userId) return
|
if (!dealerUser?.userId) return
|
||||||
|
|
||||||
try {
|
try {
|
||||||
setLoading(true)
|
|
||||||
|
|
||||||
// 获取团队成员关系
|
// 获取团队成员关系
|
||||||
const refereeResult = await listShopDealerReferee({
|
const refereeResult = await listShopDealerReferee({
|
||||||
@@ -102,18 +90,6 @@ const DealerTeam: React.FC = () => {
|
|||||||
|
|
||||||
setTeamMembers(memberStats)
|
setTeamMembers(memberStats)
|
||||||
|
|
||||||
// 计算统计数据
|
|
||||||
const stats = {
|
|
||||||
total: memberStats.length,
|
|
||||||
firstLevel: memberStats.filter(m => m.level === 1).length,
|
|
||||||
secondLevel: memberStats.filter(m => m.level === 2).length,
|
|
||||||
thirdLevel: memberStats.filter(m => m.level === 3).length,
|
|
||||||
monthlyCommission: memberStats.reduce((sum, member) =>
|
|
||||||
sum + parseFloat(member.commission || '0'), 0
|
|
||||||
).toFixed(2)
|
|
||||||
}
|
|
||||||
|
|
||||||
setTeamStats(stats)
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('获取团队数据失败:', error)
|
console.error('获取团队数据失败:', error)
|
||||||
@@ -121,18 +97,9 @@ const DealerTeam: React.FC = () => {
|
|||||||
title: '获取团队数据失败',
|
title: '获取团队数据失败',
|
||||||
icon: 'error'
|
icon: 'error'
|
||||||
})
|
})
|
||||||
} finally {
|
|
||||||
setLoading(false)
|
|
||||||
}
|
}
|
||||||
}, [dealerUser?.userId])
|
}, [dealerUser?.userId])
|
||||||
|
|
||||||
// 刷新数据
|
|
||||||
const handleRefresh = async () => {
|
|
||||||
setRefreshing(true)
|
|
||||||
await fetchTeamData()
|
|
||||||
setRefreshing(false)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化加载数据
|
// 初始化加载数据
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (dealerUser?.userId) {
|
if (dealerUser?.userId) {
|
||||||
@@ -140,32 +107,6 @@ const DealerTeam: React.FC = () => {
|
|||||||
}
|
}
|
||||||
}, [fetchTeamData])
|
}, [fetchTeamData])
|
||||||
|
|
||||||
const getLevelColor = (level: number) => {
|
|
||||||
switch (level) {
|
|
||||||
case 1:
|
|
||||||
return '#f59e0b'
|
|
||||||
case 2:
|
|
||||||
return '#8b5cf6'
|
|
||||||
case 3:
|
|
||||||
return '#ec4899'
|
|
||||||
default:
|
|
||||||
return '#6b7280'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const getLevelIcon = (level: number) => {
|
|
||||||
switch (level) {
|
|
||||||
case 1:
|
|
||||||
return <StarFill color={getLevelColor(level)} size="16"/>
|
|
||||||
case 2:
|
|
||||||
return <Star color={getLevelColor(level)} size="16"/>
|
|
||||||
case 3:
|
|
||||||
return <User color={getLevelColor(level)} size="16"/>
|
|
||||||
default:
|
|
||||||
return <User color={getLevelColor(level)} size="16"/>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const renderMemberItem = (member: TeamMemberWithStats) => (
|
const renderMemberItem = (member: TeamMemberWithStats) => (
|
||||||
<View key={member.id} className="bg-white rounded-lg p-4 mb-3 shadow-sm">
|
<View key={member.id} className="bg-white rounded-lg p-4 mb-3 shadow-sm">
|
||||||
<View className="flex items-center mb-3">
|
<View className="flex items-center mb-3">
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ const UserCell = () => {
|
|||||||
<View style={{display: 'inline-flex', alignItems: 'center'}}>
|
<View style={{display: 'inline-flex', alignItems: 'center'}}>
|
||||||
<Reward className={'text-orange-100 '} size={16}/>
|
<Reward className={'text-orange-100 '} size={16}/>
|
||||||
<Text style={{fontSize: '16px'}}
|
<Text style={{fontSize: '16px'}}
|
||||||
className={'pl-3 text-orange-100 font-medium'}>分销中心</Text>
|
className={'pl-3 text-orange-100 font-medium'}>管理中心</Text>
|
||||||
{/*<Text className={'text-white opacity-80 pl-3'}>门店核销</Text>*/}
|
{/*<Text className={'text-white opacity-80 pl-3'}>门店核销</Text>*/}
|
||||||
</View>
|
</View>
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user