feat(api): 重构 API 调用并优化用户认证流程
- 新增 auth、forum 和 user API 文件夹,重新组织 API 调用结构
- 重构 AuthContext,使用新 API 进行用户认证和信息管理
- 更新 AdminPanel、ForumPage 等组件,使用新的 API 调用
- 删除旧的 authApi.js 文件,清理冗余代码
- 优化用户登录、注册和登出流程,改进错误处理和用户提示
Change-Id: If664193e1bf30036c197f164edc5b10df75f1331
diff --git a/src/api/auth.js b/src/api/auth.js
new file mode 100644
index 0000000..81a7d9b
--- /dev/null
+++ b/src/api/auth.js
@@ -0,0 +1,45 @@
+import request from "@/utils/request";
+
+// 用户认证相关API
+export const userLogin = (params) => {
+ return request.post("/user/login", {...params});
+};
+
+export const adminLogin = (params) => {
+ return request.post("/admin/login", {...params});
+};
+
+export const registerUser = (params) => {
+ return request.post("/user/register", {...params});
+};
+
+export const updateUsername = (params) => {
+ return request.post("/user/update/username", {...params});
+};
+
+export const updatePassword = (params) => {
+ return request.post("/user/update/password", {...params});
+};
+
+export const updateEmail = (params) => {
+ return request.post("/user/update/email", {...params});
+};
+
+export const getUserList = (params) => {
+ return request.get('/user/list', {params});
+};
+
+export const deleteUser = (params) => {
+ return request.delete("/user/delete", {params});
+};
+
+export const logoutUser = () => {
+ // 清除本地存储
+ localStorage.removeItem("token");
+ localStorage.removeItem("user");
+
+ return Promise.resolve({
+ success: true,
+ message: "注销成功",
+ });
+};
\ No newline at end of file
diff --git a/src/api/forum.js b/src/api/forum.js
new file mode 100644
index 0000000..61518be
--- /dev/null
+++ b/src/api/forum.js
@@ -0,0 +1,31 @@
+import request from "@/utils/request";
+
+// 帖子相关API
+export const createPost = (params) => {
+ return request.post("/posts/create", {...params});
+};
+
+export const getPosts = (params) => {
+ return request.get("/posts/list", {params});
+};
+
+export const deletePost = (username, pid) => {
+ return request.delete("/posts/delete", {
+ data: { username, pid },
+ });
+};
+
+// 评论相关API
+export const addComment = (params) => {
+ return request.post("/comment/add", {...params});
+};
+
+export const getComments = (params) => {
+ return request.get('/comment/get', {params});
+};
+
+export const deleteComment = (username, commentId) => {
+ return request.delete("/comment/delete", {
+ data: { username, commentId },
+ });
+};
\ No newline at end of file
diff --git a/src/api/user.js b/src/api/user.js
new file mode 100644
index 0000000..7ac2d72
--- /dev/null
+++ b/src/api/user.js
@@ -0,0 +1,35 @@
+import request from "@/utils/request";
+
+// 用户资料相关API
+export const getUserProfile = (username) => {
+ return request.get(`/user/profile/${username}`);
+};
+
+export const updateUserProfile = (userData) => {
+ return request.put("/user/profile", userData);
+};
+
+export const uploadAvatar = (formData) => {
+ return request.post("/user/avatar", formData, {
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ },
+ });
+};
+
+// PT站统计信息API
+export const getUserStats = (username) => {
+ return request.get(`/user/stats/${username}`);
+};
+
+export const getUserTorrents = (username, type = 'all') => {
+ return request.get(`/user/torrents/${username}`, {
+ params: { type } // type: 'seeding', 'leeching', 'completed', 'all'
+ });
+};
+
+export const getUserHistory = (username, page = 1, limit = 10) => {
+ return request.get(`/user/history/${username}`, {
+ params: { page, limit }
+ });
+};
\ No newline at end of file