前端简单界面

Change-Id: I7df9774daf4df8d92b13e659effe426ab0b6180b
diff --git a/pt--frontend/src/components/ActivityFullList.jsx b/pt--frontend/src/components/ActivityFullList.jsx
new file mode 100644
index 0000000..02b3ebd
--- /dev/null
+++ b/pt--frontend/src/components/ActivityFullList.jsx
@@ -0,0 +1,36 @@
+// src/components/ActivityFullList.jsx
+import React, { useEffect, useState } from 'react';
+import { getFullActivities } from '../api/activity';
+
+const ActivityFullList = () => {
+    const [activities, setActivities] = useState([]);
+
+    useEffect(() => {
+        getFullActivities()
+            .then(res => setActivities(res.data))
+            .catch(err => console.error('获取完整活动失败:', err));
+    }, []);
+
+    return (
+        <div>
+            <h2>完整活动信息</h2>
+            <div style={{ display: 'flex', flexDirection: 'column', gap: '24px' }}>
+                {activities.map(activity => (
+                    <div key={activity.activityid} style={{ borderBottom: '1px solid #ddd', paddingBottom: '16px' }}>
+                        <h3>{activity.title}</h3>
+                        <img
+                            src={activity.photo}
+                            alt={activity.title}
+                            style={{ width: '300px', height: 'auto', borderRadius: '4px' }}
+                        />
+                        <p><strong>内容:</strong>{activity.content}</p>
+                        <p><strong>时间:</strong>{activity.time}</p>
+                        <p><strong>奖励:</strong>{activity.award}</p>
+                    </div>
+                ))}
+            </div>
+        </div>
+    );
+};
+
+export default ActivityFullList;