import { unref } from 'vue'; import { defHttp } from '/@/utils/http/axios'; import { useMessage } from '/@/hooks/web/useMessage'; const { createConfirm } = useMessage(); enum Api { treeList = '/sys/sysDepart/queryMyDeptTreeList', queryIdTree = '/sys/sysDepart/queryIdTree', searchBy = '/sys/sysDepart/searchBy', } // 部门用户API enum DepartUserApi { list = '/sys/user/departUserList', link = '/sys/user/editSysDepartWithUser', unlink = '/sys/user/deleteUserInDepartBatch', } // 部门角色API enum DepartRoleApi { list = '/sys/sysDepartRole/list', deleteBatch = '/sys/sysDepartRole/deleteBatch', save = '/sys/sysDepartRole/add', edit = '/sys/sysDepartRole/edit', queryTreeListForDeptRole = '/sys/sysDepartPermission/queryTreeListForDeptRole', queryDeptRolePermission = '/sys/sysDepartPermission/queryDeptRolePermission', saveDeptRolePermission = '/sys/sysDepartPermission/saveDeptRolePermission', dataRule = '/sys/sysDepartRole/datarule', getDeptRoleList = '/sys/sysDepartRole/getDeptRoleList', getDeptRoleByUserId = '/sys/sysDepartRole/getDeptRoleByUserId', saveDeptRoleUser = '/sys/sysDepartRole/deptRoleUserAdd', } /** * 获取部门树列表 */ export const queryMyDepartTreeList = (params?) => defHttp.get({ url: Api.treeList, params }, { isTransformResponse: false }); /** * 查询数据,以树结构形式加载所有部门的名称 */ export const queryIdTree = (params?) => defHttp.get({ url: Api.queryIdTree, params }); /** * 根据关键字搜索部门 */ export const searchByKeywords = (params) => defHttp.get({ url: Api.searchBy, params }); /** * 查询部门下的用户信息 */ export const departUserList = (params) => defHttp.get({ url: DepartUserApi.list, params }); /** * 批量添加部门和用户的关联关系 * * @param departId 部门ID * @param userIdList 用户ID列表 */ export const linkDepartUserBatch = (departId: string, userIdList: string[]) => defHttp.post({ url: DepartUserApi.link, params: { depId: departId, userIdList } }); /** * 批量取消部门和用户的关联关系 */ export const unlinkDepartUserBatch = (params, confirm = false) => { return new Promise((resolve, reject) => { const doDelete = () => { resolve(defHttp.delete({ url: DepartUserApi.unlink, params }, { joinParamsToUrl: true })); }; if (confirm) { createConfirm({ iconType: 'warning', title: '取消关联', content: '确定要取消关联吗?', onOk: () => doDelete(), onCancel: () => reject(), }); } else { doDelete(); } }); }; /** * 查询部门角色信息 */ export const departRoleList = (params) => defHttp.get({ url: DepartRoleApi.list, params }); /** * 保存或者更新部门角色 */ export const saveOrUpdateDepartRole = (params, isUpdate) => { if (isUpdate) { return defHttp.put({ url: DepartRoleApi.edit, params }); } else { return defHttp.post({ url: DepartRoleApi.save, params }); } }; /** * 批量删除部门角色 */ export const deleteBatchDepartRole = (params, confirm = false) => { return new Promise((resolve, reject) => { const doDelete = () => { resolve(defHttp.delete({ url: DepartRoleApi.deleteBatch, params }, { joinParamsToUrl: true })); }; if (confirm) { createConfirm({ iconType: 'warning', title: '删除', content: '确定要删除吗?', onOk: () => doDelete(), onCancel: () => reject(), }); } else { doDelete(); } }); }; /** * 用户角色授权功能,查询菜单权限树 */ export const queryTreeListForDeptRole = (params) => defHttp.get({ url: DepartRoleApi.queryTreeListForDeptRole, params }); /** * 查询角色授权 */ export const queryDeptRolePermission = (params) => defHttp.get({ url: DepartRoleApi.queryDeptRolePermission, params }); /** * 保存角色授权 */ export const saveDeptRolePermission = (params) => defHttp.post({ url: DepartRoleApi.saveDeptRolePermission, params }); /** * 查询部门角色数据权限列表 */ export const queryDepartRoleDataRule = (functionId, departId, roleId, params?) => { let url = `${DepartRoleApi.dataRule}/${unref(functionId)}/${unref(departId)}/${unref(roleId)}`; return defHttp.get({ url, params }); }; /** * 保存部门角色数据权限 */ export const saveDepartRoleDataRule = (params) => defHttp.post({ url: DepartRoleApi.dataRule, params }); /** * 查询部门角色用户授权 */ export const queryDepartRoleUserList = (params) => defHttp.get({ url: DepartRoleApi.getDeptRoleList, params }); /** * 根据 userId 查询部门角色用户授权 */ export const queryDepartRoleByUserId = (params) => defHttp.get({ url: DepartRoleApi.getDeptRoleByUserId, params }); /** * 保存部门角色用户授权 */ export const saveDepartRoleUser = (params) => defHttp.post({ url: DepartRoleApi.saveDeptRoleUser, params });