Files
wagtailcms-frontend/app/demo/page.tsx
T

29 lines
1.6 KiB
TypeScript

import Link from "next/link";
import type { Metadata } from "next";
import { getIndustryDemos } from "@/services/demo.service";
export const metadata: Metadata = { title: { absolute: "行业官网模板演示" }, robots: { index: false, follow: false } };
export default async function DemoGallery() {
const result = await getIndustryDemos().catch(() => null);
return (
<div className="mx-auto max-w-7xl px-6 py-16">
<Link href="/" className="text-sm text-slate-600 underline">返回当前官网</Link>
<h1 className="mt-8 text-4xl font-bold text-slate-900">行业官网模板演示</h1>
<p className="mt-4 text-slate-600">浏览下方行业模板:独立内容,无损切换。所有企业及案例均为虚构演示。</p>
{!result?.items.length && <p className="mt-8">演示内容尚未就绪,请启动后端并运行 seed_industry_templates 初始化命令。</p>}
<div className="mt-10 grid gap-6 md:grid-cols-3">
{result?.items.map((item, index) => (
<Link key={item.slug} href={item.url} className="rounded-2xl border border-slate-200 bg-white p-8 shadow-sm transition hover:-translate-y-1 hover:shadow-lg">
<span className="text-sm font-semibold text-sky-700">模板 {String(index + 1).padStart(2, "0")}</span>
<h2 className="mt-4 text-2xl font-bold">{item.label}</h2>
<p className="mt-3 text-sm text-slate-500">{item.company}</p>
<p className="mt-4 leading-7 text-slate-600">{item.description}</p>
<span className="mt-6 inline-block font-medium text-sky-700">浏览演示 →</span>
</Link>
))}
</div>
</div>
);
}