"use client" import { useState } from "react" import { useRouter } from "next/navigation" import { ChevronLeft, Download, Filter, Search } from "lucide-react" import { Button } from "@/components/ui/button" import { Card, CardContent } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Badge } from "@/components/ui/badge" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { DatePickerWithRange } from "@/components/ui/date-picker" import { Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from "@/components/ui/pagination" import { toast } from "@/components/ui/use-toast" export default function PaymentRecordsPage({ params }: { params: { id: string } }) { const router = useRouter() const [searchTerm, setSearchTerm] = useState("") const [statusFilter, setStatusFilter] = useState("all") const [currentPage, setCurrentPage] = useState(1) const [showFilters, setShowFilters] = useState(false) // 模拟数据 const paymentRecords = Array.from({ length: 50 }, (_, i) => ({ id: i + 1, transactionId: `WX${Date.now()}${i}`, user: `用户${i + 1}`, platformUserId: `oq_${Math.random().toString(36).substr(2, 9)}`, amount: "19.9", paymentTime: new Date(Date.now() - i * 3600000).toLocaleString(), status: i % 10 === 0 ? "refunded" : "success", paymentMethod: "wechat", customerTags: ["付款客户", "社群会员"], })) const itemsPerPage = 10 const totalPages = Math.ceil(paymentRecords.length / itemsPerPage) const startIndex = (currentPage - 1) * itemsPerPage const endIndex = startIndex + itemsPerPage const currentRecords = paymentRecords.slice(startIndex, endIndex) const handleExport = () => { toast({ title: "导出成功", description: "支付记录已导出为Excel文件", }) } const getStatusBadge = (status: string) => { switch (status) { case "success": return ( 支付成功 ) case "refunded": return ( 已退款 ) case "failed": return ( 支付失败 ) default: return {status} } } return (
{/* 头部 */}

支付记录

{/* 搜索和筛选 */}
setSearchTerm(e.target.value)} className="pl-10" />
{showFilters && (
)}
{/* 统计信息 */}

总支付笔数

{paymentRecords.length}

总支付金额

¥{(paymentRecords.length * 19.9).toFixed(2)}

成功率

90%

{/* 记录列表 - 移动端优化 */}
{currentRecords.map((record) => (

{record.user}

交易ID: {record.transactionId}

{getStatusBadge(record.status)}
支付金额 ¥{record.amount}
支付时间 {record.paymentTime}
支付方式 {record.paymentMethod === "wechat" ? "微信支付" : "支付宝"}
{record.customerTags.map((tag, index) => ( {tag} ))}
))}
{/* 分页 */}
setCurrentPage(Math.max(1, currentPage - 1))} className={currentPage === 1 ? "pointer-events-none opacity-50" : ""} /> {[...Array(Math.min(5, totalPages))].map((_, i) => { const pageNumber = i + 1 return ( setCurrentPage(pageNumber)} isActive={currentPage === pageNumber}> {pageNumber} ) })} setCurrentPage(Math.min(totalPages, currentPage + 1))} className={currentPage === totalPages ? "pointer-events-none opacity-50" : ""} />
) }