From 08246b5bd8f25d85e120a4dd4afea79ba60d4e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AC=94=E8=AE=B0=E6=9C=AC=E9=87=8C=E7=9A=84=E6=B0=B8?= =?UTF-8?q?=E5=B9=B3?= Date: Wed, 23 Jul 2025 15:35:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9C=AC=E6=AC=A1=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=86=85=E5=AE=B9=E5=A6=82=E4=B8=8B=20?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=8F=B7=E8=AF=A6=E6=83=85=E5=85=88=E6=8E=A5?= =?UTF-8?q?=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/wechat-accounts/detail/api.ts | 11 +++-- .../pages/wechat-accounts/detail/index.tsx | 49 +++++++++++++------ 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/nkebao/src/pages/wechat-accounts/detail/api.ts b/nkebao/src/pages/wechat-accounts/detail/api.ts index 6fad702e..40757d27 100644 --- a/nkebao/src/pages/wechat-accounts/detail/api.ts +++ b/nkebao/src/pages/wechat-accounts/detail/api.ts @@ -2,7 +2,12 @@ import request from "@/api/request"; // 获取微信号详情 export function getWechatAccountDetail(id: string) { - return request("/api/WechatAccount/detail", { id }, "GET"); + return request("/WechatAccount/detail", { id }, "GET"); +} + +// 获取微信号summary +export function getWechatAccountSummary(id: string) { + return request(`/v1/wechats/${id}/summary`, {}, "GET"); } // 获取微信号好友列表 @@ -12,10 +17,10 @@ export function getWechatFriends(params: { pageSize: number; friendKeyword?: string; }) { - return request("/api/WechatFriend/friendlistData", params, "POST"); + return request("/WechatFriend/friendlistData", params, "POST"); } // 获取微信好友详情 export function getWechatFriendDetail(id: string) { - return request("/api/WechatFriend/detail", { id }, "GET"); + return request("/v1/WechatFriend/detail", { id }, "GET"); } diff --git a/nkebao/src/pages/wechat-accounts/detail/index.tsx b/nkebao/src/pages/wechat-accounts/detail/index.tsx index eab5f4f1..ced4b00f 100644 --- a/nkebao/src/pages/wechat-accounts/detail/index.tsx +++ b/nkebao/src/pages/wechat-accounts/detail/index.tsx @@ -28,6 +28,7 @@ import Layout from "@/components/Layout/Layout"; import style from "./detail.module.scss"; import { getWechatAccountDetail, + getWechatAccountSummary, getWechatFriends, getWechatFriendDetail, } from "./api"; @@ -108,6 +109,8 @@ const WechatAccountDetail: React.FC = () => { const [searchQuery, setSearchQuery] = useState(""); const [activeTab, setActiveTab] = useState("overview"); const [isLoading, setIsLoading] = useState(false); + const [loadingInfo, setLoadingInfo] = useState(true); + const [loadingSummary, setLoadingSummary] = useState(true); // 好友列表相关状态 const [friends, setFriends] = useState([]); @@ -120,31 +123,45 @@ const WechatAccountDetail: React.FC = () => { const friendsObserver = useRef(null); const friendsLoadingRef = useRef(null); - // 获取账号概览信息 + // 获取基础信息 + const fetchAccountInfo = useCallback(async () => { + if (!id) return; + setLoadingInfo(true); + try { + const response = await getWechatAccountDetail(id); + if (response && response.data) { + setAccountInfo(response.data); + } else { + Toast.show({ + content: response?.msg || "获取账号信息失败", + position: "top", + }); + } + } catch (e) { + Toast.show({ content: "获取账号信息失败", position: "top" }); + } finally { + setLoadingInfo(false); + } + }, [id]); + + // 获取summary const fetchAccountSummary = useCallback(async () => { if (!id) return; - + setLoadingSummary(true); try { - setIsLoading(true); - const response = await getWechatAccountDetail(id); - + const response = await getWechatAccountSummary(id); if (response && response.data) { setAccountSummary(response.data); - setAccountInfo(response.data); } else { Toast.show({ content: response?.msg || "获取账号概览失败", position: "top", }); } - } catch (error) { - console.error("获取账号概览失败:", error); - Toast.show({ - content: "获取账号概览失败,请检查网络连接", - position: "top", - }); + } catch (e) { + Toast.show({ content: "获取账号概览失败", position: "top" }); } finally { - setIsLoading(false); + setLoadingSummary(false); } }, [id]); @@ -236,12 +253,14 @@ const WechatAccountDetail: React.FC = () => { // 初始化数据 useEffect(() => { if (id) { + fetchAccountInfo(); fetchAccountSummary(); if (activeTab === "friends") { fetchFriends(1, true); } } - }, [id, fetchAccountSummary]); + // eslint-disable-next-line + }, [id]); // 监听标签切换 useEffect(() => { @@ -403,7 +422,7 @@ const WechatAccountDetail: React.FC = () => { setActiveTab(value); }; - if (isLoading) { + if (loadingInfo || loadingSummary) { return (