diff --git a/tone-page-web/app/resource/components/ResourceCard.tsx b/tone-page-web/app/resource/components/ResourceCard.tsx
new file mode 100644
index 0000000..35e0af3
--- /dev/null
+++ b/tone-page-web/app/resource/components/ResourceCard.tsx
@@ -0,0 +1,48 @@
+import { Card, CardContent } from "@/components/ui/card";
+import { Resource } from "@/lib/types/resource";
+import { cn } from "@/lib/utils";
+import Image from "next/image";
+
+interface ResourceCardProps {
+ resource: Resource;
+ key: string;
+}
+
+export function ResourceCard({ resource, key }: ResourceCardProps) {
+ return (
+
+
+
+
+
+
+
+
+
{resource.title}
+
{resource.description}
+
+ {
+ resource.tags.map((tag) => (
+
{tag.name}
+ ))
+ }
+
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/tone-page-web/app/resource/page.tsx b/tone-page-web/app/resource/page.tsx
index a18ebd8..6c514c2 100644
--- a/tone-page-web/app/resource/page.tsx
+++ b/tone-page-web/app/resource/page.tsx
@@ -3,6 +3,7 @@ import {
CardContent,
} from "@/components/ui/card";
import Image from "next/image";
+import { ResourceCard } from "./components/ResourceCard";
export default function Resources() {
return (
@@ -13,36 +14,21 @@ export default function Resources() {
,继续使用或浏览表示您接受协议条款。
)
diff --git a/tone-page-web/lib/types/resource.ts b/tone-page-web/lib/types/resource.ts
new file mode 100644
index 0000000..813968b
--- /dev/null
+++ b/tone-page-web/lib/types/resource.ts
@@ -0,0 +1,14 @@
+export type TagType = {
+ id: string;
+ name: string;
+ color: string;
+}
+
+export interface Resource {
+ id: string;
+ title: string;
+ description: string;
+ imageUrl: string;
+ link: string;
+ tags: TagType[];
+}
\ No newline at end of file