This commit is contained in:
freedakgmail
2025-11-30 19:10:30 +08:00
parent a05fb384a4
commit 86e889cc2a
16 changed files with 1555 additions and 763 deletions
+26 -26
View File
@@ -3,7 +3,7 @@
import { useEffect, useState } from "react"
import { useSession } from "next-auth/react"
import Link from "next/link"
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
import { ChineseCard, ChineseCardContent, ChineseCardHeader, ChineseCardTitle, ChineseCardDescription } from "@/components/ui/chinese-card"
import { Button } from "@/components/ui/button"
import { Users, Calendar, Plus, ArrowRight } from "lucide-react"
import { format } from "date-fns"
@@ -47,41 +47,41 @@ export function FamilyTreesList() {
if (!session) {
return (
<Card>
<CardHeader>
<CardTitle></CardTitle>
<CardDescription></CardDescription>
</CardHeader>
<CardContent>
<ChineseCard variant="plaque" className="shadow-sm">
<ChineseCardHeader>
<ChineseCardTitle></ChineseCardTitle>
<ChineseCardDescription></ChineseCardDescription>
</ChineseCardHeader>
<ChineseCardContent>
<Link href="/auth/signin">
<Button></Button>
</Link>
</CardContent>
</Card>
</ChineseCardContent>
</ChineseCard>
)
}
if (loading) {
return (
<Card>
<CardHeader>
<CardTitle></CardTitle>
</CardHeader>
<CardContent>
<ChineseCard variant="plaque" className="shadow-sm">
<ChineseCardHeader>
<ChineseCardTitle></ChineseCardTitle>
</ChineseCardHeader>
<ChineseCardContent>
<p className="text-muted-foreground">...</p>
</CardContent>
</Card>
</ChineseCardContent>
</ChineseCard>
)
}
return (
<Card>
<CardHeader className="flex flex-row items-center justify-between">
<ChineseCard variant="plaque" className="shadow-sm">
<ChineseCardHeader className="flex flex-row items-center justify-between">
<div>
<CardTitle></CardTitle>
<CardDescription>
<ChineseCardTitle></ChineseCardTitle>
<ChineseCardDescription>
{trees.length > 0 ? `${trees.length} 个家族树` : '还没有家族树'}
</CardDescription>
</ChineseCardDescription>
</div>
<Link href="/trees/new">
<Button size="sm">
@@ -89,8 +89,8 @@ export function FamilyTreesList() {
</Button>
</Link>
</CardHeader>
<CardContent>
</ChineseCardHeader>
<ChineseCardContent>
{trees.length === 0 ? (
<div className="text-center py-8">
<p className="text-muted-foreground mb-4"></p>
@@ -106,7 +106,7 @@ export function FamilyTreesList() {
{trees.map((tree) => (
<div
key={tree.id}
className="flex items-center justify-between p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors"
className="flex items-center justify-between p-4 rounded-lg border bg-card/50 hover:bg-accent/50 transition-colors"
>
<div className="flex-1">
<h3 className="font-semibold text-lg">{tree.name}</h3>
@@ -134,7 +134,7 @@ export function FamilyTreesList() {
))}
</div>
)}
</CardContent>
</Card>
</ChineseCardContent>
</ChineseCard>
)
}
+33 -33
View File
@@ -13,7 +13,7 @@ import {
import { CanvasRenderer } from "echarts/renderers"
import { graphic } from "echarts/core"
import type { FamilyMember } from "@/types/family"
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"
import { ChineseCard, ChineseCardContent, ChineseCardHeader, ChineseCardTitle, ChineseCardDescription } from "@/components/ui/chinese-card"
// 注册必要的组件
echarts.use([
@@ -330,45 +330,45 @@ export function StatisticsCharts({ members }: StatisticsChartsProps) {
return (
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
<Card>
<CardHeader>
<CardTitle></CardTitle>
<CardDescription></CardDescription>
</CardHeader>
<CardContent>
<ChineseCard variant="default" cornerOrnament className="shadow-sm">
<ChineseCardHeader>
<ChineseCardTitle></ChineseCardTitle>
<ChineseCardDescription></ChineseCardDescription>
</ChineseCardHeader>
<ChineseCardContent>
<div ref={genderChartRef} className="h-[300px]" />
</CardContent>
</Card>
</ChineseCardContent>
</ChineseCard>
<Card>
<CardHeader>
<CardTitle></CardTitle>
<CardDescription></CardDescription>
</CardHeader>
<CardContent>
<ChineseCard variant="default" cornerOrnament className="shadow-sm">
<ChineseCardHeader>
<ChineseCardTitle></ChineseCardTitle>
<ChineseCardDescription></ChineseCardDescription>
</ChineseCardHeader>
<ChineseCardContent>
<div ref={generationChartRef} className="h-[300px]" />
</CardContent>
</Card>
</ChineseCardContent>
</ChineseCard>
<Card>
<CardHeader>
<CardTitle></CardTitle>
<CardDescription></CardDescription>
</CardHeader>
<CardContent>
<ChineseCard variant="scroll" className="shadow-sm">
<ChineseCardHeader className="pt-6">
<ChineseCardTitle></ChineseCardTitle>
<ChineseCardDescription></ChineseCardDescription>
</ChineseCardHeader>
<ChineseCardContent>
<div ref={ageDistributionRef} className="h-[300px]" />
</CardContent>
</Card>
</ChineseCardContent>
</ChineseCard>
<Card>
<CardHeader>
<CardTitle></CardTitle>
<CardDescription></CardDescription>
</CardHeader>
<CardContent>
<ChineseCard variant="scroll" className="shadow-sm">
<ChineseCardHeader className="pt-6">
<ChineseCardTitle></ChineseCardTitle>
<ChineseCardDescription></ChineseCardDescription>
</ChineseCardHeader>
<ChineseCardContent>
<div ref={birthYearChartRef} className="h-[300px]" />
</CardContent>
</Card>
</ChineseCardContent>
</ChineseCard>
</div>
)
}