import { SYSTEM_SERVICE_PREFIX } from '@/constants/service'; import { request } from '../request'; import type { ServiceRequestResult } from './shared'; const ROLE_PREFIX = `${SYSTEM_SERVICE_PREFIX}/role`; const MENU_PREFIX = `${SYSTEM_SERVICE_PREFIX}/menu`; const PERMISSION_PREFIX = `${SYSTEM_SERVICE_PREFIX}/permission`; const USER_PREFIX = `${SYSTEM_SERVICE_PREFIX}/user`; const DEPT_PREFIX = `${SYSTEM_SERVICE_PREFIX}/dept`; const POST_PREFIX = `${SYSTEM_SERVICE_PREFIX}/post`; const ORG_LEADER_PREFIX = `${SYSTEM_SERVICE_PREFIX}/org-leader`; function createRolePageQuery(params?: Api.SystemManage.RoleSearchParams) { const query = new URLSearchParams(); if (!params) { return query.toString(); } if (params.pageNo !== undefined) { query.append('pageNo', String(params.pageNo)); } if (params.pageSize !== undefined) { query.append('pageSize', String(params.pageSize)); } if (params.name) { query.append('name', params.name); } if (params.code) { query.append('code', params.code); } if (params.status !== undefined) { query.append('status', String(params.status)); } params.createTime?.forEach(item => { if (item) { query.append('createTime', item); } }); return query.toString(); } function createBatchDeleteQuery(ids: number[]) { const query = new URLSearchParams(); ids.forEach(id => { query.append('ids', String(id)); }); return query.toString(); } /** 获取角色分页 */ export function fetchGetRolePage(params?: Api.SystemManage.RoleSearchParams) { const query = createRolePageQuery(params); return request({ url: query ? `${ROLE_PREFIX}/page?${query}` : `${ROLE_PREFIX}/page`, method: 'get' }); } /** 为兼容旧代码保留原函数名 */ export const fetchGetRoleList = fetchGetRolePage; /** 获取角色详情 */ export function fetchGetRole(id: number) { return request({ url: `${ROLE_PREFIX}/get`, method: 'get', params: { id } }); } /** 创建角色 */ export function fetchCreateRole(data: Api.SystemManage.SaveRoleParams) { return request({ url: `${ROLE_PREFIX}/create`, method: 'post', data }); } /** 更新角色 */ export function fetchUpdateRole(data: { id: number } & Api.SystemManage.SaveRoleParams) { return request({ url: `${ROLE_PREFIX}/update`, method: 'put', data }); } /** 删除角色 */ export function fetchDeleteRole(id: number) { return request({ url: `${ROLE_PREFIX}/delete`, method: 'delete', params: { id } }); } /** 批量删除角色 */ export function fetchBatchDeleteRole(ids: number[]) { return request({ url: `${ROLE_PREFIX}/delete-list?${createBatchDeleteQuery(ids)}`, method: 'delete' }); } /** * 获取全部角色 * * 为当前用户页面保留 `roleName / roleCode` 字段,直到该页面完成重构 */ export async function fetchGetAllRoles(): Promise> { const result = await request({ url: `${ROLE_PREFIX}/simple-list`, method: 'get' }); if (result.error || !result.data) { return result as ServiceRequestResult; } return { ...result, data: result.data.map(item => ({ ...item, roleName: item.name, roleCode: item.code })) }; } /** 获取启用状态的角色简表 */ export function fetchGetRoleSimpleList() { return request({ url: `${ROLE_PREFIX}/simple-list`, method: 'get' }); } /** 获取部门列表 */ export function fetchGetDeptList(params?: Api.SystemManage.DeptSearchParams) { return request({ url: `${DEPT_PREFIX}/list`, method: 'get', params }); } /** 获取部门简表 */ export function fetchGetDeptSimpleList() { return request({ url: `${DEPT_PREFIX}/simple-list`, method: 'get' }); } /** 创建部门 */ export function fetchCreateDept(data: Api.SystemManage.SaveDeptParams) { return request({ url: `${DEPT_PREFIX}/create`, method: 'post', data }); } /** 更新部门 */ export function fetchUpdateDept(data: { id: number } & Api.SystemManage.SaveDeptParams) { return request({ url: `${DEPT_PREFIX}/update`, method: 'put', data }); } /** 删除部门 */ export function fetchDeleteDept(id: number) { return request({ url: `${DEPT_PREFIX}/delete`, method: 'delete', params: { id } }); } /** 根据部门获取组织负责人关系 */ export function fetchGetOrgLeaderListByDept(deptId: number) { return request({ url: `${ORG_LEADER_PREFIX}/list-by-dept`, method: 'get', params: { deptId } }); } /** 获取组织负责人的候选用户 */ export function fetchGetOrgLeaderCandidateUsers(deptId: number) { return request({ url: `${ORG_LEADER_PREFIX}/candidate-users`, method: 'get', params: { deptId } }); } /** 创建组织负责人关系 */ export function fetchCreateOrgLeaderRelation(data: Api.SystemManage.SaveOrgLeaderRelationParams) { return request({ url: `${ORG_LEADER_PREFIX}/create`, method: 'post', data }); } /** 更新组织负责人关系 */ export function fetchUpdateOrgLeaderRelation(data: { id: number } & Api.SystemManage.SaveOrgLeaderRelationParams) { return request({ url: `${ORG_LEADER_PREFIX}/update`, method: 'put', data }); } /** 删除组织负责人关系 */ export function fetchDeleteOrgLeaderRelation(id: number) { return request({ url: `${ORG_LEADER_PREFIX}/delete`, method: 'delete', params: { id } }); } /** 获取启用状态的岗位简表 */ export function fetchGetPostSimpleList() { return request({ url: `${POST_PREFIX}/simple-list`, method: 'get' }); } /** 获取用户分页 */ export function fetchGetUserPage(params?: Api.SystemManage.UserSearchParams) { return request({ url: `${USER_PREFIX}/page`, method: 'get', params }); } /** 为兼容旧代码保留原函数名 */ export const fetchGetUserList = fetchGetUserPage; /** 获取用户详情 */ export function fetchGetUser(id: number) { return request({ url: `${USER_PREFIX}/get`, method: 'get', params: { id } }); } /** 创建用户 */ export function fetchCreateUser(data: Api.SystemManage.SaveUserParams) { return request({ url: `${USER_PREFIX}/create`, method: 'post', data }); } /** 更新用户 */ export function fetchUpdateUser(data: { id: number } & Api.SystemManage.SaveUserParams) { return request({ url: `${USER_PREFIX}/update`, method: 'put', data }); } /** 更新用户状态 */ export function fetchUpdateUserStatus(data: Api.SystemManage.UpdateUserStatusParams) { return request({ url: `${USER_PREFIX}/update-status`, method: 'put', data }); } /** 重置用户密码 */ export function fetchUpdateUserPassword(data: Api.SystemManage.UpdateUserPasswordParams) { return request({ url: `${USER_PREFIX}/update-password`, method: 'put', data }); } /** 删除用户 */ export function fetchDeleteUser(id: number) { return request({ url: `${USER_PREFIX}/delete`, method: 'delete', params: { id } }); } /** 批量删除用户 */ export function fetchBatchDeleteUser(ids: number[]) { return request({ url: `${USER_PREFIX}/delete-list?${createBatchDeleteQuery(ids)}`, method: 'delete' }); } /** 获取菜单列表 */ export function fetchGetMenuList(params?: Api.SystemManage.MenuSearchParams) { return request({ url: `${MENU_PREFIX}/list`, method: 'get', params }); } /** 获取菜单详情 */ export function fetchGetMenu(id: number) { return request({ url: `${MENU_PREFIX}/get`, method: 'get', params: { id } }); } /** 创建菜单 */ export function fetchCreateMenu(data: Api.SystemManage.SaveMenuParams) { return request({ url: `${MENU_PREFIX}/create`, method: 'post', data }); } /** 更新菜单 */ export function fetchUpdateMenu(data: { id: number } & Api.SystemManage.SaveMenuParams) { return request({ url: `${MENU_PREFIX}/update`, method: 'put', data }); } /** 删除菜单 */ export function fetchDeleteMenu(id: number) { return request({ url: `${MENU_PREFIX}/delete`, method: 'delete', params: { id } }); } /** 批量删除菜单 */ export function fetchBatchDeleteMenu(ids: number[]) { return request({ url: `${MENU_PREFIX}/delete-list?${createBatchDeleteQuery(ids)}`, method: 'delete' }); } /** 获取启用状态的菜单简表 */ export function fetchGetMenuSimpleList() { return request({ url: `${MENU_PREFIX}/simple-list`, method: 'get' }); } /** 获取角色关联的菜单 ID 列表 */ export function fetchGetRoleMenuIds(roleId: number) { return request({ url: `${PERMISSION_PREFIX}/list-role-menus`, method: 'get', params: { roleId } }); } /** 分配角色菜单 */ export function fetchAssignRoleMenus(data: Api.SystemManage.AssignRoleMenuParams) { return request({ url: `${PERMISSION_PREFIX}/assign-role-menu`, method: 'post', data }); } /** 获取用户关联的角色 ID 列表 */ export function fetchGetUserRoleIds(userId: number) { return request({ url: `${PERMISSION_PREFIX}/list-user-roles`, method: 'get', params: { userId } }); } /** 分配用户角色 */ export function fetchAssignUserRoles(data: Api.SystemManage.AssignUserRoleParams) { return request({ url: `${PERMISSION_PREFIX}/assign-user-role`, method: 'post', data }); }