diff --git a/src/mock/homepage.d.ts b/src/mock/homepage.d.ts
new file mode 100644
index 0000000..ba70a8a
--- /dev/null
+++ b/src/mock/homepage.d.ts
@@ -0,0 +1,3 @@
+import type MockAdapter from 'axios-mock-adapter';
+
+export declare function setupUserMessageMock(mock: MockAdapter): void;
\ No newline at end of file
diff --git a/src/mock/homepage.js b/src/mock/homepage.js
new file mode 100644
index 0000000..41ca3c7
--- /dev/null
+++ b/src/mock/homepage.js
@@ -0,0 +1,46 @@
+import Mock from 'mockjs';
+import MockAdapter from 'axios-mock-adapter';
+import {getUserMessage} from '@/api/homepage';
+
+/**
+ * 设置用户相关的 Mock 接口
+ * @param {MockAdapter} mock 
+ */
+export function setupUserMessageMock(mock) {
+    mock.onGet(getUserMessage).reply((config) => {
+        console.log("visited")
+        let data = Mock.mock({
+            'username': '阳菜，放睛！',
+            'inviteCode': '1314520',
+            'stats': {
+                'likes': 0,
+                'following': 25,
+                'followers': 276,
+                'mutualFollows': 52
+            },
+            'upload': '5.2 ',
+            'level': '荣耀会员',
+            // 'works': [{
+            //     'id': 1,
+            //     'title': '【PC】【ARPG】【开放世界】刺客信条影破解版',
+            //     'publishTime': '2025-3-21',
+            //     'downloadCount': 0,
+            //     'seedCount': 1
+            // }],
+            'works': [{
+                'postId': 0,
+                'userId': 0,
+                'postTitle': '阳菜',
+                "postContent": "",
+                "createdAt": 0,
+                "postType": "",
+                "viewCount": 0,
+                "hotScore": 0.0,
+                "lastCalculated": 0
+                }],
+            'petImage': '/assets/pet-blue-star.png',
+            'trafficImage': '/assets/duck-computer.png'
+        });
+        return [200, data];
+    });
+}
\ No newline at end of file
diff --git a/src/mock/index.ts b/src/mock/index.ts
index 4429216..49cc44f 100644
--- a/src/mock/index.ts
+++ b/src/mock/index.ts
@@ -1,17 +1,19 @@
 import MockAdapter from 'axios-mock-adapter';
 import instance from '@/utils/axios'
-import {setupAuthMock}  from './auth'
+import { setupAuthMock }  from './auth'
 import { setupUserMock } from './user';
 import { setupPostMock } from './post';
 import { setupCommentMock } from './comment';
+import {setupUserMessageMock} from './homepage';
+import { setupUploadMock } from './upload';
 
-// 创建 Mock 实例
-export const mock = new MockAdapter(instance, { 
-  delayResponse: process.env.NODE_ENV === 'test' ? 0 : 500 
-})
 
 // 聚合所有 Mock 模块
 export function setupMock() {
+  return;
+  const mock = new MockAdapter(instance, { 
+    delayResponse: process.env.NODE_ENV === 'test' ? 0 : 500 
+  })
   // 开发环境启用 Mock
   if (process.env.NODE_ENV !== 'development') return
 
@@ -20,7 +22,8 @@
   setupUserMock(mock)
   setupPostMock(mock)
   setupCommentMock(mock)
-  
+  setupUserMessageMock(mock)
+  setupUploadMock(mock)
   console.log('Mock 模块已加载')
 }
 
diff --git a/src/mock/upload.d.ts b/src/mock/upload.d.ts
new file mode 100644
index 0000000..3ddb4b9
--- /dev/null
+++ b/src/mock/upload.d.ts
@@ -0,0 +1,3 @@
+import type MockAdapter from 'axios-mock-adapter';
+
+export declare function setupUploadMock(mock: MockAdapter): void;
\ No newline at end of file
diff --git a/src/mock/upload.js b/src/mock/upload.js
new file mode 100644
index 0000000..c3f2705
--- /dev/null
+++ b/src/mock/upload.js
@@ -0,0 +1,26 @@
+import Mock from 'mockjs';
+import MockAdapter from 'axios-mock-adapter';
+import {Upload} from '@/api/upload'; 
+
+/**
+ * 设置上传种子的 Mock 接口
+ * @param {MockAdapter} mock 
+ */
+export function setupUploadMock(mock) {
+  mock.onPost(Upload).reply((config) => {
+    const body = JSON.parse(config.data);
+
+    console.log('收到上传请求，内容如下:');
+    console.log(body);
+
+
+    return [
+      200,
+      {
+        code: 0,
+        message: '',
+        data: null
+      }
+    ];
+  });
+}
