feat: 个人信息修改

This commit is contained in:
2026-06-22 12:31:04 +08:00
parent 1a175bfdd0
commit ec66afaa72
9 changed files with 1595 additions and 13 deletions

View File

@@ -70,6 +70,61 @@ export function getUserInfo() {
return requestClient.get<UserInfoResponse>('/user/info')
}
/** 更新用户信息请求(所有字段可选,传什么更新什么) */
export interface UpdateUserInfoRequest {
/** 用户昵称,最长 16 位 */
nickName?: string
/** 头像图片 URL 地址 */
avatar?: string
/** 个性签名,最长 64 位 */
signature?: string
/** 年龄 */
age?: number
/** 性别1=男2=女 */
sex?: number
/** 生日ISO 8601 日期格式,如 "1998-06-15" */
birthday?: string
}
/**
* 更新当前登录用户信息
*
* 所有字段可选,传什么更新什么。
*
* @param data - 更新请求
* @returns 更新后的用户信息
*/
export function updateUserInfo(data: UpdateUserInfoRequest) {
return requestClient.put<UserInfoResponse>('/user/info', data)
}
/**
* 上传用户头像
*
* 接收裁剪后的图片文件,保存后返回更新后的用户信息。
*
* @param file - 头像文件JPEG/PNG/WebP/GIF≤2MB
* @returns 更新后的用户信息
*/
export function uploadAvatar(file: File) {
const formData = new FormData()
formData.append('file', file)
return requestClient.post<UserInfoResponse>('/user/avatar', formData, {
headers: { 'Content-Type': 'multipart/form-data' }
} as any)
}
/**
* 删除用户头像
*
* 删除磁盘文件并将 DB 中 avatar 置空。
*
* @returns 更新后的用户信息avatar 为 null
*/
export function deleteAvatar() {
return requestClient.delete<UserInfoResponse>('/user/avatar')
}
/**
* 更新当前登录用户在线状态
*