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

Change-Id: I5d62663602656da4940707e00f76bfe09d824c2c
diff --git a/src/api/User/UserApi.ts b/src/api/User/UserApi.ts
index 56152fc..cd7aa55 100644
--- a/src/api/User/UserApi.ts
+++ b/src/api/User/UserApi.ts
@@ -1,12 +1,17 @@
 import type { AxiosResponse } from "axios";
 import axios from "axios";
-import type { UserInfo } from "./type";
+import type { UserDetailInfo, UserInfo } from "./type";
 import type { CommonResponse } from "../type";
 
 class UserAPi {
     static getMe() :Promise<AxiosResponse<CommonResponse<UserInfo>>> {
         return axios.get('/api/user/me');
     }
+
+    static getMeDetail(userid:string) :Promise<AxiosResponse<CommonResponse<UserDetailInfo>>> {
+        return axios.get(`/api/user/${userid}`);
+    }
 }
 
+
 export default UserAPi;
\ No newline at end of file
diff --git a/src/api/User/type.ts b/src/api/User/type.ts
index a7a1503..1410aa8 100644
--- a/src/api/User/type.ts
+++ b/src/api/User/type.ts
@@ -6,5 +6,5 @@
 export interface UserDetailInfo {
     userid: string,
     username: string,
-    // ...
+    email: string,
 }
