diff --git a/Cunkebao/app/wechat-accounts/[id]/page.tsx b/Cunkebao/app/wechat-accounts/[id]/page.tsx index 672b0f87..708d6ce0 100644 --- a/Cunkebao/app/wechat-accounts/[id]/page.tsx +++ b/Cunkebao/app/wechat-accounts/[id]/page.tsx @@ -134,6 +134,29 @@ export default function WechatAccountDetailPage({ params }: { params: { id: stri const friendsLoadingRef = useRef(null) const friendsContainerRef = useRef(null) + const [initialData, setInitialData] = useState<{ + avatar: string; + nickname: string; + status: "normal" | "abnormal"; + wechatId: string; + deviceName: string; + deviceId?: string | number; + } | null>(null) + + useEffect(() => { + // 从 URL 参数中获取初始数据 + const searchParams = new URLSearchParams(window.location.search); + const dataParam = searchParams.get('data'); + if (dataParam) { + try { + const decodedData = JSON.parse(decodeURIComponent(dataParam)); + setInitialData(decodedData); + } catch (error) { + console.error('解析初始数据失败:', error); + } + } + }, []); + // 计算好友列表容器高度 const getFriendsContainerHeight = () => { // 最少显示一条记录的高度,最多显示十条记录的高度 @@ -411,6 +434,14 @@ export default function WechatAccountDetailPage({ params }: { params: { id: stri if (response && response.code === 200) { // 转换数据格式 const transformedAccount = transformWechatAccountDetail(response) + // 使用初始数据覆盖API返回的部分字段 + if (initialData) { + transformedAccount.avatar = initialData.avatar; + transformedAccount.nickname = initialData.nickname; + transformedAccount.status = initialData.status; + transformedAccount.wechatId = initialData.wechatId; + transformedAccount.deviceName = initialData.deviceName; + } setAccount(transformedAccount) // 如果有好友总数,更新friendsTotal状态 @@ -425,6 +456,14 @@ export default function WechatAccountDetailPage({ params }: { params: { id: stri }) // 获取失败时使用模拟数据 const mockData = generateMockAccountData(); + // 使用初始数据覆盖模拟数据的部分字段 + if (initialData) { + mockData.avatar = initialData.avatar; + mockData.nickname = initialData.nickname; + mockData.status = initialData.status; + mockData.wechatId = initialData.wechatId; + mockData.deviceName = initialData.deviceName; + } setAccount(mockData); // 更新好友总数 setFriendsTotal(mockData.friendCount); @@ -438,6 +477,14 @@ export default function WechatAccountDetailPage({ params }: { params: { id: stri }) // 请求出错时使用模拟数据 const mockData = generateMockAccountData(); + // 使用初始数据覆盖模拟数据的部分字段 + if (initialData) { + mockData.avatar = initialData.avatar; + mockData.nickname = initialData.nickname; + mockData.status = initialData.status; + mockData.wechatId = initialData.wechatId; + mockData.deviceName = initialData.deviceName; + } setAccount(mockData); // 更新好友总数 setFriendsTotal(mockData.friendCount); @@ -447,7 +494,7 @@ export default function WechatAccountDetailPage({ params }: { params: { id: stri } fetchAccount() - }, [params.id]) + }, [params.id, initialData]) if (!account) { return
加载中...
@@ -534,7 +581,7 @@ export default function WechatAccountDetailPage({ params }: { params: { id: stri {account.nickname[0]} {account.isVerified && ( - + 已认证 )} @@ -542,15 +589,25 @@ export default function WechatAccountDetailPage({ params }: { params: { id: stri

{account.nickname}

- + {account.status === "normal" ? "正常" : "异常"}

微信号:{account.wechatId}

-