import { http } from "@/utils/http"; import type { ConfigInfo, DepartmentInfo, DepartmentRoleInfo, PermissionInfo, RoleInfo, RolePermissionInfo, UserInfo } from "types/system"; import { filterEmptyObject } from "./utils"; // ---------------------------部门相关------------------------------------- /** * 获取部门列表参数 */ type GetDepartmentListParams = { /**当前页 */ page: number; /**每页数量 */ pageSize: number; /**部门ID */ id?: string; /**部门名称 */ name?: string; /**附属部门ID */ parent_id?: string; /**部门负责人 */ principal?: string; /**部门电话 */ phone?: number | string; /**部门邮件 */ email?: string; /**备注 */ remark?: string; /**排序 */ sort?: number | string; }; /**获取部门列表 */ export const getDepartmentListAPI = (params: GetDepartmentListParams) => { return http.request>( "get", `/api/department/list`, { params: filterEmptyObject(params) } ); }; /**更新部门数据 */ export const putUpdateDepartmentAPI = ( data: AddDepartmentParams, id: string ) => { return http.request("post", `/api/department/update/${id}`, { data }); }; /**添加部门数据参数 */ type AddDepartmentParams = { /**部门名称 */ name: string; /**父部门ID */ parent_id: string; /**排序 */ sort: number; /**部门负责人 */ principal: string; /**部门电话 */ phone: number | string; /**部门邮件 */ email: string; /**备注 */ remark: string; /**状态 */ status: number; }; /**添加部门数据 */ export const postAddDepartmentAPI = (data: AddDepartmentParams) => { return http.request("post", `/api/department/add`, { data }); }; /**删除部门及其附属部门 */ export const deleteDepartmentAPI = (id: string) => { return http.request("post", `/api/department/delete/${id}`); }; // ----------------------------权限相关------------------------------------ /** 获取权限列表参数 */ type GetPermissionListParams = { /** 当前页码 */ page: number; /** 每页条数 */ pageSize: number; /** 主键 */ id?: string; /** 权限名称 */ name?: string; /** 父权限ID */ parentId?: string; /** 权限路径 */ path?: string; /** 排序权重 */ rank?: number; /** 菜单类型(0菜单、1iframe、2外链、3按钮) */ menuType?: number; /** 显示菜单 */ showLink?: boolean; /** 显示父级菜单 */ showParent?: boolean; /** 激活路径 */ activePath?: string; /** 组件路径 */ component?: string; /** 重定向路径 */ redirect?: string; /** iframe路径 */ frameSrc?: string; /** iframe加载动画 */ frameLoading?: boolean; /** 缓存组件 */ keepAlive?: boolean; /** 权限标识 */ auths?: string; /** 菜单图标 */ icon?: string; /** 右侧图标 */ extraIcon?: string; /** 进场动画 */ enterTransition?: string; /** 离场动画 */ leaveTransition?: string; /** 固定标签页 */ fixedTag?: boolean; /** 隐藏标签页 */ hiddenTag?: boolean; }; /**获取权限列表 */ export const getPermissionListAPI = (params: GetPermissionListParams) => { return http.request>( "get", `/api/permission/list`, { params: filterEmptyObject(params) } ); }; /**添加权限参数 */ type AddPermissionParams = { /** 路由名称 */ name: string; /** 路由路径 */ path: string; /** 菜单名称 */ title: string; /** 组件路径 */ component?: string; /** 菜单排序 */ rank: number; /** 路由重定向 */ redirect?: string; /** 菜单图标 */ icon?: string; /** 右侧图标 */ extra_icon?: string; /** 进场动画 */ enter_transition?: string; /** 离场动画 */ leave_transition?: string; /** 菜单激活路径 */ active_path?: string; /** 权限标识 */ auths?: string; /** iframe链接地址 */ frame_src?: string; /** iframe加载动画 */ frame_loading: boolean; /** 缓存页面 */ keep_alive: boolean; /** 隐藏标签页 */ hidden_tag: boolean; /** 固定标签页 */ fixed_tag: boolean; /** 显示菜单 */ show_link: boolean; /** 显示父级菜单 */ show_parent: boolean; /** 父级菜单ID */ parent_id: string; /** 菜单类型 */ menu_type: number; }; /** * 添加权限 * @param data 添加权限参数 * @returns */ export const postAddPermissionAPI = (data: AddPermissionParams) => { return http.request("post", `/api/permission/add`, { data }); }; /** * 删除权限 * @param id 权限ID * @returns */ export const deletePermissionAPI = (id: string) => { return http.request("post", `/api/permission/delete/${id}`); }; /**更新权限信息 */ type UpdatePermissionParams = {} & AddPermissionParams; /** * * @param id 权限ID * @param data 更新权限信息参数 * @returns */ export const putUpdatePermissionAPI = ( id: string, data: UpdatePermissionParams ) => { return http.request("post", `/api/permission/update/${id}`, { data }); }; /** * 获取角色权限列表 * @param id 角色ID * @returns */ export const getRolePermissionsAPI = (id: string) => { return http.request>( "get", `/api/role/permissionList/${id}` ); }; /** * 更新角色权限信息 * @param id 角色ID * @param data 角色权限列表 * @returns */ export const putUpdateRolePermissionsAPI = ( id: string, data: { permission_ids: string[]; } ) => { return http.request("put", `/api/role/updatePermission/${id}`, { data }); }; // -----------------------------角色相关----------------------------------- type GetRoleListParams = { /**当前页 */ page: number; /**每页数量 */ pageSize: number; /**角色名称 */ name?: string; /**角色标识符 */ code?: string; /**角色描述 */ description?: string; /**所属部门ID */ department_id?: string; }; /**获取角色列表 */ export const getRoleListAPI = (params: GetRoleListParams) => { return http.request>("get", `/api/role/list`, { params: filterEmptyObject(params) }); }; /**添加角色参数 */ type AddRoleParams = { /**角色姓名 */ name: string; /**角色标识 */ code: string; /**角色描述 */ description: string; /**所属部门ID */ department_id: string; /**状态 */ status: number | string; }; /**更新角色数据 */ export const putUpdateRoleAPI = (data: AddRoleParams, id: string) => { return http.request("post", `/api/role/update/${id}`, { data }); }; /**添加角色数据 */ export const postAddRoleAPI = (data: AddRoleParams) => { return http.request("post", `/api/role/add`, { data }); }; /**删除角色 */ export const deleteRoleAPI = (id: string) => { return http.request("post", `/api/role/delete/${id}`); }; // --------------------------用户相关-------------------------------------- /**添加用户参数 */ type AddUserParams = { /**用户账号 */ username: string; /**用户密码 */ password: string; /**用户性别 */ gender: number; /**用户头像 */ avatar: string; /**用户邮箱 */ email: string; /**用户姓名 */ nickname: string; /**用户手机号 */ phone: string; /**用户状态 */ status: number; /**用户部门 */ department_id: string; }; /** * 添加用户 * @param data * @returns */ export const postAddUserAPI = (data: AddUserParams) => { return http.request("post", `/api/user/add`, { data }); }; /**获取用户列表参数 */ type GetUserListParams = { /**当前页 */ page: number; /**每页数量 */ pageSize: number; /**部门ID */ department_id?: string; /**用户账号 */ username?: string; /**用户姓名 */ nickname?: string; /**用户ID */ id?: string; /**用户状态 */ status?: string; /**用户手机号 */ phone?: string; /**用户邮箱 */ email?: string; /**用户性别 */ gender?: number | string; }; /**获取用户列表 */ export const getUserListAPI = (params: GetUserListParams) => { return http.request>("get", `/api/user/list`, { params: filterEmptyObject(params) }); }; /**更新用户参数 */ type UpdateUserParams = { /**用户账号 */ username: string; /**用户性别 */ gender: number; /**用户头像 */ avatar: string; /**用户邮箱 */ email: string; /**用户姓名 */ nickname: string; /**用户手机号 */ phone: string; /**用户状态 */ status: number; /**用户部门 */ department_id: string; }; /** * 更新用户信息 * @param id 角色ID * @param data 更新角色参数 * @returns */ export const putUpdateUserAPI = (id: string, data: UpdateUserParams) => { return http.request("put", `/api/user/update/${id}`, { data }); }; /** * 删除用户 * @param id 用户ID * @returns */ export const deleteUserAPI = (id: string) => { return http.request("post", `/api/user/delete/${id}`); }; /** * 批量删除用户 * @param data 用户ID列表 * @returns */ export const deleteUserListAPI = (data: { ids: string[] }) => { return http.request("post", `/api/user/deleteUserList`, { data }); }; /** * 更新用户密码 * @param id 用户ID * @param data 用户新密码 * @returns */ export const putUpdateUserPasswordAPI = ( id: string, data: { password: string } ) => { return http.request("post", `/api/user/updateUserPassword/${id}`, { headers: { "content-type": "application/x-www-form-urlencoded" }, data }); }; /** * 获取用户角色列表 * @param id 用户ID * @returns */ export const getUserRolesAPI = (id: string) => { return http.request>( "get", `/api/user/roleList/${id}` ); }; type UpdateUserRoleParams = { /**用户ID */ user_id: string; /**角色ID */ role_ids: string[]; }; /** * 更新用户角色信息 * @param id 用户ID * @param data 用户角色列表 * @returns */ export const putUpdateUserRolesAPI = (data: UpdateUserRoleParams) => { return http.request("post", `/api/user/updateRole`, { data }); }; /** * 获取用户权限列表 * @param id 用户ID * @returns */ export const getUserPermissionsAPI = (id: string) => { return http.request("get", `/api/user/permissionList/${id}`); }; /**用户获取部门角色列表 */ export const getUserGetDepartmentRolesAPI = (id: string) => { return http.request>( "get", `/api/department/roleList/${id}` ); }; // ---------------------------配置相关------------------------------------- /** * 添加配置参数 */ interface AddConfigParams { /**配置名称 */ name: string; /**配置键值 */ key: string; /**配置值 */ value: string; /**系统配置 */ type: string; /**备注 */ remark?: string; } /** * 添加配置 * @param data * @returns */ export const postAddConfigAPI = (data: AddConfigParams) => { return http.request("post", `/api/config/add`, { data }); }; /** * 删除配置 */ export const deleteConfigAPI = (id: string) => { return http.request("post", `/api/config/delete/${id}`); }; /** * 批量删除配置 * @param data 配置ID列表 */ export const deleteConfigListAPI = (data: { ids: string[] }) => { return http.request("post", `/api/config/deleteList`, { data }); }; /** * 更新配置 */ export const putUpdateConfigAPI = (data: AddConfigParams, id: string) => { return http.request("post", `/api/config/update/${id}`, { data }); }; /** * 获取配置信息 * @param id 配置ID */ export const getConfigAPI = (id: string) => { return http.request("get", `/api/config/info/${id}`); }; /** * 获取配置列表参数 */ interface GetConfigListParams { /** * 页码 */ page: number; /** * 每页数量 */ pageSize: number; /** * 配置名称 */ name?: string; /** * 配置键值 */ key?: string; /** * 系统配置 */ type?: string; } /** * 获取配置列表 * @param params */ export const getConfigListAPI = (params: GetConfigListParams) => { return http.request>("get", `/api/config/list`, { params: filterEmptyObject(params) }); };