\ No newline at end of file
diff --git a/src/api/categoryApi.ts b/src/api/categoryApi.ts
deleted file mode 100644
index 816ac71..0000000
--- a/src/api/categoryApi.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-import axios from 'axios';
-import type { CategoryDTO, Category, WorkResponse } from './otherType';
-
-const API_BASE_URL = '/api';
-
-class CategoryAPI {
-  /**
-   * 获取全部分区(树形结构)
-   * @returns 返回分区的树形结构数据
-   */
-  static getCategoryTree(): Promise<CategoryDTO[]> {
-    return axios.get<CategoryDTO[]>(`${API_BASE_URL}/categories`)
-      .then(response => response.data);
-  }
-
-  /**
-   * 获取单个分区详情
-   * @param id 分区ID
-   * @returns 返回单个分区的详细信息
-   */
-  static getCategory(id: number): Promise<Category> {
-    return axios.get<Category>(`${API_BASE_URL}/categories/${id}`)
-      .then(response => response.data);
-  }
-
-  /**
-   * 创建新分区
-   * @param category 分区数据(不包含ID)
-   * @returns 返回创建成功的消息
-   */
-  static createCategory(category: Omit<Category, 'id'>): Promise<string> {
-    return axios.post<string>(`${API_BASE_URL}/categories`, category)
-      .then(response => response.data);
-  }
-
-  /**
-   * 更新分区信息
-   * @param id 分区ID
-   * @param category 更新后的分区数据
-   * @returns 返回更新成功的消息
-   */
-  static updateCategory(id: number, category: Partial<Category>): Promise<string> {
-    return axios.put<string>(`${API_BASE_URL}/categories/${id}`, category)
-      .then(response => response.data);
-  }
-
-  /**
-   * 删除分区
-   * @param id 分区ID
-   * @returns 返回删除成功的消息
-   */
-  static deleteCategory(id: number): Promise<string> {
-    return axios.delete<string>(`${API_BASE_URL}/categories/${id}`)
-      .then(response => response.data);
-  }
-
-  /**
-   * 获取分区下的作品列表(带分页)
-   * @param categoryId 分区ID
-   * @param params 分页和排序参数
-   * @returns 返回作品列表和分页信息
-   */
-  static getWorksByCategory(
-    categoryId: number,
-    params?: {
-      page?: number;
-      size?: number;
-      sort?: string;
-    }
-  ): Promise<WorkResponse> {
-    return axios.get<WorkResponse>(`${API_BASE_URL}/works`, {
-      params: {
-        categoryId,
-        ...params
-      }
-    }).then(response => response.data);
-  }
-
-  /**
-   * 获取子分区列表
-   * @param parentId 父分区ID
-   * @returns 返回子分区列表
-   */
-  static getSubCategories(parentId: number): Promise<CategoryDTO[]> {
-    return axios.get<CategoryDTO[]>(`${API_BASE_URL}/categories/${parentId}/children`)
-      .then(response => response.data);
-  }
-}
-
-export default CategoryAPI;
\ No newline at end of file
diff --git a/src/api/categoryTypes.ts b/src/api/categoryTypes.ts
deleted file mode 100644
index 4a46034..0000000
--- a/src/api/categoryTypes.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import type { ReactNode } from "react";
-
-// 基础分类接口
-export interface CategoryDTO {
-  id: number;
-  name: string;
-  description?: string;
-  parentId?: number;  // 移除了 null 类型,只保留 number | undefined
-  children?: CategoryDTO[];
-  workCount?: number;
-}
-
-
-// 基础资源接口
-interface BaseResource {
-  id: number;
-  title: string;
-  categoryId: number;
-  categoryName: string;
-  uploadDate: string;
-  uploader: string;
-  size: string;
-  seeders: number;
-  leechers: number;
-  downloadCount: number;
-  hash: string;
-}
-
-// 音乐资源
-export interface MusicResource extends BaseResource {
-  category: ReactNode;
-  artist: string;
-  quality: 'MP3 128k' | 'MP3 320k' | 'FLAC' | 'APE' | 'Hi-Res' | 'DSD';
-  genre: string[];
-}
-
-// 影视资源
-export interface MovieResource extends BaseResource {
-  director: string;
-  actors: string[];
-  resolution: '1080p' | '720p' | '4K' | '8K';
-  duration: string;
-}
-
-// 游戏资源
-export interface GameResource extends BaseResource {
-  developer: string;
-  publisher: string;
-  platform: 'PC' | 'PS' | 'Xbox' | 'Switch';
-  releaseDate: string;
-}
-
-// 其他资源
-export interface OtherResource extends BaseResource {
-  description: string;
-  fileType: string;
-}
-
-// 分类DTO
-export interface CategoryDTO {
-  id: number;
-  name: string;
-  description?: string;
-  parentId?: number;
-  children?: CategoryDTO[];
-  workCount?: number;
-}
\ No newline at end of file
diff --git a/src/api/commentApi.ts b/src/api/commentApi.ts
deleted file mode 100644
index 360e659..0000000
--- a/src/api/commentApi.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import axios from 'axios';
-import type { Comment, CommentFormData, CommentReply, ReplyFormData } from './otherType';
-
-const API_BASE_URL = '/api';
-
-class CommentAPI {
-  /**
-   * 添加评论
-   */
-  static addComment(data: CommentFormData): Promise<Comment> {
-    return axios.post<Comment>(`${API_BASE_URL}/comments`, data)
-      .then(response => response.data);
-  }
-
-  /**
-   * 删除评论
-   */
-  static deleteComment(commentId: number): Promise<void> {
-    return axios.delete(`${API_BASE_URL}/comments/${commentId}`);
-  }
-
-  /**
-   * 更新评论
-   */
-  static updateComment(commentId: number, data: CommentFormData): Promise<Comment> {
-    return axios.put<Comment>(`${API_BASE_URL}/comments/${commentId}`, data)
-      .then(response => response.data);
-  }
-
-  /**
-   * 获取单个评论
-   */
-  static getCommentById(commentId: number): Promise<Comment> {
-    return axios.get<Comment>(`${API_BASE_URL}/comments/${commentId}`)
-      .then(response => response.data);
-  }
-
-  /**
-   * 获取帖子下的所有评论
-   */
-  static getCommentsByPostId(postId: number): Promise<Comment[]> {
-    return axios.get<Comment[]>(`${API_BASE_URL}/comments/post/${postId}`)
-      .then(response => response.data);
-  }
-
-  /**
-   * 添加回复
-   */
-  static addReply(commentId: number, data: ReplyFormData): Promise<CommentReply> {
-    return axios.post<CommentReply>(`${API_BASE_URL}/comments/${commentId}/replies`, data)
-      .then(response => response.data);
-  }
-
-  /**
-   * 获取评论的所有回复
-   */
-  static getReplies(commentId: number): Promise<CommentReply[]> {
-    return axios.get<CommentReply[]>(`${API_BASE_URL}/comments/${commentId}/replies`)
-      .then(response => response.data);
-  }
-
-  /**
-   * 点赞评论
-   */
-  static likeComment(commentId: number): Promise<void> {
-    return axios.post(`${API_BASE_URL}/comments/${commentId}/like`);
-  }
-
-  /**
-   * 举报评论
-   */
-  static reportComment(commentId: number, reason: string): Promise<void> {
-    return axios.post(`${API_BASE_URL}/comments/${commentId}/report`, { reason });
-  }
-}
-
-export default CommentAPI;
\ No newline at end of file
diff --git a/src/api/interceptors.ts b/src/api/interceptors.ts
index 3c0863b..04bdcb3 100644
--- a/src/api/interceptors.ts
+++ b/src/api/interceptors.ts
@@ -26,7 +26,7 @@
         code,
         message: msg,
         data,
