forked from gxwebsoft/mp-10550
fix(dealer): 优化经销商模块文字显示和加载逻辑
- 将"佣金统计"改为"资金统计" - 将"提现申请"改为"申请提现" - 将"我的邀请"改为"我的团队" - 将"我的邀请码"改为"实名认证"并调整跳转路径 - 在经销商用户钩子中添加加载状态控制 - 防止快速点击导致的路由错误 - 优化用户登录状态检测逻辑 - 改进初始化加载时的数据处理流程
This commit is contained in:
@@ -129,7 +129,7 @@ const DealerIndex: React.FC = () => {
|
||||
{dealerUser && (
|
||||
<View className="mx-4 -mt-6 rounded-xl p-4 relative z-10" style={cardGradients.elevated}>
|
||||
<View className="mb-4">
|
||||
<Text className="font-semibold text-gray-800">佣金统计</Text>
|
||||
<Text className="font-semibold text-gray-800">资金统计</Text>
|
||||
</View>
|
||||
<View className="grid grid-cols-3 gap-3">
|
||||
<View className="text-center p-3 rounded-lg flex flex-col" style={{
|
||||
@@ -217,7 +217,7 @@ const DealerIndex: React.FC = () => {
|
||||
</View>
|
||||
</Grid.Item>
|
||||
|
||||
<Grid.Item text={'提现申请'} onClick={() => navigateToPage('/dealer/withdraw/index')}>
|
||||
<Grid.Item text={'申请提现'} onClick={() => navigateToPage('/dealer/withdraw/index')}>
|
||||
<View className="text-center">
|
||||
<View className="w-12 h-12 bg-green-50 rounded-xl flex items-center justify-center mx-auto mb-2">
|
||||
<Purse color="#10b981" size="20"/>
|
||||
@@ -225,7 +225,7 @@ const DealerIndex: React.FC = () => {
|
||||
</View>
|
||||
</Grid.Item>
|
||||
|
||||
<Grid.Item text={'我的邀请'} onClick={() => navigateToPage('/dealer/team/index')}>
|
||||
<Grid.Item text={'我的团队'} onClick={() => navigateToPage('/dealer/team/index')}>
|
||||
<View className="text-center">
|
||||
<View className="w-12 h-12 bg-purple-50 rounded-xl flex items-center justify-center mx-auto mb-2">
|
||||
<People color="#8b5cf6" size="20"/>
|
||||
@@ -233,7 +233,7 @@ const DealerIndex: React.FC = () => {
|
||||
</View>
|
||||
</Grid.Item>
|
||||
|
||||
<Grid.Item text={'我的邀请码'} onClick={() => navigateToPage('/dealer/qrcode/index')}>
|
||||
<Grid.Item text={'实名认证'} onClick={() => navigateToPage('/user/userVerify/index')}>
|
||||
<View className="text-center">
|
||||
<View className="w-12 h-12 bg-orange-50 rounded-xl flex items-center justify-center mx-auto mb-2">
|
||||
<Dongdong color="#f59e0b" size="20"/>
|
||||
|
||||
@@ -22,17 +22,20 @@ export interface UseDealerUserReturn {
|
||||
*/
|
||||
export const useDealerUser = (): UseDealerUserReturn => {
|
||||
const [dealerUser, setDealerUser] = useState<ShopDealerUser | null>(null)
|
||||
const [loading, setLoading] = useState(false)
|
||||
const [error, setError] = useState<string | null>(null)
|
||||
const rawUserId = Taro.getStorageSync('UserId')
|
||||
const userId = Number(rawUserId)
|
||||
const hasUser = Number.isFinite(userId) && userId > 0
|
||||
|
||||
const userId = Taro.getStorageSync('UserId');
|
||||
// If user is logged in, start in loading state to avoid "click too fast" mis-routing.
|
||||
const [loading, setLoading] = useState<boolean>(hasUser)
|
||||
const [error, setError] = useState<string | null>(null)
|
||||
|
||||
// 获取经销商用户数据
|
||||
const fetchDealerData = useCallback(async () => {
|
||||
|
||||
if (!userId) {
|
||||
console.log('🔍 用户未登录,提前返回')
|
||||
if (!hasUser) {
|
||||
setDealerUser(null)
|
||||
setLoading(false)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -55,7 +58,7 @@ export const useDealerUser = (): UseDealerUserReturn => {
|
||||
} finally {
|
||||
setLoading(false)
|
||||
}
|
||||
}, [userId])
|
||||
}, [hasUser, userId])
|
||||
|
||||
// 刷新数据
|
||||
const refresh = useCallback(async () => {
|
||||
@@ -64,13 +67,14 @@ export const useDealerUser = (): UseDealerUserReturn => {
|
||||
|
||||
// 初始化加载数据
|
||||
useEffect(() => {
|
||||
if (userId) {
|
||||
console.log('🔍 调用 fetchDealerData')
|
||||
if (hasUser) {
|
||||
fetchDealerData()
|
||||
} else {
|
||||
console.log('🔍 用户ID不存在,不调用 fetchDealerData')
|
||||
setDealerUser(null)
|
||||
setError(null)
|
||||
setLoading(false)
|
||||
}
|
||||
}, [fetchDealerData, userId])
|
||||
}, [fetchDealerData, hasUser])
|
||||
|
||||
return {
|
||||
dealerUser,
|
||||
|
||||
@@ -6,12 +6,13 @@ import {useUser} from '@/hooks/useUser'
|
||||
import {useDealerUser} from "@/hooks/useDealerUser";
|
||||
import {useThemeStyles} from "@/hooks/useTheme";
|
||||
import { useConfig } from "@/hooks/useConfig"; // 使用新的自定义Hook
|
||||
import Taro from '@tarojs/taro'
|
||||
|
||||
const IsDealer = () => {
|
||||
const themeStyles = useThemeStyles();
|
||||
const { config } = useConfig(); // 使用新的Hook
|
||||
const {isSuperAdmin} = useUser();
|
||||
const {dealerUser} = useDealerUser()
|
||||
const {dealerUser, loading: dealerLoading} = useDealerUser()
|
||||
|
||||
/**
|
||||
* 管理中心
|
||||
@@ -80,7 +81,13 @@ const IsDealer = () => {
|
||||
</View>
|
||||
}
|
||||
extra={<ArrowRight color="#cccccc" size={18}/>}
|
||||
onClick={() => navTo('/dealer/apply/add', true)}
|
||||
onClick={() => {
|
||||
if (dealerLoading) {
|
||||
Taro.showToast({ title: '正在加载身份信息,请稍等...', icon: 'none' })
|
||||
return
|
||||
}
|
||||
navTo('/dealer/apply/add', true)
|
||||
}}
|
||||
/>
|
||||
</View>
|
||||
</>
|
||||
|
||||
Reference in New Issue
Block a user