From 648a61d09abe5b11af0e8056a2477e72689faad5 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: Thu, 11 Sep 2025 14:50:05 +0800 Subject: [PATCH] =?UTF-8?q?fix(contact-import):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E6=9C=AA=E4=BD=BF=E7=94=A8=E7=9A=84ContactImportTask=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(traffic-pool): 添加tags存在性检查避免报错 feat(traffic-pool): 添加请求频率限制错误处理 refactor(traffic-pool): 使用防抖优化搜索功能 --- .../mine/traffic-pool/list/dataAnyx.tsx | 9 +++++++- .../mobile/mine/traffic-pool/list/index.tsx | 23 +++++++++++++++---- .../workspace/contact-import/detail/index.tsx | 2 +- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/Cunkebao/src/pages/mobile/mine/traffic-pool/list/dataAnyx.tsx b/Cunkebao/src/pages/mobile/mine/traffic-pool/list/dataAnyx.tsx index e0c7514f..8a5f7edc 100644 --- a/Cunkebao/src/pages/mobile/mine/traffic-pool/list/dataAnyx.tsx +++ b/Cunkebao/src/pages/mobile/mine/traffic-pool/list/dataAnyx.tsx @@ -34,7 +34,9 @@ export function useTrafficPoolListLogic() { const [showStats, setShowStats] = useState(false); const stats = useMemo(() => { const total = list.length; - const highValue = list.filter(u => u.tags.includes("高价值客户池")).length; + const highValue = list.filter( + u => u.tags && u.tags.includes("高价值客户池"), + ).length; const added = list.filter(u => u.status === 1).length; const pending = list.filter(u => u.status === 0).length; const failed = list.filter(u => u.status === -1).length; @@ -64,6 +66,11 @@ export function useTrafficPoolListLogic() { const res = await fetchTrafficPoolList(params); setList(res.list || []); setTotal(res.total || 0); + } catch (error) { + // 忽略请求过于频繁的错误,避免页面崩溃 + if (error !== "请求过于频繁,请稍后再试") { + console.error("获取列表失败:", error); + } } finally { setLoading(false); } diff --git a/Cunkebao/src/pages/mobile/mine/traffic-pool/list/index.tsx b/Cunkebao/src/pages/mobile/mine/traffic-pool/list/index.tsx index e3bacf8f..0c08b5e6 100644 --- a/Cunkebao/src/pages/mobile/mine/traffic-pool/list/index.tsx +++ b/Cunkebao/src/pages/mobile/mine/traffic-pool/list/index.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useCallback, useEffect, useState } from "react"; import Layout from "@/components/Layout/Layout"; import { SearchOutlined, @@ -25,7 +25,6 @@ const TrafficPoolList: React.FC = () => { list, page, setPage, - pageSize, total, search, setSearch, @@ -52,6 +51,22 @@ const TrafficPoolList: React.FC = () => { getList, } = useTrafficPoolListLogic(); + // 搜索防抖处理 + const [searchInput, setSearchInput] = useState(search); + + const debouncedSearch = useCallback(() => { + const timer = setTimeout(() => { + setSearch(searchInput); + }, 500); // 500ms 防抖延迟 + + return () => clearTimeout(timer); + }, [searchInput, setSearch]); + + useEffect(() => { + const cleanup = debouncedSearch(); + return cleanup; + }, [debouncedSearch]); + return ( {
setSearch(e.target.value)} + value={searchInput} + onChange={e => setSearchInput(e.target.value)} prefix={} allowClear size="large" diff --git a/Cunkebao/src/pages/mobile/workspace/contact-import/detail/index.tsx b/Cunkebao/src/pages/mobile/workspace/contact-import/detail/index.tsx index 90e1319b..e82d5529 100644 --- a/Cunkebao/src/pages/mobile/workspace/contact-import/detail/index.tsx +++ b/Cunkebao/src/pages/mobile/workspace/contact-import/detail/index.tsx @@ -21,7 +21,7 @@ import { triggerImport, toggleContactImportTask, } from "../list/api"; -import { ContactImportTask, ContactImportRecord } from "../list/data"; +import { ContactImportRecord } from "../list/data"; import { PlayCircleOutlined, PauseCircleOutlined,