diff --git a/app/(order)/order/[id]/page.tsx b/app/(order)/order/[id]/page.tsx
index dcfdf5a..a4453f4 100644
--- a/app/(order)/order/[id]/page.tsx
+++ b/app/(order)/order/[id]/page.tsx
@@ -1,17 +1,8 @@
-import {
- AlertTriangle,
- ArrowLeft,
- CheckCircle,
- Clock,
- MessageSquare,
- RefreshCw,
- Star,
- XCircle,
-} from "lucide-react"
+import { ArrowLeft, CheckCircle, Clock, Star } from "lucide-react"
import Link from "next/link"
import { notFound } from "next/navigation"
+import OrderActions from "@/components/order-actions"
import { Badge } from "@/components/ui/badge"
-import { Button } from "@/components/ui/button"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Separator } from "@/components/ui/separator"
import { statusLabels } from "@/lib/constants"
@@ -195,46 +186,12 @@ export default async function OrderDetailPage({ params }: { params: Promise<{ id
)}
-
- {order.status === "pending_accept" && (
-
- )}
- {(order.status === "in_progress" || order.status === "pending_close") && chatSession && (
-
- )}
- {order.status === "pending_review" && (
-
- )}
- {["in_progress", "pending_close"].includes(order.status) && (
-
- )}
- {order.status === "completed" && (
-
- )}
-
+
)
}
diff --git a/app/(order)/order/new/page.tsx b/app/(order)/order/new/page.tsx
index 9534859..a452b48 100644
--- a/app/(order)/order/new/page.tsx
+++ b/app/(order)/order/new/page.tsx
@@ -2,7 +2,7 @@
import { ArrowLeft, CheckCircle, CreditCard, ShieldCheck } from "lucide-react"
import Link from "next/link"
-import { useSearchParams } from "next/navigation"
+import { useRouter, useSearchParams } from "next/navigation"
import { useState } from "react"
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { Button } from "@/components/ui/button"
@@ -11,10 +11,16 @@ import { Input } from "@/components/ui/input"
import { Label } from "@/components/ui/label"
import { Separator } from "@/components/ui/separator"
import { Textarea } from "@/components/ui/textarea"
-import { mockPlayers, mockServices, walletBalance } from "@/lib/mock-data"
+import { mockOrders, mockPlayers, mockServices, walletBalance } from "@/lib/mock-data"
import { useRequireAuth } from "@/lib/use-require-auth"
+function showFeedback(message: string) {
+ if (typeof window === "undefined") return
+ window.alert(message)
+}
+
export default function NewOrderPage() {
+ const router = useRouter()
const searchParams = useSearchParams()
const { requireAuth } = useRequireAuth()
const serviceId = searchParams.get("serviceId")
@@ -35,6 +41,8 @@ export default function NewOrderPage() {
}
const totalPrice = service.price * quantity
+ const redirectOrderId =
+ mockOrders.find((order) => order.service.id === service.id)?.id ?? mockOrders[0]?.id
if (submitted) {
return (
@@ -170,7 +178,20 @@ export default function NewOrderPage() {
className="w-full"
size="lg"
disabled={walletBalance < totalPrice}
- onClick={() => requireAuth(() => setSubmitted(true))}
+ onClick={() =>
+ requireAuth(async () => {
+ await new Promise((resolve) => setTimeout(resolve, 500))
+ setSubmitted(true)
+ showFeedback("下单成功")
+ if (redirectOrderId) {
+ setTimeout(() => {
+ router.push(`/order/${redirectOrderId}`)
+ }, 800)
+ return
+ }
+ router.push("/orders")
+ })
+ }
>
确认支付 ¥{totalPrice}
diff --git a/app/(order)/orders/page.tsx b/app/(order)/orders/page.tsx
index c7749ec..668ce9f 100644
--- a/app/(order)/orders/page.tsx
+++ b/app/(order)/orders/page.tsx
@@ -145,9 +145,11 @@ export default function OrderListPage() {
)
})()}
{order.status === "completed" && (
-