import type { DeptTreeData, ResetPwdParam, User, UserImportParam, } from './model'; import type { ID, IDS, PageQuery, PageResult } from '#/api/common'; import { commonExport, ContentTypeEnum } from '#/api/helper'; import { requestClient } from '#/api/request'; enum Api { deptTree = '/dept/tree', listDeptUsers = '/user/dept', root = '/user', userAuthRole = '/user/authRole', userExport = '/user/export', userImport = '/user/importData', userImportTemplate = '/user/importTemplate', userResetPassword = '/account/rest-password', } /** * 获取用户列表 * @param params * @returns User */ export function userList(params?: PageQuery) { return requestClient.get>(Api.root, { params }); } /** * 导出excel * @param data data * @returns blob */ export function userExport(data: Partial) { return commonExport(Api.userExport, data); } /** * 从excel导入用户 * @param data * @returns void */ export function userImportData(data: UserImportParam) { return requestClient.post<{ code: number; msg: string }>( Api.userImport, data, { headers: { 'Content-Type': ContentTypeEnum.FORM_DATA, }, isTransformResponse: false, }, ); } /** * 下载用户导入模板 * @returns blob */ export function downloadImportTemplate() { return requestClient.post( Api.userImportTemplate, {}, { isTransformResponse: false, responseType: 'blob', }, ); } /** * 可以不传ID 返回部门和角色options 需要获得原始数据 * 不传ID时一定要带最后的/ * @param userId 用户ID * @returns 用户信息 */ export function findUserInfo(userId: ID) { return requestClient.get(`${Api.root}/${userId}`); } /** * 新增用户 * @param data data * @returns void */ export function userAdd(data: Partial) { return requestClient.postWithMsg(Api.root, data); } /** * 更新用户 * @param data data * @returns void */ export function userUpdate(data: Partial) { return requestClient.putWithMsg(`${Api.root}/${data.id}`, data); } /** * 删除用户 * @param userIds 用户ID数组 * @returns void */ export function userRemove(userIds: IDS) { return requestClient.deleteWithMsg(Api.root, { params: { ids: userIds.join(',') }, }); } /** * 重置用户密码 需要加密 * @param data * @returns void */ export function userResetPassword(data: ResetPwdParam) { return requestClient.putWithMsg(`${Api.userResetPassword}/${data.id}`, data, { encrypt: true, }); } /** * 这个方法未调用过 * @param userId * @returns void */ export function getUserAuthRole(userId: ID) { return requestClient.get(`${Api.userAuthRole}/${userId}`); } /** * 这个方法未调用过 * @param userId * @returns void */ export function userAuthRoleUpdate(userId: ID, roleIds: number[]) { return requestClient.putWithMsg(Api.userAuthRole, { roleIds, userId }); } /** * 获取部门树 * @returns 部门树数组 */ export function getDeptTree() { return requestClient.get(Api.deptTree); } /** * 获取部门下的所有用户信息 */ export function listUserByDeptId(deptId: ID) { return requestClient.get(`${Api.listDeptUsers}/${deptId}`); }