refactor: overhaul UI for streamlined user experience

Redesign navigation, home overview, user portrait, and valuation pages
with improved functionality and responsive design.

Co-authored-by: null <4804959+fnvtk@users.noreply.github.com>
This commit is contained in:
v0
2025-07-18 13:47:12 +00:00
parent 440b310c6f
commit 2408d50cb0
316 changed files with 55785 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
export default function Loading() {
return null
}

134
app/tag-tasks/page.tsx Normal file
View File

@@ -0,0 +1,134 @@
"use client"
import { useState } from "react"
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"
import { Search, Plus, Filter, Calendar, CheckCircle2, XCircle, PlayCircle } from "lucide-react"
import { TaskList } from "@/components/tag-tasks/task-list"
export default function TagTasksPage() {
const [activeTab, setActiveTab] = useState("all")
const [searchQuery, setSearchQuery] = useState("")
return (
<div className="container mx-auto py-6 space-y-6">
<div className="flex justify-between items-center">
<h1 className="text-3xl font-bold"></h1>
<div className="flex space-x-2">
<Button variant="outline">
<Calendar className="mr-2 h-4 w-4" />
</Button>
<Button>
<Plus className="mr-2 h-4 w-4" />
</Button>
</div>
</div>
<div className="grid grid-cols-1 md:grid-cols-4 gap-4">
<Card>
<CardHeader className="pb-2">
<CardTitle className="text-sm font-medium"></CardTitle>
</CardHeader>
<CardContent>
<div className="text-2xl font-bold">128</div>
<p className="text-xs text-muted-foreground mt-1"> 24 </p>
</CardContent>
</Card>
<Card>
<CardHeader className="pb-2">
<CardTitle className="text-sm font-medium"></CardTitle>
</CardHeader>
<CardContent>
<div className="flex items-center">
<PlayCircle className="h-5 w-5 text-blue-500 mr-2" />
<div className="text-2xl font-bold">12</div>
</div>
<p className="text-xs text-muted-foreground mt-1"> 2</p>
</CardContent>
</Card>
<Card>
<CardHeader className="pb-2">
<CardTitle className="text-sm font-medium"></CardTitle>
</CardHeader>
<CardContent>
<div className="flex items-center">
<CheckCircle2 className="h-5 w-5 text-green-500 mr-2" />
<div className="text-2xl font-bold">98</div>
</div>
<p className="text-xs text-muted-foreground mt-1"> 96.2%</p>
</CardContent>
</Card>
<Card>
<CardHeader className="pb-2">
<CardTitle className="text-sm font-medium"></CardTitle>
</CardHeader>
<CardContent>
<div className="flex items-center">
<XCircle className="h-5 w-5 text-red-500 mr-2" />
<div className="text-2xl font-bold">18</div>
</div>
<p className="text-xs text-muted-foreground mt-1"> 3.8%</p>
</CardContent>
</Card>
</div>
<Card>
<CardHeader>
<CardTitle></CardTitle>
<CardDescription></CardDescription>
</CardHeader>
<CardContent>
<Tabs value={activeTab} onValueChange={setActiveTab} className="space-y-4">
<div className="flex justify-between items-center">
<TabsList>
<TabsTrigger value="all"></TabsTrigger>
<TabsTrigger value="running"></TabsTrigger>
<TabsTrigger value="completed"></TabsTrigger>
<TabsTrigger value="failed"></TabsTrigger>
<TabsTrigger value="scheduled"></TabsTrigger>
</TabsList>
<div className="flex space-x-2">
<div className="relative w-64">
<Search className="absolute left-2 top-2.5 h-4 w-4 text-muted-foreground" />
<Input
placeholder="搜索任务..."
className="pl-8"
value={searchQuery}
onChange={(e) => setSearchQuery(e.target.value)}
/>
</div>
<Button variant="outline" size="icon">
<Filter className="h-4 w-4" />
</Button>
</div>
</div>
<TabsContent value="all" className="space-y-4">
<TaskList status="all" searchQuery={searchQuery} />
</TabsContent>
<TabsContent value="running" className="space-y-4">
<TaskList status="running" searchQuery={searchQuery} />
</TabsContent>
<TabsContent value="completed" className="space-y-4">
<TaskList status="completed" searchQuery={searchQuery} />
</TabsContent>
<TabsContent value="failed" className="space-y-4">
<TaskList status="failed" searchQuery={searchQuery} />
</TabsContent>
<TabsContent value="scheduled" className="space-y-4">
<TaskList status="scheduled" searchQuery={searchQuery} />
</TabsContent>
</Tabs>
</CardContent>
</Card>
</div>
)
}