2025-06-01 20:29:32 +08:00

241 lines
4.5 KiB
TypeScript

import { DeptTreeVO, DeptVO } from './../dept/types';
import { RoleVO } from '@/api/system/role/types';
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { UserForm, UserQuery, UserVO, UserInfoVO } from './types';
import { parseStrEmpty } from '@/utils/ruoyi';
/**
* 查询用户列表
* @param query
*/
export const listUser = (query: UserQuery): AxiosPromise<UserVO[]> => {
return request({
url: '/operate/user/list',
method: 'get',
params: query
});
};
/**
* 通过用户ids查询用户
* @param userIds
*/
export const optionSelect = (userIds: (number | string)[]): AxiosPromise<UserVO[]> => {
return request({
url: '/operate/user/optionselect?userIds=' + userIds,
method: 'get'
});
};
/**
* 获取用户详情
* @param userId
*/
export const getUser = (userId?: string | number): AxiosPromise<UserInfoVO> => {
return request({
url: '/operate/user/' + parseStrEmpty(userId),
method: 'get'
});
};
/**
* 新增用户
*/
export const addUser = (data: UserForm) => {
return request({
url: '/operate/user',
method: 'post',
data: data
});
};
/**
* 修改用户
*/
export const updateUser = (data: UserForm) => {
return request({
url: '/operate/user',
method: 'put',
data: data
});
};
/**
* 删除用户
* @param userId 用户ID
*/
export const delUser = (userId: Array<string | number> | string | number) => {
return request({
url: '/operate/user/' + userId,
method: 'delete'
});
};
/**
* 用户密码重置
* @param userId 用户ID
* @param password 密码
*/
export const resetUserPwd = (userId: string | number, password: string) => {
const data = {
userId,
password
};
return request({
url: '/operate/user/resetPwd',
method: 'put',
headers: {
isEncrypt: true,
repeatSubmit: false
},
data: data
});
};
/**
* 用户状态修改
* @param userId 用户ID
* @param status 用户状态
*/
export const changeUserStatus = (userId: number | string, status: string) => {
const data = {
userId,
status
};
return request({
url: '/operate/user/changeStatus',
method: 'put',
data: data
});
};
/**
* 查询用户个人信息
*/
export const getUserProfile = (): AxiosPromise<UserInfoVO> => {
return request({
url: '/operate/user/profile',
method: 'get'
});
};
/**
* 修改用户个人信息
* @param data 用户信息
*/
export const updateUserProfile = (data: UserForm) => {
return request({
url: '/operate/user/profile',
method: 'put',
data: data
});
};
/**
* 用户密码重置
* @param oldPassword 旧密码
* @param newPassword 新密码
*/
export const updateUserPwd = (oldPassword: string, newPassword: string) => {
const data = {
oldPassword,
newPassword
};
return request({
url: '/operate/user/profile/updatePwd',
method: 'put',
headers: {
isEncrypt: true,
repeatSubmit: false
},
data: data
});
};
/**
* 用户头像上传
* @param data 头像文件
*/
export const uploadAvatar = (data: FormData) => {
return request({
url: '/operate/user/profile/avatar',
method: 'post',
data: data
});
};
/**
* 查询授权角色
* @param userId 用户ID
*/
export const getAuthRole = (userId: string | number): AxiosPromise<{ user: UserVO; roles: RoleVO[] }> => {
return request({
url: '/operate/user/authRole/' + userId,
method: 'get'
});
};
/**
* 保存授权角色
* @param data 用户ID
*/
export const updateAuthRole = (data: { userId: string; roleIds: string }) => {
return request({
url: '/operate/user/authRole',
method: 'put',
params: data
});
};
/**
* 查询当前部门的所有用户信息
* @param deptId
*/
export const listUserByDeptId = (deptId: string | number): AxiosPromise<UserVO[]> => {
return request({
url: '/operate/user/list/dept/' + deptId,
method: 'get'
});
};
/**
* 查询部门下拉树结构
*/
export const deptTreeSelect = (): AxiosPromise<DeptTreeVO[]> => {
return request({
url: '/operate/user/deptTree',
method: 'get'
});
};
/**
* 设置部门主管
*/
export const setDeptAdmin = (userId: Array<string | number> | string | number) => {
return request({
url: '/operate/user/setDeptAdmin/' + userId,
method: 'get'
});
};
export default {
listUser,
getUser,
optionSelect,
addUser,
updateUser,
delUser,
resetUserPwd,
changeUserStatus,
getUserProfile,
updateUserProfile,
updateUserPwd,
uploadAvatar,
getAuthRole,
updateAuthRole,
deptTreeSelect,
listUserByDeptId,
setDeptAdmin
};