"use client" import { useEffect, useState } from "react" import { useParams } from "next/navigation" import MobileHeader from "@/app/components/MobileHeader" import BottomNav from "@/app/components/BottomNav" import Section from "@/components/user-portrait/mobile/section" import ProfileHeader from "@/components/user-portrait/mobile/profile-header" import MetricsRFM from "@/components/user-portrait/mobile/metrics-rfm" import InteractionsList from "@/components/user-portrait/mobile/interactions-list" import PurchaseHistory from "@/components/user-portrait/mobile/purchase-history" import WechatAccounts from "@/components/user-portrait/mobile/wechat-accounts" type Detail = { id: string name: string avatar?: string email: string phone: string tags: string[] recency: number frequency: number monetary: number rfmScore: number lastActivity: string interactions: { id: string; type: string; time: string; note?: string }[] purchaseHistory: { id: string; amount: number; time: string; item: string }[] wechatAccounts: { id: string; nickname: string; avatar?: string }[] status: "活跃" | "沉睡" | "流失风险" } export default function UserDetailPage() { const params = useParams<{ id: string }>() const [data, setData] = useState(null) const [loading, setLoading] = useState(true) useEffect(() => { if (!params?.id) return setLoading(true) fetch(`/api/users?id=${params.id}`) .then((r) => r.json()) .then((res) => setData(res?.data ?? null)) .finally(() => setLoading(false)) }, [params?.id]) return (
{}} title="用户详情" />
{loading ? (
加载中…
) : data ? (
({ id: w.id, nickname: w.nickname, avatar: w.avatar }))} />
) : (
未找到该用户
)}
) }