"use client" import { Clock, MessageSquare, RefreshCw } from "lucide-react" import Link from "next/link" import { useState } from "react" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { mockOrders } from "@/lib/mock-data" import type { OrderStatus } from "@/lib/types" import { cn } from "@/lib/utils" import { useAuthStore } from "@/store/auth" const statusLabels: Record = { pending_payment: "待支付", pending_accept: "待接单", in_progress: "进行中", pending_close: "待结单", pending_review: "待评价", disputed: "争议中", completed: "已完成", cancelled: "已取消", } const statusColors: Record = { pending_payment: "bg-yellow-100 text-yellow-800", pending_accept: "bg-blue-100 text-blue-800", in_progress: "bg-green-100 text-green-800", pending_close: "bg-orange-100 text-orange-800", pending_review: "bg-purple-100 text-purple-800", disputed: "bg-red-100 text-red-800", completed: "bg-gray-100 text-gray-800", cancelled: "bg-gray-100 text-gray-500", } type TabFilter = "all" | "active" | "completed" | "disputed" export default function OrderListPage() { const [tab, setTab] = useState("all") const { currentRole } = useAuthStore() const filtered = mockOrders.filter((order) => { if (tab === "active") return ["pending_accept", "in_progress", "pending_close", "pending_review"].includes( order.status, ) if (tab === "completed") return order.status === "completed" || order.status === "cancelled" if (tab === "disputed") return order.status === "disputed" return true }) return (

我的订单

{currentRole === "consumer" ? "消费者视角" : currentRole === "player" ? "打手视角" : "店主视角"}
setTab(v as TabFilter)}> 全部 进行中 已完成 争议 {filtered.length === 0 ? (
暂无订单
) : ( filtered.map((order) => (
{order.service.title} {statusLabels[order.status]}

{currentRole === "consumer" ? `打手: ${order.playerName}` : `消费者: ${order.consumerName}`} {order.shopName && ` · ${order.shopName}`}

¥{order.totalPrice} {new Date(order.createdAt).toLocaleDateString("zh-CN")}
{order.status === "in_progress" && ( )} {order.status === "completed" && ( )}
)) )}
) }