完成主页, 作品页,作品编辑页
> 未对接后端接口

Change-Id: I5d62663602656da4940707e00f76bfe09d824c2c
diff --git a/src/feature/user/userSlice.ts b/src/feature/user/userSlice.ts
index c3f7e44..64daa4e 100644
--- a/src/feature/user/userSlice.ts
+++ b/src/feature/user/userSlice.ts
@@ -1,6 +1,6 @@
 // src/store/userSlice.ts
 import { createSlice, createAsyncThunk, type PayloadAction } from '@reduxjs/toolkit';
-import type { UserInfo } from '../../api/User/type';
+import type { UserDetailInfo, UserInfo } from '../../api/User/type';
 import UserAPi from '../../api/User/UserApi';
 
 // 定义用户信息的类型
@@ -39,6 +39,23 @@
     } 
 );
 
+export const getUserDetail = createAsyncThunk<
+    UserDetailInfo,
+    string,
+    {rejectValue:string}
+>(
+    'user/getUserDetail',
+    async (id, {  rejectWithValue }) => {
+        if(!id) return rejectWithValue("未获取到用户信息");
+        const response = await UserAPi.getMeDetail(id);
+        if (response.data.code == 0) {
+            return response.data.data;
+        } else {
+            return rejectWithValue(response.data.message);
+        }
+    } 
+);
+
 // 创建 userSlice
 const userSlice = createSlice({
     name: 'user',
@@ -62,7 +79,21 @@
             .addCase(getUserInfo.rejected, (state, action) => {
                 state.status = 'failed';
                 state.error = action.error.message ?? 'Unknown error';
-            });
+            })
+            // getUserDetailFromState
+            .addCase(getUserDetail.pending, (state) => {
+                state.status = 'loading';
+                state.error = null;
+            })
+            .addCase(getUserDetail.fulfilled, (state, action: PayloadAction<UserDetailInfo>) => {
+                state.status = 'succeeded';
+                state.username = action.payload.username;
+                state.email = action.payload.email || '';
+            })
+            .addCase(getUserDetail.rejected, (state, action) => {
+                state.status = 'failed';
+                state.error = action.payload || action.error.message || 'Unknown error';
+            })
     },
 });