-        success: code === 0, // 根据 code 判断请求是否成功
+        ...response.data
       },
     };
   },
diff --git a/src/api/otherType.ts b/src/api/otherType.ts
deleted file mode 100644
index 60523d0..0000000
--- a/src/api/otherType.ts
+++ /dev/null
@@ -1,164 +0,0 @@
-// 认证相关类型
-export interface LoginRequest {
-  email: string;
-  password: string;
-}
-
-export interface LoginResponse {
-  user: string;
-  token: string;
-  refreshToken: string;
-}
-
-export interface CommonResponse<T= null> {
-    code: number;       
-    message: string;     
-    data: T;          
-}
-
-// 作品相关类型
-export interface Work {
-  size: string;
-  data(data: any): unknown;
-  artist: string;
-  quality: string;
-  genre: string[];
-  id: number;
-  title: string;
-  author: string;
-  authorId: number;
-  views: number;
-  likes: number;
-  categoryId: number;
-  categoryName: string;
-  description: string;
-  content: string;
-  coverUrl: string;
-  createTime: string;
-  attachments: Attachment[];
-  bugCount: number;
-  discussionCount: number;
-}
-
-export interface WorkResponse {
-  content: Work[];
-  totalElements: number;
-  totalPages: number;
-}
-
-export interface WorkFormData {
-  title: string;
-  categoryId: number;
-  description: string;
-  content: string;
-  coverFile?: File;
-  attachments?: File[];
-}
-
-// Bug反馈相关类型
-export interface BugReport {
-  id: number;
-  title: string;
-  description: string;
-  severity: 'low' | 'medium' | 'high';
-  status: 'open' | 'resolved' | 'wontfix';
-  reporter: string;
-  reporterId: number;
-  workId: number;
-  createTime: string;
-}
-
-// 讨论区相关类型
-export interface Discussion {
-  id: number;
-  title: string;
-  content: string;
-  author: string;
-  authorId: number;
-  workId: number;
-  isPinned: boolean;
-  commentCount: number;
-  createTime: string;
-  lastUpdateTime: string;
-}
-
-export interface DiscussionFormData {
-  workId: number;
-  title: string;
-  content: string;
-}
-
-// 评论相关类型
-export interface Comment {
-  id: number;
-  author: string;
-  avatar: string;
-  content: string;
-  likes: number;
-  replyCount: number;
-  createTime: string;
-  replies?: CommentReply[];
-}
-
-export interface CommentFormData {
-  postId: number; // 可以是作品ID或讨论区ID
-  content: string;
-  parentId?: number; // 用于回复评论
-}
-
-export interface CommentReply {
-  id: number;
-  author: string;
-  avatar: string;
-  content: string;
-  likes: number;
-  createTime: string;
-}
-
-export interface ReplyFormData {
-  content: string;
-}
-
-// 分区相关类型
-export interface Category {
-  id: number;
-  name: string;
-  description?: string;
-  parentId?: number | null;
-  coverUrl?: string;
-  createdAt?: string;
-  updatedAt?: string;
-}
-
-export interface CategoryDTO extends Category {
-  children?: CategoryDTO[];
-  workCount?: number;
-}
-
-// 用户相关类型
-export interface User {
-  id: number;
-  username: string;
-  email: string;
-  avatar?: string;
-  role: 'user' | 'admin';
-  createdAt: string;
-  worksCount: number;
-  completedWorks: number;
-}
-
-// 通用类型
-export interface Attachment {
-  id: number;
-  name: string;
-  url: string;
-  size: string;
-}
-
-// API响应通用类型
-export interface ApiResponse<T> {
-  success: boolean;
-  data?: T;
-  message?: string;
-  error?: string;
-}
\ No newline at end of file
diff --git a/src/api/workApi.ts b/src/api/workApi.ts
deleted file mode 100644
index d624821..0000000
--- a/src/api/workApi.ts
+++ /dev/null
@@ -1,105 +0,0 @@
-import axios from 'axios';
-import type { Work, WorkResponse, WorkFormData, BugReport, Discussion } from './otherType';
-
-const API_BASE_URL = '/api';
-
-class WorkAPI {
-  /**
-   * 获取作品列表(支持分页、分类筛选和搜索)
-   */
-  static getWorks(params?: {
-    categoryId?: number;
-    page?: number;
-    size?: number;
-    search?: string;
-  }): Promise<WorkResponse> {
-    return axios.get<WorkResponse>(`${API_BASE_URL}/works`, { params })
-      .then(response => response.data);
-  }
-
-  /**
-   * 获取单个作品详情
-   */
-  static getWorkById(id: number): Promise<Work> {
-    return axios.get<Work>(`${API_BASE_URL}/works/${id}`)
-      .then(response => response.data);
-  }
-
-  /**
-   * 创建新作品
-   */
-  static createWork(data: WorkFormData): Promise<Work> {
-    return axios.post<Work>(`${API_BASE_URL}/works`, data)
-      .then(response => response.data);
-  }
-
-  /**
-   * 更新作品信息
-   */
-  static updateWork(id: number, data: WorkFormData): Promise<Work> {
-    return axios.put<Work>(`${API_BASE_URL}/works/${id}`, data)
-      .then(response => response.data);
-  }
-
-  /**
-   * 删除作品
-   */
-  static deleteWork(id: number): Promise<void> {
-    return axios.delete(`${API_BASE_URL}/works/${id}`);
-  }
-
-  /**
-   * 点赞作品
-   */
-  static likeWork(id: number): Promise<void> {
-    return axios.post(`${API_BASE_URL}/works/${id}/like`);
-  }
-
-  /**
-   * 根据作者查询作品
-   */
-  static getWorksByAuthor(author: string): Promise<Work[]> {
-    return axios.get<Work[]>(`${API_BASE_URL}/works/byAuthor`, { params: { author } })
-      .then(response => response.data);
-  }
-
-  /**
-   * 获取作品Bug反馈列表
-   */
-  static getBugReports(workId: number): Promise<BugReport[]> {
-    return axios.get<BugReport[]>(`${API_BASE_URL}/works/${workId}/bugs`)
-      .then(response => response.data);
-  }
-
-  /**
-   * 提交Bug反馈
-   */
-  static reportBug(workId: number, data: {
-    title: string;
-    description: string;
-    severity: 'low' | 'medium' | 'high';
-  }): Promise<void> {
-    return axios.post(`${API_BASE_URL}/works/${workId}/bugs`, data);
-  }
-
-  /**
-   * 获取作品讨论区列表
-   */
-  static getDiscussions(workId: number): Promise<Discussion[]> {
-    return axios.get<Discussion[]>(`${API_BASE_URL}/works/${workId}/discussions`)
-      .then(response => response.data);
-  }
-
-  /**
-   * 创建新讨论
-   */
-  static createDiscussion(data: {
-    workId: number;
-    title: string;
-    content: string;
-  }): Promise<void> {
-    return axios.post(`${API_BASE_URL}/discussions`, data);
-  }
-}
-
-export default WorkAPI;
\ No newline at end of file