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 fabb34e..f9c6a64 100644
--- a/src/mock/index.ts
+++ b/src/mock/index.ts
@@ -1,8 +1,10 @@
 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 {setupUserMessageMock} from './homepage';
+import { setupUploadMock } from './upload';
 
 // 创建 Mock 实例
 export const mock = new MockAdapter(instance, { 
@@ -18,7 +20,9 @@
   setupAuthMock(mock)
   setupUserMock(mock)
   setupPostMock(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
+      }
+    ];
+  });
+}
