保存本地对routes.ts的修改

Change-Id: I4f4dbd8069893d7363e251130791dc0594be44e1
diff --git a/src/api/categoryApi.ts b/src/api/categoryApi.ts
new file mode 100644
index 0000000..816ac71
--- /dev/null
+++ b/src/api/categoryApi.ts
@@ -0,0 +1,90 @@
+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