diff --git a/src/dealer/index.tsx b/src/dealer/index.tsx index bdf8b3e..64b67a7 100644 --- a/src/dealer/index.tsx +++ b/src/dealer/index.tsx @@ -129,7 +129,7 @@ const DealerIndex: React.FC = () => { {dealerUser && ( - 佣金统计 + 资金统计 { - navigateToPage('/dealer/withdraw/index')}> + navigateToPage('/dealer/withdraw/index')}> @@ -225,7 +225,7 @@ const DealerIndex: React.FC = () => { - navigateToPage('/dealer/team/index')}> + navigateToPage('/dealer/team/index')}> @@ -233,7 +233,7 @@ const DealerIndex: React.FC = () => { - navigateToPage('/dealer/qrcode/index')}> + navigateToPage('/user/userVerify/index')}> diff --git a/src/hooks/useDealerUser.ts b/src/hooks/useDealerUser.ts index 062777d..172c722 100644 --- a/src/hooks/useDealerUser.ts +++ b/src/hooks/useDealerUser.ts @@ -22,17 +22,20 @@ export interface UseDealerUserReturn { */ export const useDealerUser = (): UseDealerUserReturn => { const [dealerUser, setDealerUser] = useState(null) - const [loading, setLoading] = useState(false) - const [error, setError] = useState(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(hasUser) + const [error, setError] = useState(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, diff --git a/src/pages/user/components/IsDealer.tsx b/src/pages/user/components/IsDealer.tsx index 899d75b..2af2f48 100644 --- a/src/pages/user/components/IsDealer.tsx +++ b/src/pages/user/components/IsDealer.tsx @@ -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 = () => { } extra={} - onClick={() => navTo('/dealer/apply/add', true)} + onClick={() => { + if (dealerLoading) { + Taro.showToast({ title: '正在加载身份信息,请稍等...', icon: 'none' }) + return + } + navTo('/dealer/apply/add', true) + }} />