From c78134f05cc4537d1ce8194fc359f8c52bc3a3c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B6=85=E7=BA=A7=E8=80=81=E7=99=BD=E5=85=94?= Date: Wed, 30 Jul 2025 14:57:03 +0800 Subject: [PATCH] =?UTF-8?q?FEAT=20=3D>=20=E6=9B=B4=E6=96=B0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E7=BB=91=E5=AE=9A=E5=BC=95=E5=AF=BC=E9=A1=B5=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=94=A8=E6=88=B7=E7=8A=B6=E6=80=81=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=80=BB=E6=95=B0=E6=9B=BF=E4=BB=A3API?= =?UTF-8?q?=E8=B0=83=E7=94=A8=EF=BC=8C=E6=8F=90=E5=8D=87=E6=80=A7=E8=83=BD?= =?UTF-8?q?=E5=92=8C=E7=94=A8=E6=88=B7=E4=BD=93=E9=AA=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nkebao/src/pages/guide/index.tsx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/nkebao/src/pages/guide/index.tsx b/nkebao/src/pages/guide/index.tsx index 8e1e1ea8..ce817144 100644 --- a/nkebao/src/pages/guide/index.tsx +++ b/nkebao/src/pages/guide/index.tsx @@ -8,7 +8,6 @@ import { QrcodeOutlined, } from "@ant-design/icons"; import Layout from "@/components/Layout/Layout"; -import { getDashboard } from "@/pages/mobile/home/api"; import { fetchDeviceQRCode, addDeviceByImei } from "./api"; import { useUserStore } from "@/store/module/user"; import styles from "./index.module.scss"; @@ -16,8 +15,8 @@ import styles from "./index.module.scss"; const Guide: React.FC = () => { const navigate = useNavigate(); const { user } = useUserStore(); - const [loading, setLoading] = useState(true); - const [deviceCount, setDeviceCount] = useState(0); + const [loading, setLoading] = useState(false); + const [deviceCount, setDeviceCount] = useState(user?.deviceTotal || 0); // 添加设备弹窗状态 const [addVisible, setAddVisible] = useState(false); @@ -31,15 +30,14 @@ const Guide: React.FC = () => { // 轮询监听相关 const [isPolling, setIsPolling] = useState(false); const pollingRef = useRef(null); - const initialDeviceCountRef = useRef(0); + const initialDeviceCountRef = useRef(deviceCount); // 检查设备绑定状态 const checkDeviceStatus = useCallback(async () => { try { setLoading(true); - const dashboardData = await getDashboard(); - const deviceNum = dashboardData?.deviceNum || 0; - + // 使用store中的设备数量 + const deviceNum = user?.deviceTotal || 0; setDeviceCount(deviceNum); // 如果已有设备,直接跳转到首页 @@ -56,7 +54,7 @@ const Guide: React.FC = () => { } finally { setLoading(false); } - }, []); + }, [user?.deviceTotal, navigate]); useEffect(() => { checkDeviceStatus(); @@ -71,8 +69,10 @@ const Guide: React.FC = () => { const pollDeviceStatus = async () => { try { - const dashboardData = await getDashboard(); - const currentDeviceCount = dashboardData?.deviceNum || 0; + // 这里可以调用一个简单的设备数量接口来检查是否有新设备 + // 或者使用其他方式检测设备状态变化 + // 暂时使用store中的数量,实际项目中可能需要调用专门的接口 + const currentDeviceCount = user?.deviceTotal || 0; // 如果设备数量增加了,说明有新设备添加成功 if (currentDeviceCount > initialDeviceCountRef.current) { @@ -95,7 +95,7 @@ const Guide: React.FC = () => { // 每3秒检查一次设备状态 pollingRef.current = setInterval(pollDeviceStatus, 3000); - }, [isPolling, deviceCount]); + }, [isPolling, deviceCount, user?.deviceTotal]); // 停止轮询 const stopPolling = useCallback(() => { @@ -120,7 +120,7 @@ const Guide: React.FC = () => { setQrLoading(true); setQrCode(null); try { - const accountId = user.s2_accountId; + const accountId = user?.s2_accountId; if (!accountId) throw new Error("未获取到用户信息"); const res = await fetchDeviceQRCode(accountId); setQrCode(res.qrCode);