"use client" import { useState } from "react" import { ChevronLeft, Filter, Search, RefreshCw, ArrowRightLeft, AlertCircle } from "lucide-react" import { Card } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Badge } from "@/components/ui/badge" import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" import { useRouter } from "next/navigation" import { Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from "@/components/ui/pagination" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog" import { toast } from "@/components/ui/use-toast" import { Progress } from "@/components/ui/progress" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip" interface WechatAccount { id: string avatar: string nickname: string wechatId: string deviceId: string deviceName: string friendCount: number todayAdded: number remainingAdds: number maxDailyAdds: number status: "normal" | "abnormal" lastActive: string } const generateRandomWechatAccounts = (count: number): WechatAccount[] => { return Array.from({ length: count }, (_, index) => ({ id: `account-${index + 1}`, avatar: "https://hebbkx1anhila5yf.public.blob.vercel-storage.com/img_v3_02jn_e7fcc2a4-3560-478d-911a-4ccd69c6392g.jpg-a8zVtwxMuSrPWN9dfWH93EBY0yM3Dh.jpeg", nickname: `卡若-${["25vig", "zok7e", "ip9ob", "2kna3"][index % 4]}`, wechatId: `wxid_${Math.random().toString(36).substr(2, 8)}`, deviceId: `device-${Math.floor(index / 3) + 1}`, deviceName: `设备${Math.floor(index / 3) + 1}`, friendCount: Math.floor(Math.random() * (6300 - 520)) + 520, todayAdded: Math.floor(Math.random() * 15), remainingAdds: Math.floor(Math.random() * 10) + 5, maxDailyAdds: 20, status: Math.random() > 0.2 ? "normal" : "abnormal", lastActive: new Date(Date.now() - Math.random() * 86400000).toLocaleString(), })) } export default function WechatAccountsPage() { const router = useRouter() const [accounts] = useState(generateRandomWechatAccounts(42)) const [searchQuery, setSearchQuery] = useState("") const [currentPage, setCurrentPage] = useState(1) const [isTransferDialogOpen, setIsTransferDialogOpen] = useState(false) const [selectedAccount, setSelectedAccount] = useState(null) const accountsPerPage = 10 const filteredAccounts = accounts.filter( (account) => account.nickname.toLowerCase().includes(searchQuery.toLowerCase()) || account.wechatId.toLowerCase().includes(searchQuery.toLowerCase()), ) const paginatedAccounts = filteredAccounts.slice((currentPage - 1) * accountsPerPage, currentPage * accountsPerPage) const totalPages = Math.ceil(filteredAccounts.length / accountsPerPage) const handleTransferFriends = (account: WechatAccount) => { setSelectedAccount(account) setIsTransferDialogOpen(true) } const handleConfirmTransfer = () => { if (!selectedAccount) return toast({ title: "好友转移计划已创建", description: "请在场景获客中查看详情", }) setIsTransferDialogOpen(false) router.push("/scenarios") } return (

微信号

setSearchQuery(e.target.value)} />
{paginatedAccounts.map((account) => ( router.push(`/wechat-accounts/${account.id}`)} >
{account.nickname[0]}

{account.nickname}

{account.status === "normal" ? "正常" : "异常"}
微信号:{account.wechatId}
好友数量:{account.friendCount}
今日新增:+{account.todayAdded}
今日可添加: {account.remainingAdds}

每日最多添加 {account.maxDailyAdds} 个好友

{account.todayAdded}/{account.maxDailyAdds}
所属设备:{account.deviceName}
最后活跃:{account.lastActive}
))}
{ e.preventDefault() setCurrentPage((prev) => Math.max(1, prev - 1)) }} /> {Array.from({ length: totalPages }, (_, i) => i + 1).map((page) => ( { e.preventDefault() setCurrentPage(page) }} > {page} ))} { e.preventDefault() setCurrentPage((prev) => Math.min(totalPages, prev + 1)) }} />
好友转移确认

确认要将 {selectedAccount?.nickname} 的 {selectedAccount?.friendCount}{" "} 个好友转移到场景获客吗?系统将自动创建一个获客计划。

) }