/** * @description 用户相关API * @author yslg * @since 2025-10-06 */ import { api } from './index'; import type { SysUser, SysUserInfo, UserVO, PageDomain, PageParam } from '@/types'; /** * 用户API服务 */ export const userApi = { /** * 获取当前用户信息 * @returns Promise */ async getCurrentUser(): Promise { const response = await api.get('/user/current'); return response.data.data!; }, /** * 更新当前用户信息 * @param user 用户信息 * @returns Promise */ async updateCurrentUser(user: SysUser): Promise { const response = await api.put('/user/current', user); return response.data.data!; }, /** * 更新用户详细信息 * @param userInfo 用户详细信息 * @returns Promise */ async updateUserInfo(userInfo: SysUserInfo): Promise { const response = await api.put('/user/info', userInfo); return response.data.data!; }, /** * 修改密码 * @param oldPassword 旧密码 * @param newPassword 新密码 * @returns Promise */ async changePassword(oldPassword: string, newPassword: string): Promise { const response = await api.post('/user/change-password', { oldPassword, newPassword }); return response.data.data!; }, /** * 获取用户列表(分页) * @param pageParam 分页参数 * @returns Promise> */ async getUserList(pageParam: PageParam): Promise> { const response = await api.get('/user/list', { params: pageParam }); return response.data.pageDomain!; }, /** * 根据ID获取用户 * @param userId 用户ID * @returns Promise */ async getUserById(userId: string): Promise { const response = await api.get(`/user/${userId}`); return response.data.data!; }, /** * 创建用户 * @param user 用户信息 * @returns Promise 返回用户ID */ async createUser(user: SysUser): Promise { const response = await api.post('/user', user); return response.data.data!; }, /** * 更新用户 * @param userId 用户ID * @param user 用户信息 * @returns Promise */ async updateUser(userId: string, user: SysUser): Promise { const response = await api.put(`/user/${userId}`, user); return response.data.data!; }, /** * 删除用户 * @param userId 用户ID * @returns Promise */ async deleteUser(userId: string): Promise { const response = await api.delete(`/user/${userId}`); return response.data.data!; }, /** * 批量删除用户 * @param userIds 用户ID列表 * @returns Promise */ async batchDeleteUsers(userIds: string[]): Promise { const response = await api.post('/user/batch-delete', { userIds }); return response.data.data!; }, /** * 启用/禁用用户 * @param userId 用户ID * @param status 状态 0-启用 1-禁用 * @returns Promise */ async changeUserStatus(userId: string, status: number): Promise { const response = await api.patch(`/user/${userId}/status`, { status }); return response.data.data!; }, /** * 重置用户密码 * @param userId 用户ID * @returns Promise 返回新密码 */ async resetPassword(userId: string): Promise { const response = await api.post(`/user/${userId}/reset-password`); return response.data.data!; }, /** * 上传用户头像 * @param file 文件 * @returns Promise 返回头像URL */ async uploadAvatar(file: File): Promise { const formData = new FormData(); formData.append('file', file); const response = await api.upload('/user/avatar', formData); return response.data.data!; } };