feat(用户中心): 重构用户个人中心页面并添加HTTP常量

重构用户个人中心页面,新增HTTP请求方法常量模块
- 创建constants/http.ts定义HTTP方法常量
- 在API模块中使用HTTP常量替代字符串
- 重写用户中心页面,增加编辑资料和账号安全功能
- 添加头像上传、密码修改、邮箱绑定等功能
This commit is contained in:
2026-01-18 16:59:15 +08:00
parent 13b320ca93
commit 783ea21d55
6 changed files with 856 additions and 187 deletions

View File

@@ -1,5 +1,6 @@
import request from "@/plugins/axios";
import type { ApiResponse } from "../response";
import { HttpMethod } from "@/constants";
/**
* 认证服务 API 类型定义
@@ -21,6 +22,7 @@ export interface LoginResponse {
accessTokenExpireTime: number | null;
refreshTokenExpireTime: number | null;
}
/**
* 注册请求参数
*/
@@ -29,10 +31,12 @@ export interface RegisterRequest {
userPassword: string;
checkPassword: string;
}
/**
* 注册响应数据
*/
export type RegisterResponse = string;
// 刷新令牌响应数据
export interface RefreshTokenResponse {
id: number | null;
@@ -56,7 +60,11 @@ export interface RefreshTokenResponse {
export const login = (
data: LoginRequest
): Promise<ApiResponse<LoginResponse>> => {
return request.post("/v1/auth/login", data);
return request({
url: "/v1/auth/login",
method: HttpMethod.POST,
data,
});
};
/**
@@ -67,8 +75,13 @@ export const login = (
export const register = (
data: RegisterRequest
): Promise<ApiResponse<RegisterResponse>> => {
return request.post("/v1/user/register", data);
return request({
url: "/v1/user/register",
method: HttpMethod.POST,
data,
});
};
/**
* 令牌刷新
* @param refreshToken 刷新令牌
@@ -77,7 +90,9 @@ export const register = (
export const refreshToken = (
refreshToken: string
): Promise<ApiResponse<RefreshTokenResponse>> => {
return request.post("/v1/auth/refresh", null, {
return request({
url: "/v1/auth/refresh",
method: HttpMethod.POST,
params: {
refreshToken,
},
@@ -92,7 +107,11 @@ export const refreshToken = (
export const getAccessToken = (
data: LoginRequest
): Promise<ApiResponse<string>> => {
return request.post("/v1/auth/auth", data);
return request({
url: "/v1/auth/auth",
method: HttpMethod.POST,
data,
});
};
/**
@@ -100,5 +119,8 @@ export const getAccessToken = (
* @returns 验证结果
*/
export const validateToken = (): Promise<ApiResponse<boolean>> => {
return request.post("/v1/auth/validate");
return request({
url: "/v1/auth/validate",
method: HttpMethod.POST,
});
};