style(dashboard): apply proto2 surfaces
This commit is contained in:
@@ -19,11 +19,11 @@ export default function DashboardPage() {
|
||||
const recentOrders = listOrders().slice(0, 3)
|
||||
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<div className="container mx-auto max-w-6xl px-4 py-8 space-y-8">
|
||||
<h1 className="text-2xl font-bold">概览</h1>
|
||||
|
||||
<div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-4">
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">总订单</CardTitle>
|
||||
<ListOrdered className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -34,7 +34,7 @@ export default function DashboardPage() {
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">评分</CardTitle>
|
||||
<Star className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -43,7 +43,7 @@ export default function DashboardPage() {
|
||||
<div className="text-2xl font-bold">{isOwner ? shop.rating : player.rating}</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">{isOwner ? "签约打手" : "完成率"}</CardTitle>
|
||||
{isOwner ? (
|
||||
@@ -65,7 +65,7 @@ export default function DashboardPage() {
|
||||
)}
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">{isOwner ? "本月收入" : "服务数"}</CardTitle>
|
||||
{isOwner ? (
|
||||
@@ -82,7 +82,7 @@ export default function DashboardPage() {
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between">
|
||||
<CardTitle className="text-base">最近订单</CardTitle>
|
||||
<Button variant="ghost" size="sm" asChild>
|
||||
@@ -114,7 +114,7 @@ export default function DashboardPage() {
|
||||
</Card>
|
||||
|
||||
{!isOwner && (
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">快捷操作</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
@@ -136,7 +136,7 @@ export default function NewServicePage() {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="max-w-2xl space-y-4">
|
||||
<div className="container mx-auto max-w-2xl px-4 py-8 space-y-8">
|
||||
<Link
|
||||
href="/dashboard/services"
|
||||
className="inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground"
|
||||
@@ -145,7 +145,7 @@ export default function NewServicePage() {
|
||||
返回服务列表
|
||||
</Link>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle>发布服务</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
@@ -47,7 +47,7 @@ export default function ServicesPage() {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<div className="container mx-auto max-w-6xl px-4 py-8 space-y-8">
|
||||
<div className="flex items-center justify-between">
|
||||
<h1 className="text-2xl font-bold">服务管理</h1>
|
||||
<Button asChild>
|
||||
@@ -58,7 +58,7 @@ export default function ServicesPage() {
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">已发布的服务</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
@@ -68,7 +68,7 @@ export default function EmployeesPage() {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<div className="container mx-auto max-w-6xl px-4 py-8 space-y-8">
|
||||
<div className="flex items-center justify-between">
|
||||
<h1 className="text-2xl font-bold">员工管理</h1>
|
||||
<Button
|
||||
@@ -83,7 +83,7 @@ export default function EmployeesPage() {
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<div className="flex items-center justify-between">
|
||||
<CardTitle className="text-base">签约打手 ({shopPlayers.length})</CardTitle>
|
||||
|
||||
@@ -54,11 +54,11 @@ export default function ShopIncomePage() {
|
||||
})
|
||||
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<div className="container mx-auto max-w-6xl px-4 py-8 space-y-8">
|
||||
<h1 className="text-2xl font-bold">收入统计</h1>
|
||||
|
||||
<div className="grid gap-4 sm:grid-cols-3">
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">总收入</CardTitle>
|
||||
<DollarSign className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -67,7 +67,7 @@ export default function ShopIncomePage() {
|
||||
<div className="text-2xl font-bold">¥{totalIncome.toFixed(2)}</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">本月收入</CardTitle>
|
||||
<CreditCard className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -76,7 +76,7 @@ export default function ShopIncomePage() {
|
||||
<div className="text-2xl font-bold">¥{thisMonthIncome.toFixed(2)}</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">待结算</CardTitle>
|
||||
<ArrowUpRight className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -87,7 +87,7 @@ export default function ShopIncomePage() {
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle>交易明细</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
@@ -38,13 +38,13 @@ export default function ShopOrdersPage() {
|
||||
const disputedOrders = shopOrders.filter((o) => isDisputedOrder(o.status)).length
|
||||
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<div className="container mx-auto max-w-6xl px-4 py-8 space-y-8">
|
||||
<div className="flex items-center justify-between">
|
||||
<h1 className="text-2xl font-bold">订单总览</h1>
|
||||
</div>
|
||||
|
||||
<div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-4">
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">总订单</CardTitle>
|
||||
<ListOrdered className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -53,7 +53,7 @@ export default function ShopOrdersPage() {
|
||||
<div className="text-2xl font-bold">{totalOrders}</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">进行中</CardTitle>
|
||||
<Clock className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -62,7 +62,7 @@ export default function ShopOrdersPage() {
|
||||
<div className="text-2xl font-bold">{activeOrders}</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">已完成</CardTitle>
|
||||
<CheckCircle className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -71,7 +71,7 @@ export default function ShopOrdersPage() {
|
||||
<div className="text-2xl font-bold">{completedOrders}</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">争议订单</CardTitle>
|
||||
<AlertCircle className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -82,7 +82,7 @@ export default function ShopOrdersPage() {
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle>订单列表</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
@@ -53,7 +53,7 @@ function ShopManagementContent({
|
||||
const [description, setDescription] = useState(shop.description)
|
||||
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<div className="container mx-auto max-w-6xl px-4 py-8 space-y-8">
|
||||
<div className="flex items-center justify-between">
|
||||
<h1 className="text-2xl font-bold">店铺管理</h1>
|
||||
<Button variant="outline" size="sm" asChild>
|
||||
@@ -65,7 +65,7 @@ function ShopManagementContent({
|
||||
</div>
|
||||
|
||||
<div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-4">
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">总订单</CardTitle>
|
||||
<ListOrdered className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -74,7 +74,7 @@ function ShopManagementContent({
|
||||
<div className="text-2xl font-bold">{shop.totalOrders}</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">评分</CardTitle>
|
||||
<Star className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -83,7 +83,7 @@ function ShopManagementContent({
|
||||
<div className="text-2xl font-bold">{shop.rating}</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">签约打手</CardTitle>
|
||||
<Users className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -92,7 +92,7 @@ function ShopManagementContent({
|
||||
<div className="text-2xl font-bold">{shop.playerCount}</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader className="flex flex-row items-center justify-between pb-2">
|
||||
<CardTitle className="text-sm font-medium">抽成比例</CardTitle>
|
||||
<DollarSign className="h-4 w-4 text-muted-foreground" />
|
||||
@@ -107,7 +107,7 @@ function ShopManagementContent({
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">基本信息</CardTitle>
|
||||
</CardHeader>
|
||||
@@ -139,7 +139,7 @@ function ShopManagementContent({
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">公告管理</CardTitle>
|
||||
</CardHeader>
|
||||
@@ -184,7 +184,7 @@ function ShopManagementContent({
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">运营设置</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
@@ -56,7 +56,7 @@ function ShopRulesForm({
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<div className="container mx-auto max-w-4xl px-4 py-8 space-y-8">
|
||||
<div className="flex items-center justify-between">
|
||||
<h1 className="text-2xl font-bold">规则设置</h1>
|
||||
<Button onClick={handleSave}>
|
||||
@@ -66,7 +66,7 @@ function ShopRulesForm({
|
||||
</div>
|
||||
|
||||
<div className="grid gap-6">
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">员工权限</CardTitle>
|
||||
</CardHeader>
|
||||
@@ -100,7 +100,7 @@ function ShopRulesForm({
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">派单设置</CardTitle>
|
||||
</CardHeader>
|
||||
@@ -126,7 +126,7 @@ function ShopRulesForm({
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">抽成设置</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
@@ -122,7 +122,7 @@ function ShopTemplatesEditor({
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<div className="container mx-auto max-w-4xl px-4 py-8 space-y-8">
|
||||
{showSavedToast ? (
|
||||
<div className="fixed right-6 top-6 z-50 rounded-md border bg-background px-4 py-2 text-sm shadow-md">
|
||||
模板已保存
|
||||
@@ -141,7 +141,7 @@ function ShopTemplatesEditor({
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">页面组件</CardTitle>
|
||||
</CardHeader>
|
||||
@@ -184,7 +184,7 @@ function ShopTemplatesEditor({
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card>
|
||||
<Card className="hover:shadow-[var(--shadow-card)]">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">提示</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
Reference in New Issue
Block a user