"use client" import { ArrowDownLeft, ArrowUpRight, CreditCard, DollarSign } from "lucide-react" import { Badge } from "@/components/ui/badge" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table" import { mockTransactions } from "@/lib/mock" import { useAuthStore } from "@/store/auth" import { useOrderStore } from "@/store/orders" import { useShopStore } from "@/store/shops" export default function ShopIncomePage() { const userId = useAuthStore((state) => state.user?.id) const shops = useShopStore((state) => state.shops) const orders = useOrderStore((state) => state.orders) const shop = shops.find((item) => item.owner.id === userId) ?? shops[0] const shopOrders = orders.filter((order) => order.shopId === shop?.id) const completedOrders = shopOrders.filter((o) => o.status === "completed") const totalIncome = completedOrders.reduce((acc, order) => acc + order.totalPrice, 0) const currentMonth = new Date().getMonth() const thisMonthIncome = completedOrders .filter((o) => new Date(o.completedAt || "").getMonth() === currentMonth) .reduce((acc, order) => acc + order.totalPrice, 0) const pendingSettlement = shopOrders .filter((o) => ["in_progress", "pending_close", "pending_review"].includes(o.status)) .reduce((acc, order) => acc + order.totalPrice, 0) const shopOrderIds = new Set(shopOrders.map((order) => order.id)) const relatedTransactions = mockTransactions.filter((transaction) => { if (transaction.type === "withdrawal") return true if (transaction.type !== "income") return false const match = transaction.description.match(/ord\d+/) if (!match) return false return shopOrderIds.has(match[0]) }) return (

收入统计

总收入
¥{totalIncome.toFixed(2)}
本月收入
¥{thisMonthIncome.toFixed(2)}
待结算
¥{pendingSettlement.toFixed(2)}
交易明细 类型 描述 金额 时间 {relatedTransactions.map((transaction) => (
{transaction.amount > 0 ? ( ) : ( )} 0 ? "default" : "secondary"}> {transaction.type === "topup" ? "充值" : transaction.type === "payment" ? "支付" : transaction.type === "income" ? "收入" : transaction.type === "withdrawal" ? "提现" : "退款"}
{transaction.description} 0 ? "text-green-600" : "text-red-600"}> {transaction.amount > 0 ? "+" : ""} {transaction.amount} {new Date(transaction.createdAt).toLocaleString()}
))}
) }