110 lines
3.8 KiB
TypeScript
110 lines
3.8 KiB
TypeScript
|
|
"use client"
|
||
|
|
|
||
|
|
import { Badge } from "@/components/ui/badge"
|
||
|
|
import {
|
||
|
|
Card,
|
||
|
|
CardAction,
|
||
|
|
CardDescription,
|
||
|
|
CardFooter,
|
||
|
|
CardHeader,
|
||
|
|
CardTitle,
|
||
|
|
} from "@/components/ui/card"
|
||
|
|
import { TrendingUpIcon, TrendingDownIcon } from "lucide-react"
|
||
|
|
|
||
|
|
export function SectionCards() {
|
||
|
|
return (
|
||
|
|
<div className="grid grid-cols-1 gap-4 px-4 *:data-[slot=card]:bg-linear-to-t *:data-[slot=card]:from-primary/5 *:data-[slot=card]:to-card *:data-[slot=card]:shadow-xs lg:px-6 @xl/main:grid-cols-2 @5xl/main:grid-cols-4 dark:*:data-[slot=card]:bg-card">
|
||
|
|
<Card className="@container/card">
|
||
|
|
<CardHeader>
|
||
|
|
<CardDescription>后台用户</CardDescription>
|
||
|
|
<CardTitle className="text-2xl font-semibold tabular-nums @[250px]/card:text-3xl">
|
||
|
|
12
|
||
|
|
</CardTitle>
|
||
|
|
<CardAction>
|
||
|
|
<Badge variant="outline">
|
||
|
|
<TrendingUpIcon
|
||
|
|
/>
|
||
|
|
+2
|
||
|
|
</Badge>
|
||
|
|
</CardAction>
|
||
|
|
</CardHeader>
|
||
|
|
<CardFooter className="flex-col items-start gap-1.5 text-sm">
|
||
|
|
<div className="line-clamp-1 flex gap-2 font-medium">
|
||
|
|
本周新增管理员{" "}
|
||
|
|
<TrendingUpIcon className="size-4" />
|
||
|
|
</div>
|
||
|
|
<div className="text-muted-foreground">
|
||
|
|
基础账号体系已可承接真实接口
|
||
|
|
</div>
|
||
|
|
</CardFooter>
|
||
|
|
</Card>
|
||
|
|
<Card className="@container/card">
|
||
|
|
<CardHeader>
|
||
|
|
<CardDescription>权限点</CardDescription>
|
||
|
|
<CardTitle className="text-2xl font-semibold tabular-nums @[250px]/card:text-3xl">
|
||
|
|
26
|
||
|
|
</CardTitle>
|
||
|
|
<CardAction>
|
||
|
|
<Badge variant="outline">
|
||
|
|
<TrendingUpIcon />
|
||
|
|
已初始化
|
||
|
|
</Badge>
|
||
|
|
</CardAction>
|
||
|
|
</CardHeader>
|
||
|
|
<CardFooter className="flex-col items-start gap-1.5 text-sm">
|
||
|
|
<div className="line-clamp-1 flex gap-2 font-medium">
|
||
|
|
菜单与 API 权限待接入{" "}
|
||
|
|
<TrendingUpIcon className="size-4" />
|
||
|
|
</div>
|
||
|
|
<div className="text-muted-foreground">
|
||
|
|
可继续对接后端权限模型
|
||
|
|
</div>
|
||
|
|
</CardFooter>
|
||
|
|
</Card>
|
||
|
|
<Card className="@container/card">
|
||
|
|
<CardHeader>
|
||
|
|
<CardDescription>知识库任务</CardDescription>
|
||
|
|
<CardTitle className="text-2xl font-semibold tabular-nums @[250px]/card:text-3xl">
|
||
|
|
8
|
||
|
|
</CardTitle>
|
||
|
|
<CardAction>
|
||
|
|
<Badge variant="outline">
|
||
|
|
<TrendingUpIcon
|
||
|
|
/>
|
||
|
|
运行中
|
||
|
|
</Badge>
|
||
|
|
</CardAction>
|
||
|
|
</CardHeader>
|
||
|
|
<CardFooter className="flex-col items-start gap-1.5 text-sm">
|
||
|
|
<div className="line-clamp-1 flex gap-2 font-medium">
|
||
|
|
预留 RAG 接入位{" "}
|
||
|
|
<TrendingUpIcon className="size-4" />
|
||
|
|
</div>
|
||
|
|
<div className="text-muted-foreground">支持文档导入与索引流程</div>
|
||
|
|
</CardFooter>
|
||
|
|
</Card>
|
||
|
|
<Card className="@container/card">
|
||
|
|
<CardHeader>
|
||
|
|
<CardDescription>渠道接入</CardDescription>
|
||
|
|
<CardTitle className="text-2xl font-semibold tabular-nums @[250px]/card:text-3xl">
|
||
|
|
3
|
||
|
|
</CardTitle>
|
||
|
|
<CardAction>
|
||
|
|
<Badge variant="outline">
|
||
|
|
<TrendingDownIcon />
|
||
|
|
待配置
|
||
|
|
</Badge>
|
||
|
|
</CardAction>
|
||
|
|
</CardHeader>
|
||
|
|
<CardFooter className="flex-col items-start gap-1.5 text-sm">
|
||
|
|
<div className="line-clamp-1 flex gap-2 font-medium">
|
||
|
|
企微、钉钉、IM 入口{" "}
|
||
|
|
<TrendingDownIcon className="size-4" />
|
||
|
|
</div>
|
||
|
|
<div className="text-muted-foreground">等待真实连接参数接入</div>
|
||
|
|
</CardFooter>
|
||
|
|
</Card>
|
||
|
|
</div>
|
||
|
|
)
|
||
|
|
}
|