/** * @description 用户相关API * @author yslg * @since 2025-10-06 */ import { api } from '@/apis/index'; import type { SysUser, SysUserInfo, UserVO, UserDeptRoleVO, SysUserDeptRole, ResultDomain } from '@/types'; /** * 用户API服务 */ export const userApi = { /** * 获取当前用户信息 * @returns Promise> */ async getCurrentUser(): Promise> { const response = await api.get('/users/current'); return response.data; }, /** * 更新当前用户信息 * @param user 用户信息 * @returns Promise> */ async updateCurrentUser(user: SysUser): Promise> { const response = await api.put('/users/current', user); return response.data; }, /** * 更新用户详细信息 * @param userInfo 用户详细信息 * @returns Promise> */ async updateUserInfo(userInfo: SysUserInfo): Promise> { const response = await api.put('/users/info', userInfo); return response.data; }, /** * 修改密码 * @param oldPassword 旧密码 * @param newPassword 新密码 * @returns Promise> */ async changePassword(oldPassword: string, newPassword: string): Promise> { const response = await api.post('/users/change-password', { oldPassword, newPassword }); return response.data; }, /** * 获取用户列表 * @param filter 过滤条件 * @returns Promise> */ async getUserList(filter: SysUser): Promise> { const response = await api.post('/users/list', filter); return response.data; }, /** * 创建用户 * @param user 用户信息 * @returns Promise> */ async createUser(user: SysUser): Promise> { const response = await api.post('/users/user', user); return response.data; }, /** * 更新用户 * @param user 用户信息 * @returns Promise> */ async updateUser(user: SysUser): Promise> { const response = await api.put('/users/user', user); return response.data; }, /** * 删除用户 * @param user 用户信息 * @returns Promise> */ async deleteUser(user: SysUser): Promise> { const response = await api.delete('/users/user', user); return response.data; }, /** * 获取用户部门角色绑定信息 * @param user 用户信息 * @returns Promise> */ async getUserDeptRole(user: SysUserDeptRole): Promise> { const response = await api.post('/users/bind/deptrole/list', user); return response.data; }, /** * 绑定用户部门角色 * @param userDeptRoleVO 用户部门角色绑定信息 * @returns Promise> */ async bindUserDeptRole(userDeptRoleVO: UserDeptRoleVO): Promise> { const response = await api.post('/users/bind/deptrole', userDeptRoleVO); return response.data; }, /** * 解绑用户部门角色 * @param userDeptRoleVO 用户部门角色解绑信息 * @returns Promise> */ async unbindUserDeptRole(userDeptRoleVO: UserDeptRoleVO): Promise> { const response = await api.post('/users/unbind/deptrole', userDeptRoleVO); return response.data; }, /** * 批量删除用户 * @param userIds 用户ID列表 * @returns Promise> */ async batchDeleteUsers(userIds: string[]): Promise> { const response = await api.post('/users/batch-delete', { userIds }); return response.data; }, /** * 启用/禁用用户 * @param userId 用户ID * @param status 状态 0-启用 1-禁用 * @returns Promise> */ async changeUserStatus(userId: string, status: number): Promise> { const response = await api.patch(`/users/${userId}/status`, { status }); return response.data; }, /** * 重置用户密码 * @param userId 用户ID * @returns Promise> 返回新密码 */ async resetPassword(userId: string): Promise> { const response = await api.post(`/users/${userId}/reset-password`); return response.data; }, /** * 上传用户头像 * @param file 文件 * @returns Promise> 返回头像URL */ async uploadAvatar(file: File): Promise> { const formData = new FormData(); formData.append('file', file); const response = await api.upload('/users/avatar', formData); return response.data; } };