申请入住,自动加权限,加用户

master
CJYXTX\27961 8 months ago
parent 4ba2d2ee8a
commit bc77460904

@ -109,6 +109,7 @@ gateway:
- /api/scm/Client/test
- /api/permission/Organize
- /api/permission/Organize/POST
- /api/permission/Organize/check
exclude-url:
# # 配置示例

@ -122,6 +122,9 @@ public class OrganizeAdministratorController extends SuperController<OrganizeAdm
return ActionResult.success("保存成功");
}
/**
*
*
@ -947,4 +950,760 @@ public class OrganizeAdministratorController extends SuperController<OrganizeAdm
}
parentIdInList(modulePermissionList, tempModule, allModuleSelectorVOList, moduleSelectorModel, moduleSelectorModels);
}
/**
*
*
* @param userId id
* @return
*/
@Operation(summary = "申请入住获取组织下拉框列表")
@SaCheckPermission(value = {"permission.grades"})
@GetMapping("/Selectors")
public OrganizeAdministratorSelectedVO getSelectors(String userId) {
// if (StringUtil.isNotEmpty(userId)) {
// if (userId.equals(UserProvider.getLoginUserId())) {
// return ActionResult.fail("无法设置当前用户为分级管理员");
// }
// UserEntity userEntity = userService.getInfo(userId);
// if (userEntity != null && Objects.equals(userEntity.getIsAdministrator(), 1)) {
// return ActionResult.fail("无法设置超管为分级管理员");
// }
// }
OrganizeAdministratorSelectedVO vo = new OrganizeAdministratorSelectedVO();
List<SystemSelectorVO> systemPermissionList = new ArrayList<>();
List<ModuleSelectorVO> moduleVOPermissionList = new ArrayList<>();
List<ModuleSelectorModel> modulePermissionList = new ArrayList<>();
List<String> moduleSelectedList = new ArrayList<>();
List<String> systemSelectedList = new ArrayList<>();
// 存储组织集合
List<OrganizeEntity> organizeList = organizeService.getList(false);
// 获取所有组织
List<OrganizeAdministratorSelectorModel> selectorModels = JsonUtil.getJsonToList(organizeList, OrganizeAdministratorSelectorModel.class);
// 获取应用列表
List<SystemEntity> list = systemApi.getList(null, false, true, true, false);
List<SystemSelectorVO> systemSelectorVOList = JsonUtil.getJsonToList(list, SystemSelectorVO.class);
systemSelectorVOList.forEach(t -> t.setIsPermission(0));
// 菜单
SystemEntity mainSystem = systemApi.getInfoByEnCode(JnpfConst.MAIN_SYSTEM_CODE);
List<ModuleEntity> mainModule = moduleApi.getMainModule();
List<ModuleEntity> allModule = new ArrayList<>(mainModule);
List<ModuleSelectorModel> moduleSelectorVOList = JsonUtil.getJsonToList(mainModule, ModuleSelectorModel.class);
List<ModuleSelectorModel> allModuleSelectorVOList = JsonUtil.getJsonToList(allModule, ModuleSelectorModel.class);
boolean isAdministrator = userProvider.get().getIsAdministrator();
if (isAdministrator) {
selectorModels.forEach(t -> {
// 设置组织id
t.setOrganizeId(t.getId());
t.setThisLayerAdd(0);
t.setThisLayerEdit(0);
t.setThisLayerDelete(0);
t.setThisLayerSelect(0);
t.setSubLayerAdd(0);
t.setSubLayerEdit(0);
t.setSubLayerDelete(0);
t.setSubLayerSelect(0);
});
moduleSelectorVOList.forEach(t -> t.setIsPermission(0));
} else {
List<OrganizeAdministratorEntity> organizeAdministratorEntity = organizeAdminIsTratorService.getOrganizeAdministratorEntity(UserProvider.getLoginUserId(), jnpf.constant.PermissionConst.ORGANIZE, false);
List<OrganizeAdministratorEntity> organizeAdministratorEntitys = new ArrayList<>(organizeAdministratorEntity);
// 处理子组织权限
organizeAdministratorEntitys.forEach(t -> {
if (t.getSubLayerSelect() != null && t.getSubLayerSelect() == 1) {
// 得到组织id
List<String> underOrganizations = organizeService.getUnderOrganizations(t.getOrganizeId(), false);
underOrganizations.forEach(uo -> {
OrganizeAdministratorEntity organizeAdministratorEntity1 = organizeAdministratorEntity.stream().filter(oae -> uo.equals(oae.getOrganizeId())).findFirst().orElse(null);
if (organizeAdministratorEntity1 != null) {
organizeAdministratorEntity1.setThisLayerSelect(1);
organizeAdministratorEntity1.setSubLayerSelect(1);
}
});
if (t.getSubLayerAdd() != null && t.getSubLayerAdd() == 1) {
underOrganizations.forEach(uo -> {
OrganizeAdministratorEntity organizeAdministratorEntity1 = organizeAdministratorEntity.stream().filter(oae -> uo.equals(oae.getOrganizeId())).findFirst().orElse(null);
if (organizeAdministratorEntity1 != null) {
organizeAdministratorEntity1.setThisLayerAdd(1);
organizeAdministratorEntity1.setSubLayerAdd(1);
}
});
}
if (t.getSubLayerEdit() != null && t.getSubLayerEdit() == 1) {
underOrganizations.forEach(uo -> {
OrganizeAdministratorEntity organizeAdministratorEntity1 = organizeAdministratorEntity.stream().filter(oae -> uo.equals(oae.getOrganizeId())).findFirst().orElse(null);
if (organizeAdministratorEntity1 != null) {
organizeAdministratorEntity1.setThisLayerEdit(1);
organizeAdministratorEntity1.setSubLayerEdit(1);
}
});
}
if (t.getSubLayerDelete() != null && t.getSubLayerDelete() == 1) {
underOrganizations.forEach(uo -> {
OrganizeAdministratorEntity organizeAdministratorEntity1 = organizeAdministratorEntity.stream().filter(oae -> uo.equals(oae.getOrganizeId())).findFirst().orElse(null);
if (organizeAdministratorEntity1 != null) {
organizeAdministratorEntity1.setThisLayerDelete(1);
organizeAdministratorEntity1.setSubLayerDelete(1);
}
});
}
}
});
List<OrganizeAdministratorSelectorModel> selectorModelss = new ArrayList<>(16);
selectorModels.forEach(t -> {
// 设置组织id
t.setOrganizeId(t.getId());
OrganizeAdministratorEntity administratorEntity = organizeAdministratorEntity.stream().filter(tt -> t.getOrganizeId().equals(tt.getOrganizeId())).findFirst().orElse(null);
if (administratorEntity != null) {
boolean flag = false;
if (administratorEntity.getThisLayerSelect() != null && administratorEntity.getThisLayerSelect() == 1) {
t.setThisLayerSelect(0);
flag = true;
if (administratorEntity.getThisLayerAdd() == 1) {
t.setThisLayerAdd(0);
}
if (administratorEntity.getThisLayerEdit() == 1) {
t.setThisLayerEdit(0);
}
if (administratorEntity.getThisLayerDelete() == 1) {
t.setThisLayerDelete(0);
}
}
if (administratorEntity.getSubLayerSelect()!= null && administratorEntity.getSubLayerSelect() == 1) {
t.setSubLayerSelect(0);
flag = true;
if (administratorEntity.getSubLayerAdd()!= null && administratorEntity.getSubLayerAdd() == 1) {
t.setSubLayerAdd(0);
}
if (administratorEntity.getSubLayerEdit()!= null && administratorEntity.getSubLayerEdit() == 1) {
t.setSubLayerEdit(0);
}
if (administratorEntity.getSubLayerDelete()!= null && administratorEntity.getSubLayerDelete() == 1) {
t.setSubLayerDelete(0);
}
}
if (flag) {
selectorModelss.add(t);
}
}
});
selectorModels = selectorModelss;
List<OrganizeAdministratorEntity> moduleOrganizeAdministratorEntity = organizeAdminIsTratorService.getOrganizeAdministratorEntity(UserProvider.getLoginUserId(), jnpf.constant.PermissionConst.MODULE, false);
List<String> moduleIds = moduleOrganizeAdministratorEntity.stream().map(OrganizeAdministratorEntity::getOrganizeId).collect(Collectors.toList());
List<ModuleEntity> moduleByIds = moduleApi.getModuleByIds(moduleIds);
List<ModuleSelectorModel> moduleSelectorVOLists = JsonUtil.getJsonToList(moduleByIds, ModuleSelectorModel.class);
moduleSelectorVOList = moduleSelectorVOLists;
// List<OrganizeAdministratorEntity> systemOrganizeAdministratorEntity = organizeAdminIsTratorService.getOrganizeAdministratorEntity(UserProvider.getLoginUserId(), true, PermissionConst.SYSTEM);
}
// 判断是否为空
if (StringUtil.isNotEmpty(userId)) {
List<OrganizeAdministratorEntity> organizeAdministratorEntity = organizeAdminIsTratorService.getOrganizeAdministratorEntity(userId, jnpf.constant.PermissionConst.ORGANIZE, false);
// 处理子组织字段
List<OrganizeAdministratorSelectorModel> finalSelectorModels3 = selectorModels;
organizeAdministratorEntity.forEach(t -> {
if (!isAdministrator) {
if (t.getSubLayerSelect() != null && t.getSubLayerSelect() == 1) {
// 得到组织id
List<String> underOrganizations = organizeService.getUnderOrganizations(t.getOrganizeId(), false);
// 将同样的组织id的数据先处理好
List<OrganizeAdministratorSelectorModel> collect1 = finalSelectorModels3.stream().filter(fsm -> underOrganizations.contains(fsm.getOrganizeId())).collect(Collectors.toList());
collect1.forEach(cl -> {
OrganizeAdministratorSelectorModel organizeAdministratorSelectorModel = finalSelectorModels3.stream().filter(fms -> fms.getOrganizeId().equals(cl.getOrganizeId())).findFirst().orElse(null);
if (organizeAdministratorSelectorModel != null) {
if (organizeAdministratorSelectorModel.getThisLayerSelect() != null && organizeAdministratorSelectorModel.getThisLayerSelect() == 0) {
organizeAdministratorSelectorModel.setThisLayerSelect(0);
} else {
organizeAdministratorSelectorModel.setThisLayerSelect(3);
}
if (organizeAdministratorSelectorModel.getSubLayerSelect() != null && organizeAdministratorSelectorModel.getSubLayerSelect() == 0) {
organizeAdministratorSelectorModel.setSubLayerSelect(0);
} else {
organizeAdministratorSelectorModel.setSubLayerSelect(3);
}
}
});
// 当前模型包含组织id
List<String> collect = underOrganizations.stream().filter(uo -> !finalSelectorModels3.stream().map(OrganizeAdministratorSelectorModel::getOrganizeId).collect(Collectors.toList()).contains(uo)).collect(Collectors.toList());
collect.forEach(cl -> {
OrganizeAdministratorEntity organizeAdministratorEntity1 = organizeAdministratorEntity.stream().filter(oa -> oa.getOrganizeId().equals(cl)).findFirst().orElse(null);
if (organizeAdministratorEntity1 != null) {
OrganizeEntity info = organizeService.getInfo(organizeAdministratorEntity1.getOrganizeId());
OrganizeAdministratorSelectorModel organizeAdministratorSelectorModel = JsonUtil.getJsonToBean(info, OrganizeAdministratorSelectorModel.class);
organizeAdministratorSelectorModel.setOrganizeId(organizeAdministratorEntity1.getOrganizeId());
organizeAdministratorSelectorModel.setThisLayerSelect(3);
organizeAdministratorSelectorModel.setSubLayerSelect(3);
finalSelectorModels3.add(organizeAdministratorSelectorModel);
}
});
}
}
});
List<OrganizeAdministratorSelectorModel> finalSelectorModels = new ArrayList<>(selectorModels);
List<OrganizeAdministratorSelectorModel> finalSelectorModels1 = new ArrayList<>(selectorModels);
organizeAdministratorEntity.forEach(t -> {
// 我没有他有时,需要判断此组织是否跟我所管理的组织相同,不同则需要放进去
OrganizeAdministratorSelectorModel organizeAdministratorSelectorModel = finalSelectorModels.stream().filter(selectorModel -> selectorModel.getOrganizeId().equals(t.getOrganizeId())).findFirst().orElse(null);
if (organizeAdministratorSelectorModel == null) {
boolean flag = false;
if (t.getThisLayerSelect() != null) {
if (t.getThisLayerSelect() == 1) {
t.setThisLayerSelect(2);
flag = true;
if (flag && t.getThisLayerAdd() != null && t.getThisLayerAdd() == 1) {
t.setThisLayerAdd(2);
} else if (t.getThisLayerAdd() != null) {
t.setThisLayerAdd(null);
}
if (flag && t.getThisLayerEdit() != null && t.getThisLayerEdit() == 1) {
t.setThisLayerEdit(2);
} else if (t.getThisLayerEdit() != null) {
t.setThisLayerEdit(null);
}
if (flag && t.getThisLayerDelete() != null && t.getThisLayerDelete() == 1) {
t.setThisLayerDelete(2);
} else if (t.getThisLayerDelete() != null) {
t.setThisLayerDelete(null);
}
} else {
t.setThisLayerSelect(null);
t.setThisLayerAdd(null);
t.setThisLayerEdit(null);
t.setThisLayerDelete(null);
}
}
boolean flag1 = false;
if (t.getSubLayerSelect() != null) {
if (t.getSubLayerSelect() == 1) {
t.setSubLayerSelect(2);
flag1 = true;
if (flag1 && t.getSubLayerAdd() != null && t.getSubLayerAdd() == 1) {
t.setSubLayerAdd(2);
} else if (t.getSubLayerAdd() != null) {
t.setSubLayerAdd(null);
}
if (flag1 && t.getSubLayerEdit() != null && t.getSubLayerEdit() == 1) {
t.setSubLayerEdit(2);
} else if (t.getSubLayerEdit() != null) {
t.setSubLayerEdit(null);
}
if (flag1 && t.getSubLayerDelete() != null && t.getSubLayerDelete() == 1) {
t.setSubLayerDelete(2);
} else if (t.getSubLayerDelete() != null) {
t.setSubLayerDelete(null);
}
} else {
t.setSubLayerSelect(null);
t.setSubLayerAdd(null);
t.setSubLayerEdit(null);
t.setSubLayerDelete(null);
}
}
if (flag || flag1) {
OrganizeAdministratorSelectorModel jsonToBean = JsonUtil.getJsonToBean(t, OrganizeAdministratorSelectorModel.class);
OrganizeEntity info = organizeService.getInfo(t.getOrganizeId());
if (info != null) {
jsonToBean.setParentId(info.getParentId());
jsonToBean.setId(info.getId());
jsonToBean.setCategory(info.getCategory());
jsonToBean.setIcon(jnpf.constant.PermissionConst.COMPANY.equals(info.getCategory()) ? "icon-ym icon-ym-tree-organization3" : "icon-ym icon-ym-tree-department1");
jsonToBean.setOrganizeId(t.getOrganizeId());
jsonToBean.setOrganizeIdTree(info.getOrganizeIdTree());
jsonToBean.setFullName(info.getFullName());
finalSelectorModels1.add(jsonToBean);
}
}
}
});
organizeAdministratorEntity.forEach(t -> {
finalSelectorModels1.forEach(fs -> {
if (t.getOrganizeId().equals(fs.getOrganizeId())) {
// 本层添加
if (fs.getThisLayerAdd() != null) {
if (fs.getThisLayerAdd() == 0) {
if (t.getThisLayerAdd() != null) {
if (t.getThisLayerAdd() == 1) {
fs.setThisLayerAdd(1);
} else {
fs.setThisLayerAdd(0);
}
}
} else if (fs.getThisLayerAdd() == 3) {
if (t.getThisLayerAdd() != null) {
if (t.getThisLayerAdd() == 1) {
fs.setThisLayerAdd(1);
} else {
fs.setThisLayerAdd(3);
}
}
} else {
if (t.getThisLayerAdd() != null) {
if (t.getThisLayerAdd() == 1) {
if (isAdministrator) {
fs.setThisLayerAdd(1);
} else {
fs.setThisLayerAdd(2);
}
}
}
}
} else {
if (t.getThisLayerAdd() != null) {
if (t.getThisLayerAdd() == 1) {
if (isAdministrator) {
fs.setThisLayerAdd(1);
} else {
fs.setThisLayerAdd(2);
}
}
}
}
// 本层编辑
if (fs.getThisLayerEdit() != null) {
if (fs.getThisLayerEdit() == 0) {
if (t.getThisLayerEdit() != null) {
if (t.getThisLayerEdit() == 1) {
fs.setThisLayerEdit(1);
} else {
fs.setThisLayerEdit(0);
}
}
} else if (fs.getThisLayerEdit() == 3) {
if (t.getThisLayerEdit() != null) {
if (t.getThisLayerEdit() == 1) {
fs.setThisLayerEdit(1);
} else {
fs.setThisLayerEdit(3);
}
}
} else {
if (t.getThisLayerEdit() != null) {
if (t.getThisLayerEdit() == 1) {
if (isAdministrator) {
fs.setThisLayerEdit(1);
} else {
fs.setThisLayerEdit(2);
}
}
}
}
} else {
if (t.getThisLayerEdit() != null) {
if (t.getThisLayerEdit() == 1) {
if (isAdministrator) {
fs.setThisLayerEdit(1);
} else {
fs.setThisLayerEdit(2);
}
}
}
}
// 本层删除
if (fs.getThisLayerDelete() != null) {
if (fs.getThisLayerDelete() == 0) {
if (t.getThisLayerDelete() != null) {
if (t.getThisLayerDelete() == 1) {
fs.setThisLayerDelete(1);
} else {
fs.setThisLayerDelete(0);
}
}
} else if (fs.getThisLayerDelete() == 3) {
if (t.getThisLayerDelete() != null) {
if (t.getThisLayerDelete() == 1) {
fs.setThisLayerDelete(1);
} else {
fs.setThisLayerDelete(3);
}
}
} else {
if (t.getThisLayerDelete() != null) {
if (t.getThisLayerDelete() == 1) {
if (isAdministrator) {
fs.setThisLayerDelete(1);
} else {
fs.setThisLayerDelete(2);
}
}
}
}
} else {
if (t.getThisLayerDelete() != null) {
if (t.getThisLayerDelete() == 1) {
if (isAdministrator) {
fs.setThisLayerDelete(1);
} else {
fs.setThisLayerDelete(2);
}
}
}
}
// 本层查看
if (fs.getThisLayerSelect() != null) {
if (fs.getThisLayerSelect() == 0) {
if (t.getThisLayerSelect() != null) {
if (t.getThisLayerSelect() == 1) {
fs.setThisLayerSelect(1);
} else {
fs.setThisLayerSelect(0);
}
}
} else if (fs.getThisLayerSelect() == 3) {
if (t.getThisLayerSelect() != null) {
if (t.getThisLayerSelect() == 1) {
fs.setThisLayerSelect(1);
} else {
fs.setThisLayerSelect(3);
}
}
} else {
if (t.getThisLayerSelect() != null) {
if (t.getThisLayerSelect() == 1) {
if (isAdministrator) {
fs.setThisLayerSelect(1);
} else {
fs.setThisLayerSelect(2);
}
}
}
}
} else {
if (t.getThisLayerSelect() != null) {
if (t.getThisLayerSelect() == 1) {
if (isAdministrator) {
fs.setThisLayerSelect(1);
} else {
fs.setThisLayerSelect(2);
}
}
}
}
// 子层添加
if (fs.getSubLayerAdd() != null) {
if (fs.getSubLayerAdd() == 0) {
if (t.getSubLayerAdd() != null) {
if (t.getSubLayerAdd() == 1) {
fs.setSubLayerAdd(1);
} else {
fs.setSubLayerAdd(0);
}
}
} else if (fs.getSubLayerAdd() == 3) {
if (t.getSubLayerAdd() != null) {
if (t.getSubLayerAdd() == 1) {
fs.setSubLayerAdd(1);
} else {
fs.setSubLayerAdd(3);
}
}
} else {
if (t.getSubLayerAdd() != null) {
if (t.getSubLayerAdd() == 1) {
if (isAdministrator) {
fs.setSubLayerAdd(1);
} else {
fs.setSubLayerAdd(2);
}
}
}
}
} else {
if (t.getSubLayerAdd() != null) {
if (t.getSubLayerAdd() == 1) {
if (isAdministrator) {
fs.setSubLayerAdd(1);
} else {
fs.setSubLayerAdd(2);
}
}
}
}
if (fs.getSubLayerEdit() != null) {
if (fs.getSubLayerEdit() == 0) {
if (t.getSubLayerEdit() != null) {
if (t.getSubLayerEdit() == 1) {
fs.setSubLayerEdit(1);
} else {
fs.setSubLayerEdit(0);
}
}
} else if (fs.getSubLayerEdit() == 3) {
if (t.getSubLayerEdit() != null) {
if (t.getSubLayerEdit() == 1) {
fs.setSubLayerEdit(1);
} else {
fs.setSubLayerEdit(3);
}
}
} else {
if (t.getSubLayerEdit() != null) {
if (t.getSubLayerEdit() == 1) {
if (isAdministrator) {
fs.setSubLayerEdit(1);
} else {
fs.setSubLayerEdit(2);
}
}
}
}
} else {
if (t.getSubLayerEdit() != null) {
if (t.getSubLayerEdit() == 1) {
if (isAdministrator) {
fs.setSubLayerEdit(1);
} else {
fs.setSubLayerEdit(2);
}
}
}
}
if (fs.getSubLayerDelete() != null) {
if (fs.getSubLayerDelete() == 0) {
if (t.getSubLayerDelete() != null) {
if (t.getSubLayerDelete() == 1) {
fs.setSubLayerDelete(1);
} else {
fs.setSubLayerDelete(0);
}
}
} else if (fs.getSubLayerDelete() == 3) {
if (t.getSubLayerDelete() != null) {
if (t.getSubLayerDelete() == 1) {
fs.setSubLayerDelete(1);
} else {
fs.setSubLayerDelete(3);
}
}
} else {
if (t.getSubLayerDelete() != null) {
if (t.getSubLayerDelete() == 1) {
if (isAdministrator) {
fs.setSubLayerDelete(1);
} else {
fs.setSubLayerDelete(2);
}
}
}
}
} else {
if (t.getSubLayerDelete() != null) {
if (t.getSubLayerDelete() == 1) {
if (isAdministrator) {
fs.setSubLayerDelete(1);
} else {
fs.setSubLayerDelete(2);
}
}
}
}
if (fs.getSubLayerSelect() != null) {
if (fs.getSubLayerSelect() == 0) {
if (t.getSubLayerSelect() != null) {
if (t.getSubLayerSelect() == 1) {
fs.setSubLayerSelect(1);
} else {
fs.setSubLayerSelect(0);
}
}
} else if (fs.getSubLayerSelect() == 3) {
if (t.getSubLayerSelect() != null) {
if (t.getSubLayerSelect() == 1) {
fs.setSubLayerSelect(1);
} else {
fs.setSubLayerSelect(3);
}
}
} else {
if (t.getSubLayerSelect() != null) {
if (t.getSubLayerSelect() == 1) {
if (isAdministrator) {
fs.setSubLayerSelect(1);
} else {
fs.setSubLayerSelect(2);
}
}
}
}
} else {
if (t.getSubLayerSelect() != null) {
if (t.getSubLayerSelect() == 1) {
if (isAdministrator) {
fs.setSubLayerSelect(1);
} else {
fs.setSubLayerSelect(2);
}
}
}
}
}
});
});
selectorModels = finalSelectorModels1;
// 系统
List<OrganizeAdministratorEntity> systemOrganizeAdministratorEntity = organizeAdminIsTratorService.getOrganizeAdministratorEntity(userId, jnpf.constant.PermissionConst.SYSTEM, true);
List<String> systemPermissionIds = systemOrganizeAdministratorEntity.stream().map(OrganizeAdministratorEntity::getOrganizeId).collect(Collectors.toList());
List<String> collect = systemSelectorVOList.stream().map(SystemSelectorVO::getId).collect(Collectors.toList());
List<String> systemList = new ArrayList<>();
systemList.addAll(systemPermissionIds);
systemList.addAll(collect);
// 交集 1
List<String> collect1 = systemPermissionIds.stream().filter(collect::contains).collect(Collectors.toList());
systemList = systemList.stream().distinct().collect(Collectors.toList());
// 去掉交集后
systemList.removeAll(collect1);
// 我有他没有 0
List<String> collect2 = collect.stream().filter(systemList::contains).collect(Collectors.toList());
// 他有我没有 2
List<String> collect3 = systemPermissionIds.stream().filter(systemList::contains).collect(Collectors.toList());
List<SystemEntity> listByIds1 = systemApi.getListByIds(collect1);
List<SystemSelectorVO> systemSelectorVOList1 = JsonUtil.getJsonToList(listByIds1, SystemSelectorVO.class);
systemSelectorVOList1.forEach(t -> t.setIsPermission(1));
List<SystemEntity> listByIds2 = systemApi.getListByIds(collect2);
List<SystemSelectorVO> systemSelectorVOList2 = JsonUtil.getJsonToList(listByIds2, SystemSelectorVO.class);
systemSelectorVOList2.forEach(t -> t.setIsPermission(0));
List<SystemEntity> listByIds3 = systemApi.getListByIds(collect3);
List<SystemSelectorVO> systemSelectorVOList3 = JsonUtil.getJsonToList(listByIds3, SystemSelectorVO.class);
systemSelectorVOList3.forEach(t -> {
t.setIsPermission(2);
t.setDisabled(true);
});
// systemSelectedList.addAll(systemSelectorVOList1.stream().map(SystemSelectorVO::getId).collect(Collectors.toList()));
// systemSelectedList.addAll(systemSelectorVOList3.stream().map(SystemSelectorVO::getId).collect(Collectors.toList()));
systemSelectedList.addAll(systemSelectorVOList.stream().map(SystemSelectorVO::getId).collect(Collectors.toList()));
systemPermissionList.addAll(systemSelectorVOList1);
systemPermissionList.addAll(systemSelectorVOList2);
systemPermissionList.addAll(systemSelectorVOList3);
systemPermissionList = systemPermissionList.stream().sorted(Comparator.comparing(SystemSelectorVO::getSortCode).thenComparing(Comparator.comparing(SystemSelectorVO::getCreatorTime).reversed())).collect(Collectors.toList());
// 菜单
List<OrganizeAdministratorEntity> moduleOrganizeAdministratorEntity = organizeAdminIsTratorService.getOrganizeAdministratorEntity(userId, PermissionConst.MODULE, false);
List<String> modulePermissionIds = moduleOrganizeAdministratorEntity.stream().map(OrganizeAdministratorEntity::getOrganizeId).collect(Collectors.toList());
List<String> moduleCollect = moduleSelectorVOList.stream().map(ModuleSelectorModel::getId).collect(Collectors.toList());
// List<ModuleSelectorModel> moduleSelectorVOListssId = moduleSelectorVOList;
// List<ModuleSelectorModel> moduleSelectorVOListss = moduleSelectorVOList;
// for (ModuleSelectorModel model:moduleSelectorVOList){
// model.getId();
// moduleSelectorVOListssId.addAll(model.getId());
// }
//申请入住先赋值所有的菜单
moduleSelectedList.addAll(moduleSelectorVOList.stream().map(ModuleSelectorModel::getId).collect(Collectors.toList()));
List<String> moduleList = new ArrayList<>();
moduleList.addAll(modulePermissionIds);
moduleList.addAll(moduleCollect);
// 交集 1
List<String> moduleCollect1 = modulePermissionIds.stream().filter(moduleCollect::contains).collect(Collectors.toList());
moduleList = moduleList.stream().distinct().collect(Collectors.toList());
// 去掉交集后
moduleList.removeAll(moduleCollect1);
// 我有他没有 0
List<String> moduleCollect2 = moduleCollect.stream().filter(moduleList::contains).collect(Collectors.toList());
// 他有我没有 2
List<String> moduleCollect3 = modulePermissionIds.stream().filter(moduleList::contains).collect(Collectors.toList());
List<ModuleEntity> moduleListByIds1 = moduleApi.getModuleByIds(moduleCollect1);
List<ModuleSelectorModel> moduleSelectorVOList1 = JsonUtil.getJsonToList(moduleListByIds1, ModuleSelectorModel.class);
moduleSelectorVOList1.forEach(t -> t.setIsPermission(1));
List<ModuleEntity> moduleListByIds2 = moduleApi.getModuleByIds(moduleCollect2);
List<ModuleSelectorModel> moduleSelectorVOList2 = JsonUtil.getJsonToList(moduleListByIds2, ModuleSelectorModel.class);
moduleSelectorVOList2.forEach(t -> t.setIsPermission(0));
List<ModuleEntity> moduleListByIds3 = moduleApi.getModuleByIds(moduleCollect3);
List<ModuleSelectorModel> moduleSelectorVOList3 = JsonUtil.getJsonToList(moduleListByIds3, ModuleSelectorModel.class);
moduleSelectorVOList3.forEach(t -> {
t.setIsPermission(2);
t.setDisabled(true);
});
modulePermissionList.addAll(moduleSelectorVOList1);
modulePermissionList.addAll(moduleSelectorVOList2);
modulePermissionList.addAll(moduleSelectorVOList3);
Set<ModuleSelectorModel> tempModule = new HashSet<>(modulePermissionList);
// 处理上级
List<ModuleSelectorModel> finalModulePermissionList = modulePermissionList;
modulePermissionList.forEach(t -> {
// 判断上级是否存在,不存在的话取出放入总权限列表
parentIdInList(finalModulePermissionList, tempModule, allModuleSelectorVOList, t, t);
});
modulePermissionList = new ArrayList<>(tempModule);
modulePermissionList.forEach(t -> {
if ("-1".equals(t.getParentId())) {
t.setParentId(t.getSystemId());
}
});
// 加入主系统
ModuleSelectorModel jsonToBean = JsonUtil.getJsonToBean(mainSystem, ModuleSelectorModel.class);
if (moduleSelectorVOList1.stream().anyMatch(t -> t.getId().equals(jsonToBean.getId()))) {
jsonToBean.setIsPermission(1);
} else if (moduleSelectorVOList2.stream().anyMatch(t -> t.getId().equals(jsonToBean.getId()))) {
jsonToBean.setIsPermission(0);
} else if (moduleSelectorVOList3.stream().anyMatch(t -> t.getId().equals(jsonToBean.getId()))) {
jsonToBean.setIsPermission(2);
jsonToBean.setDisabled(true);
}
// moduleSelectedList.addAll(moduleSelectorVOList1.stream().map(ModuleSelectorModel::getId).collect(Collectors.toList()));
// moduleSelectedList.addAll(moduleSelectorVOList3.stream().map(ModuleSelectorModel::getId).collect(Collectors.toList()));
jsonToBean.setType(0);
jsonToBean.setParentId("-1");
modulePermissionList.add(jsonToBean);
modulePermissionList = modulePermissionList.stream().sorted(Comparator.comparing(ModuleSelectorModel::getSortCode).thenComparing(Comparator.comparing(ModuleSelectorModel::getCreatorTime).reversed())).collect(Collectors.toList());
List<SumTree<ModuleSelectorModel>> menuList = TreeDotUtils.convertListToTreeDotFilter(modulePermissionList);
moduleVOPermissionList = JsonUtil.getJsonToList(menuList, ModuleSelectorVO.class);
} else {
selectorModels = new ArrayList<>();
}
// 判断断层有没有上下级关系
List<OrganizeAdministratorSelectorModel> finalSelectorModels2 = new ArrayList<>(selectorModels);
selectorModels.forEach(t -> {
if (StringUtil.isNotEmpty(t.getOrganizeIdTree())) {
List<String> list1 = new ArrayList<>();
String[] split = t.getOrganizeIdTree().split(",");
list1 = Arrays.asList(split);
Collections.reverse(list1);
for (String orgId : list1) {
OrganizeAdministratorSelectorModel organizeEntity1 = finalSelectorModels2.stream().filter(organizeEntity -> organizeEntity.getId().equals(orgId)).findFirst().orElse(null);
if (organizeEntity1 != null && !organizeEntity1.getId().equals(t.getId())) {
t.setParentId(organizeEntity1.getId());
String[] split1 = t.getOrganizeIdTree().split(organizeEntity1.getId());
if (split1.length > 1) {
t.setFullName(organizeService.getFullNameByOrgIdTree(split1[1], "/"));
}
break;
}
}
}
});
selectorModels.forEach(t -> t.setIcon(StringUtil.isNotEmpty(t.getCategory()) ? "company".equals(t.getCategory()) ? "icon-ym icon-ym-tree-organization3" : "icon-ym icon-ym-tree-department1" : ""));
List<SumTree<OrganizeAdministratorSelectorModel>> trees = TreeDotUtils.convertListToTreeDot(selectorModels);
List<OrganizeAdministratorSelectorVO> listVO = JsonUtil.getJsonToList(trees, OrganizeAdministratorSelectorVO.class);
listVO.forEach(t -> {
t.setFullName(organizeService.getFullNameByOrgIdTree(t.getOrganizeIdTree(), "/"));
});
vo.setOrgAdminList(listVO);
vo.setSystemPermissionList(systemPermissionList);
vo.setModulePermissionList(moduleVOPermissionList);
vo.setSystemIds(systemSelectedList);
vo.setModuleIds(moduleSelectedList);
return vo;
}
}

@ -5,6 +5,7 @@ import cn.dev33.satoken.annotation.SaMode;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.parser.Feature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import jnpf.base.controller.SuperController;
@ -21,7 +22,13 @@ import jnpf.message.service.SynThirdQyService;
import jnpf.permission.entity.OrganizeAdministratorEntity;
import jnpf.permission.entity.OrganizeEntity;
import jnpf.exception.DataException;
import jnpf.permission.entity.UserEntity;
import jnpf.permission.model.organize.*;
import jnpf.permission.model.organizeadministrator.OrganizeAdminIsTratorCrForm;
import jnpf.permission.model.organizeadministrator.OrganizeAdministratorCrModel;
import jnpf.permission.model.organizeadministrator.OrganizeAdministratorSelectedVO;
import jnpf.permission.model.organizeadministrator.OrganizeAdministratorSelectorVO;
import jnpf.permission.model.user.form.UserCrForm;
import jnpf.permission.service.OrganizeAdministratorService;
import jnpf.permission.service.OrganizeRelationService;
import jnpf.permission.service.OrganizeService;
@ -34,6 +41,7 @@ import jnpf.util.treeutil.ListToTreeUtil;
import jnpf.util.treeutil.SumTree;
import jnpf.util.treeutil.newtreeutil.TreeDotUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -76,6 +84,12 @@ public class OrganizeController extends SuperController<OrganizeService, Organiz
private UserProvider userProvider;
@Autowired
private OrganizeRelationService organizeRelationService;
@Autowired
private UserController userController;
@Autowired
private OrganizeAdministratorController organizeAdministratorController;
@Autowired
private OrganizeAdministratorService organizeAdminIsTratorService;
//---------------------------组织管理--------------------------------------------
@ -399,7 +413,6 @@ public class OrganizeController extends SuperController<OrganizeService, Organiz
// 通过组织id获取父级组织
String organizeIdTree = getOrganizeIdTree(entity);
entity.setOrganizeIdTree(organizeIdTree);
organizeService.create(entity);
threadPoolExecutor.execute(() -> {
try{
@ -414,6 +427,198 @@ public class OrganizeController extends SuperController<OrganizeService, Organiz
return ActionResult.success(MsgCode.SU001.get());
}
/**
*
*
* @param organizeCrForm
* @return
*/
@OrganizePermission
@Operation(summary = "申请入住新建组织")
@Parameters({
@Parameter(name = "organizeCrForm", description = "新建模型", required = true)
})
@SaCheckPermission(value = {"permission.organize.check"})
@PostMapping("/check")
public ActionResult checkCreate(@RequestBody @Valid OrganizeCrForm organizeCrForm) throws Exception {
OrganizeEntity entity = JsonUtil.getJsonToBean(organizeCrForm, OrganizeEntity.class);
entity.setCategory("company");
if (organizeService.isExistByFullName(entity, false, false)) {
return ActionResult.fail("公司名称不能重复");
}
if (organizeService.isExistByEnCode(entity.getEnCode(), entity.getId())) {
return ActionResult.fail("公司编码不能重复");
}
// 通过组织id获取父级组织
String organizeIdTree = getOrganizeIdTree(entity);
entity.setOrganizeIdTree(organizeIdTree);
organizeService.create(entity);
//申请入住新建组织自动添加用户
UserCrForm userCrForm =new UserCrForm();
userCrForm.setRealName(entity.getFullName()); //商户名称变为用户名称
userCrForm.setAccount(organizeCrForm.getPropertyJson().getManagerTelePhone()); //Json手机号为账户
userCrForm.setGender(3); //默认保密
userCrForm.setOrganizeId(entity.id);
userCrForm.setMobilePhone(organizeCrForm.getPropertyJson().getManagerTelePhone());
// userController.create(userCrForm);
UserEntity userEntity = JsonUtil.getJsonToBean(userCrForm, UserEntity.class);
userEntity.setPassword("4a7d1ed414474e4033ac29ccb8653d9b");
if (userService.isExistByAccount(userCrForm.getAccount())) {
return ActionResult.fail("账户名称不能重复");
}
userService.create(userEntity);
//申请入住赋予权限
// ActionResult<OrganizeAdministratorSelectedVO> vo = new ActionResult<OrganizeAdministratorSelectedVO>();
OrganizeAdministratorSelectedVO vo = new OrganizeAdministratorSelectedVO();
vo= organizeAdministratorController.getSelectors(userEntity.id);
// System.out.println(vo);
OrganizeAdministratorSelectorVO vo1 = vo.getOrgAdminList().get(0);
OrganizeAdministratorCrModel organizeAdministratorCrModel=new OrganizeAdministratorCrModel();
// BeanUtils.copyProperties(vo1,organizeAdministratorCrModel);
// List<OrganizeAdministratorCrModel> organizeAdministratorCrModelList1 = new ArrayList<>();
// BeanUtils.copyProperties(vo1.getChildren(),organizeAdministratorCrModelList1);
// organizeAdministratorCrModel.setChildren(organizeAdministratorCrModelList1);
// for (OrganizeAdministratorSelectorVO organizeAdminVo:vo.getOrgAdminList()){
// organizeAdministratorCrModel.setOrganizeId(organizeAdminVo.getOrganizeId());
// organizeAdministratorCrModel.setFullName(organizeAdminVo.getFullName());
// organizeAdministratorCrModel.setIcon(organizeAdminVo.getIcon());
// organizeAdministratorCrModel.setIsLeaf(organizeAdminVo.getIsLeaf());
// organizeAdministratorCrModel.setHasChildren(organizeAdminVo.getHasChildren());
// organizeAdministratorCrModel.setParentId(organizeAdminVo.getParentId());
// organizeAdministratorCrModel.setThisLayerAdd(organizeAdminVo.getThisLayerAdd());
// organizeAdministratorCrModel.setThisLayerEdit(organizeAdminVo.getThisLayerEdit());
// organizeAdministratorCrModel.setThisLayerDelete(organizeAdminVo.getThisLayerDelete());
// organizeAdministratorCrModel.setThisLayerSelect(organizeAdminVo.getThisLayerSelect());
// organizeAdministratorCrModel.setSubLayerAdd(organizeAdminVo.getSubLayerAdd());
// organizeAdministratorCrModel.setSubLayerEdit(organizeAdminVo.getSubLayerEdit());
// organizeAdministratorCrModel.setSubLayerDelete(organizeAdminVo.getSubLayerDelete());
// organizeAdministratorCrModel.setSubLayerSelect(organizeAdminVo.getSubLayerSelect());
// organizeAdministratorCrModel.setOrganizeIdTree(organizeAdminVo.getOrganizeIdTree());
// organizeAdministratorCrModel.setCategory(organizeAdminVo.getCategory());
// organizeAdministratorCrModel.setChildrenCheck(organizeAdminVo.getChildren());
// }
List<OrganizeAdministratorCrModel> organizeAdministratorCrModelList=new ArrayList<>();
organizeAdministratorCrModelList.add(organizeAdministratorCrModel);
OrganizeAdminIsTratorCrForm organizeAdminIsTratorCrForm =new OrganizeAdminIsTratorCrForm();
organizeAdminIsTratorCrForm.setModuleIds(vo.getModuleIds());
organizeAdminIsTratorCrForm.setSystemIds(vo.getSystemIds());
organizeAdminIsTratorCrForm.setUserId(userEntity.id);
organizeAdminIsTratorCrForm.setOrgAdminModelCheck(vo.getOrgAdminList());
// organizeAdministratorController.saveCheck(organizeAdminIsTratorCrForm);
String userId = organizeAdminIsTratorCrForm.getUserId();
List<OrganizeAdministratorSelectorVO> list = new ArrayList<>(16);
// 递归得到所有的数组
getOrganizeAdminIsTratorModelCheck(list, organizeAdminIsTratorCrForm.getOrgAdminModelCheck());
List<OrganizeAdministratorEntity> jsonToList = JsonUtil.getJsonToList(list, OrganizeAdministratorEntity.class);
// 处理应用
List<String> systemIds = organizeAdminIsTratorCrForm.getSystemIds();
systemIds.forEach(t -> {
OrganizeAdministratorEntity organizeAdministratorEntity = new OrganizeAdministratorEntity();
organizeAdministratorEntity.setOrganizeType(jnpf.constant.PermissionConst.SYSTEM);
organizeAdministratorEntity.setOrganizeId(t);
organizeAdministratorEntity.setThisLayerSelect(1);
jsonToList.add(organizeAdministratorEntity);
});
// 处理菜单
List<String> moduleIds = organizeAdminIsTratorCrForm.getModuleIds();
moduleIds.forEach(t -> {
OrganizeAdministratorEntity organizeAdministratorEntity = new OrganizeAdministratorEntity();
organizeAdministratorEntity.setOrganizeType(jnpf.constant.PermissionConst.MODULE);
organizeAdministratorEntity.setOrganizeId(t);
organizeAdministratorEntity.setThisLayerSelect(1);
jsonToList.add(organizeAdministratorEntity);
});
organizeAdminIsTratorService.createList(jsonToList, userId);
//查询组织id和人员
QueryWrapper<OrganizeAdministratorEntity> administratorQueryWrapper = new QueryWrapper<>();
administratorQueryWrapper.lambda().eq(OrganizeAdministratorEntity::getUserId,userEntity.id);
administratorQueryWrapper.lambda().eq(OrganizeAdministratorEntity::getOrganizeId,entity.id);
administratorQueryWrapper.lambda().eq(OrganizeAdministratorEntity::getThisLayerAdd,0);
administratorQueryWrapper.lambda().select(OrganizeAdministratorEntity::getId);
//替代前台传值,显示组织权限
List<String> organizeAdminIsTratorList = organizeAdminIsTratorService.listObjs(administratorQueryWrapper).stream().map(o -> (String) o).collect(Collectors.toList());
if (organizeAdminIsTratorList.size()>0){
List<OrganizeAdministratorEntity> organizeAdministratorEntityList = organizeAdminIsTratorService.listByIds(organizeAdminIsTratorList);
for (OrganizeAdministratorEntity oEntity: organizeAdministratorEntityList) {
oEntity.setThisLayerAdd(1);
oEntity.setThisLayerEdit(1);
oEntity.setThisLayerDelete(1);
oEntity.setSubLayerAdd(1);
oEntity.setSubLayerEdit(1);
oEntity.setSubLayerDelete(1);
oEntity.setThisLayerSelect(1);
oEntity.setSubLayerSelect(1);
}
organizeAdminIsTratorService.updateBatchById(organizeAdministratorEntityList);
}
// threadPoolExecutor.execute(() -> {
// try{
// //创建组织后判断是否需要同步到企业微信
// synThirdQyService.createDepartmentSysToQy(false, entity, "");
// //创建组织后判断是否需要同步到钉钉
// synThirdDingTalkService.createDepartmentSysToDing(false, entity, "");
// } catch (Exception e) {
// log.error("创建组织后同步失败到企业微信或钉钉失败,异常:" + e.getMessage());
// }
// });
return ActionResult.success(MsgCode.SU001.get());
}
/**
*
*
* @param list
* @param jsonToList
*/
private void getOrganizeAdminIsTratorModelCheck(List<OrganizeAdministratorSelectorVO> list, List<OrganizeAdministratorSelectorVO> jsonToList) {
if (jsonToList != null) {
jsonToList.forEach(t -> {
OrganizeAdministratorSelectorVO vo = JsonUtil.getJsonToBean(t, OrganizeAdministratorSelectorVO.class);
vo.setChildren(null);
if (vo.getThisLayerSelect() != null && (vo.getThisLayerSelect() == 2 || vo.getThisLayerSelect() == 1)) {
vo.setThisLayerSelect(1);
if (vo.getThisLayerAdd() != null && (vo.getThisLayerAdd() == 2 || vo.getThisLayerAdd() == 1)) {
vo.setThisLayerAdd(1);
}
if (vo.getThisLayerEdit() != null && (vo.getThisLayerEdit() == 2 || vo.getThisLayerEdit() == 1)) {
vo.setThisLayerEdit(1);
}
if (vo.getThisLayerDelete() != null && (vo.getThisLayerDelete() == 2 || vo.getThisLayerDelete() == 1)) {
vo.setThisLayerDelete(1);
}
} else if (vo.getThisLayerSelect() == null || vo.getThisLayerSelect() == 0 || vo.getThisLayerSelect() == 3) {
vo.setThisLayerSelect(0);
vo.setThisLayerAdd(0);
vo.setThisLayerEdit(0);
vo.setThisLayerDelete(0);
}
if (vo.getSubLayerSelect() != null && (vo.getSubLayerSelect() == 2 || vo.getSubLayerSelect() == 1)) {
vo.setSubLayerSelect(1);
if (vo.getSubLayerAdd() != null && (vo.getSubLayerAdd() == 2 || vo.getSubLayerAdd() == 1)) {
vo.setSubLayerAdd(1);
}
if (vo.getSubLayerEdit() != null && (vo.getSubLayerEdit() == 2 || vo.getSubLayerEdit() == 1)) {
vo.setSubLayerEdit(1);
}
if (vo.getSubLayerDelete() != null && (vo.getSubLayerDelete() == 2 || vo.getSubLayerDelete() == 1)) {
vo.setSubLayerDelete(1);
}
} else if (vo.getSubLayerSelect() == null || vo.getSubLayerSelect() == 0 || vo.getSubLayerSelect() == 3) {
vo.setSubLayerSelect(0);
vo.setSubLayerAdd(0);
vo.setSubLayerEdit(0);
vo.setSubLayerDelete(0);
}
list.add(vo);
getOrganizeAdminIsTratorModelCheck(list, t.getChildren());
});
}
}
/**
*
*

@ -31,6 +31,12 @@ public class OrganizeAdminIsTratorCrForm implements Serializable {
@Schema(description = "分级管理员模型集合")
private List<OrganizeAdministratorCrModel> orgAdminModel;
/**
*
*/
@Schema(description = "分级管理员模型集合")
private List<OrganizeAdministratorSelectorVO> orgAdminModelCheck;
@Schema(description = "菜单集合")
private List<String> moduleIds;

@ -42,6 +42,15 @@ export const createOrganize = (data) => {
})
}
// 新建组织/公司
export const createOrganizeCheck = (data) => {
return request({
url: '/api/permission/Organize/check',
method: 'POST',
data
})
}
// 修改组织/公司
export const updateOrganize = (data) => {
return request({

@ -347,6 +347,7 @@
<script>
import { createOrganize } from "@/api/permission/organize";
import { createOrganizeCheck } from "@/api/permission/organize";
export default {
name: "login-regsiter",
@ -535,7 +536,9 @@ export default {
// });
this.btnLoading = true;
const formMethod = this.dataForm.id ? updateOrganize : createOrganize;
const formMethod = this.dataForm.id
? updateOrganize
: createOrganizeCheck;
formMethod(this.dataForm)
.then((res) => {
this.$message({

@ -1,22 +1,60 @@
<template>
<el-dialog :title="!dataForm.id?'新建分管':'编辑分管'" :close-on-click-modal="false"
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="900px">
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" v-loading="formLoading"
label-width="100px" class="JNPF-dialog-gradeManage">
<el-alert title="设置当前组织部门的管理员和相关操作权限" type="warning" :closable="false" show-icon
class="mb-20">
<el-dialog
:title="!dataForm.id ? '新建分管' : '编辑分管'"
:close-on-click-modal="false"
:visible.sync="visible"
class="JNPF-dialog JNPF-dialog_center"
lock-scroll
width="900px"
>
<el-form
ref="dataForm"
:model="dataForm"
:rules="dataRule"
v-loading="formLoading"
label-width="100px"
class="JNPF-dialog-gradeManage"
>
<el-alert
title="设置当前组织部门的管理员和相关操作权限"
type="warning"
:closable="false"
show-icon
class="mb-20"
>
</el-alert>
<el-form-item label="设置管理员" prop="userId" v-if="!dataForm.id && userInfo.isAdministrator">
<JnpfUserSelect v-model="dataForm.userId" placeholder="请选择管理员" @change="onChange"
:key="key" />
<el-form-item
label="设置管理员"
prop="userId"
v-if="!dataForm.id && userInfo.isAdministrator"
>
<JnpfUserSelect
v-model="dataForm.userId"
placeholder="请选择管理员"
@change="onChange"
:key="key"
/>
</el-form-item>
<el-form-item label="设置管理员" prop="userId" v-if="!dataForm.id && !userInfo.isAdministrator">
<grade-user-select v-model="dataForm.userId" placeholder="请选择管理员" @change="onChange"
:key="key" />
<el-form-item
label="设置管理员"
prop="userId"
v-if="!dataForm.id && !userInfo.isAdministrator"
>
<grade-user-select
v-model="dataForm.userId"
placeholder="请选择管理员"
@change="onChange"
:key="key"
/>
</el-form-item>
<el-form-item label="设置管理员" prop="userId" v-if="dataForm.id">
<JnpfUserSelect v-model="dataForm.userId" placeholder="请选择管理员" @change="onChange" :key="key"
disabled />
<JnpfUserSelect
v-model="dataForm.userId"
placeholder="请选择管理员"
@change="onChange"
:key="key"
disabled
/>
</el-form-item>
<template>
<el-tabs v-model="activeName" @tab-click="handleClick">
@ -25,111 +63,203 @@
<el-tab-pane label="组织权限" name="gradeManage"></el-tab-pane>
</el-tabs>
</template>
<template v-if="activeName!='gradeManage'">
<el-tree :data="treeData" ref="treeData" v-loading="treeLoading" show-checkbox
default-expand-all node-key="id" :check-strictly="checkStrictly" check-on-click-node
:props="defaultProps" :expand-on-click-node="false" @check-change="selectTreeNodeClick"
style="height:400px;overflow: auto">
<template v-if="activeName != 'gradeManage'">
<el-tree
:data="treeData"
ref="treeData"
v-loading="treeLoading"
show-checkbox
default-expand-all
node-key="id"
:check-strictly="checkStrictly"
check-on-click-node
:props="defaultProps"
:expand-on-click-node="false"
@check-change="selectTreeNodeClick"
style="height: 400px; overflow: auto"
>
<span slot-scope="{ node, data }">
<i :class="data.icon" />
<span style="padding-left: 4px;">{{ node.label }}</span>
<span style="padding-left: 4px">{{ node.label }}</span>
</span>
</el-tree>
</template>
<template v-else-if="activeName=='gradeManage'">
<el-table v-loading="listLoading" :data="treeList" row-key="organizeId" default-expand-all
:tree-props="{children: 'children', hasChildren: ''}" style="height:400px;overflow: auto">
<template v-else-if="activeName == 'gradeManage'">
<el-table
v-loading="listLoading"
:data="treeList"
row-key="organizeId"
default-expand-all
:tree-props="{ children: 'children', hasChildren: '' }"
style="height: 400px; overflow: auto"
>
<el-table-column prop="fullName" label="组织架构">
<template slot-scope="scope">
<i :class=scope.row.icon></i>
{{scope.row.fullName}}
<i :class="scope.row.icon"></i>
{{ scope.row.fullName }}
</template>
</el-table-column>
<el-table-column label="组织操作权限(本层级)" width="280">
<template slot-scope="scope">
<template v-if="scope.row.thisLayerSelect===2">
<template v-if="scope.row.thisLayerSelect === 2">
<el-checkbox checked disabled>查看</el-checkbox>
</template>
<template v-if="scope.row.thisLayerSelect===3">
<template v-if="scope.row.thisLayerSelect === 3">
<el-checkbox disabled>查看</el-checkbox>
</template>
<template v-if="scope.row.thisLayerSelect===0 ||scope.row.thisLayerSelect===1">
<el-checkbox v-model="scope.row.thisLayerSelect" :true-label="1" :false-label="0"
@change="onThisLayerSelectChange($event,scope.row)">查看</el-checkbox>
<template
v-if="
scope.row.thisLayerSelect === 0 ||
scope.row.thisLayerSelect === 1
"
>
<el-checkbox
v-model="scope.row.thisLayerSelect"
:true-label="1"
:false-label="0"
@change="onThisLayerSelectChange($event, scope.row)"
>查看</el-checkbox
>
</template>
<template v-if="scope.row.thisLayerAdd===2">
<template v-if="scope.row.thisLayerAdd === 2">
<el-checkbox checked disabled>添加</el-checkbox>
</template>
<template v-if="scope.row.thisLayerAdd===3">
<template v-if="scope.row.thisLayerAdd === 3">
<el-checkbox disabled>添加</el-checkbox>
</template>
<template v-if="scope.row.thisLayerAdd===0 ||scope.row.thisLayerAdd===1">
<el-checkbox v-model="scope.row.thisLayerAdd" :true-label="1" :false-label="0"
:disabled="scope.row.thisLayerSelect===0">添加</el-checkbox>
<template
v-if="
scope.row.thisLayerAdd === 0 || scope.row.thisLayerAdd === 1
"
>
<el-checkbox
v-model="scope.row.thisLayerAdd"
:true-label="1"
:false-label="0"
:disabled="scope.row.thisLayerSelect === 0"
>添加</el-checkbox
>
</template>
<template v-if="scope.row.thisLayerEdit===2">
<template v-if="scope.row.thisLayerEdit === 2">
<el-checkbox checked disabled>编辑</el-checkbox>
</template>
<template v-if="scope.row.thisLayerEdit===3">
<template v-if="scope.row.thisLayerEdit === 3">
<el-checkbox disabled>编辑</el-checkbox>
</template>
<template v-if="scope.row.thisLayerEdit===0 ||scope.row.thisLayerEdit===1">
<el-checkbox v-model="scope.row.thisLayerEdit" :true-label="1" :false-label="0"
:disabled="scope.row.thisLayerSelect===0">编辑</el-checkbox>
<template
v-if="
scope.row.thisLayerEdit === 0 || scope.row.thisLayerEdit === 1
"
>
<el-checkbox
v-model="scope.row.thisLayerEdit"
:true-label="1"
:false-label="0"
:disabled="scope.row.thisLayerSelect === 0"
>编辑</el-checkbox
>
</template>
<template v-if="scope.row.thisLayerDelete===2">
<template v-if="scope.row.thisLayerDelete === 2">
<el-checkbox checked disabled>删除</el-checkbox>
</template>
<template v-if="scope.row.thisLayerDelete===3">
<template v-if="scope.row.thisLayerDelete === 3">
<el-checkbox disabled>删除</el-checkbox>
</template>
<template v-if="scope.row.thisLayerDelete===0 ||scope.row.thisLayerDelete===1">
<el-checkbox v-model="scope.row.thisLayerDelete" :true-label="1" :false-label="0"
:disabled="scope.row.thisLayerSelect===0">删除</el-checkbox>
<template
v-if="
scope.row.thisLayerDelete === 0 ||
scope.row.thisLayerDelete === 1
"
>
<el-checkbox
v-model="scope.row.thisLayerDelete"
:true-label="1"
:false-label="0"
:disabled="scope.row.thisLayerSelect === 0"
>删除</el-checkbox
>
</template>
</template>
</el-table-column>
<el-table-column label="子组织操作权限(子层级)" width="280">
<template slot-scope="scope">
<template v-if="scope.row.subLayerSelect===2">
<template v-if="scope.row.subLayerSelect === 2">
<el-checkbox checked disabled>查看</el-checkbox>
</template>
<template v-if="scope.row.subLayerSelect===3">
<template v-if="scope.row.subLayerSelect === 3">
<el-checkbox disabled>查看</el-checkbox>
</template>
<template v-if="scope.row.subLayerSelect===0 ||scope.row.subLayerSelect===1">
<el-checkbox v-model="scope.row.subLayerSelect" :true-label="1" :false-label="0"
@change="onSubLayerSelectChange($event,scope.row)">查看</el-checkbox>
<template
v-if="
scope.row.subLayerSelect === 0 ||
scope.row.subLayerSelect === 1
"
>
<el-checkbox
v-model="scope.row.subLayerSelect"
:true-label="1"
:false-label="0"
@change="onSubLayerSelectChange($event, scope.row)"
>查看</el-checkbox
>
</template>
<template v-if="scope.row.subLayerAdd===2">
<template v-if="scope.row.subLayerAdd === 2">
<el-checkbox checked disabled>添加</el-checkbox>
</template>
<template v-if="scope.row.subLayerAdd===3">
<template v-if="scope.row.subLayerAdd === 3">
<el-checkbox disabled>添加</el-checkbox>
</template>
<template v-if="scope.row.subLayerAdd===0 ||scope.row.subLayerAdd===1">
<el-checkbox v-model="scope.row.subLayerAdd" :true-label="1" :false-label="0"
:disabled="scope.row.subLayerSelect===0">添加</el-checkbox>
<template
v-if="
scope.row.subLayerAdd === 0 || scope.row.subLayerAdd === 1
"
>
<el-checkbox
v-model="scope.row.subLayerAdd"
:true-label="1"
:false-label="0"
:disabled="scope.row.subLayerSelect === 0"
>添加</el-checkbox
>
</template>
<template v-if="scope.row.subLayerEdit===2">
<template v-if="scope.row.subLayerEdit === 2">
<el-checkbox checked disabled>编辑</el-checkbox>
</template>
<template v-if="scope.row.subLayerEdit===3">
<template v-if="scope.row.subLayerEdit === 3">
<el-checkbox disabled>编辑</el-checkbox>
</template>
<template v-if="scope.row.subLayerEdit===0 ||scope.row.subLayerEdit===1">
<el-checkbox v-model="scope.row.subLayerEdit" :true-label="1" :false-label="0"
:disabled="scope.row.subLayerSelect===0">编辑</el-checkbox>
<template
v-if="
scope.row.subLayerEdit === 0 || scope.row.subLayerEdit === 1
"
>
<el-checkbox
v-model="scope.row.subLayerEdit"
:true-label="1"
:false-label="0"
:disabled="scope.row.subLayerSelect === 0"
>编辑</el-checkbox
>
</template>
<template v-if="scope.row.subLayerDelete===2">
<template v-if="scope.row.subLayerDelete === 2">
<el-checkbox checked disabled>删除</el-checkbox>
</template>
<template v-if="scope.row.subLayerDelete===3">
<template v-if="scope.row.subLayerDelete === 3">
<el-checkbox disabled>删除</el-checkbox>
</template>
<template v-if="scope.row.subLayerDelete===0 ||scope.row.subLayerDelete===1">
<el-checkbox v-model="scope.row.subLayerDelete" :true-label="1" :false-label="0"
:disabled="scope.row.subLayerSelect===0">删除</el-checkbox>
<template
v-if="
scope.row.subLayerDelete === 0 ||
scope.row.subLayerDelete === 1
"
>
<el-checkbox
v-model="scope.row.subLayerDelete"
:true-label="1"
:false-label="0"
:disabled="scope.row.subLayerSelect === 0"
>删除</el-checkbox
>
</template>
</template>
</el-table-column>
@ -137,17 +267,23 @@
</template>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{$t('common.cancelButton')}}</el-button>
<el-button @click="visible = false">{{
$t("common.cancelButton")
}}</el-button>
<el-button type="primary" :loading="btnLoading" @click="dataFormSubmit()">
{{$t('common.confirmButton')}}</el-button>
{{ $t("common.confirmButton") }}</el-button
>
</span>
</el-dialog>
</template>
<script>
import gradeUserSelect from "./GradeUserSelect"
import gradeUserSelect from "./GradeUserSelect";
import { mapGetters } from "vuex";
import { getSelectorOrgList, saveGradeManage } from '@/api/permission/gradeManage'
import {
getSelectorOrgList,
saveGradeManage,
} from "@/api/permission/gradeManage";
export default {
components: { gradeUserSelect },
data() {
@ -156,152 +292,158 @@ export default {
formLoading: false,
btnLoading: false,
dataForm: {
id: '',
userId: ''
id: "",
userId: "",
},
activeName: 'module',
activeName: "module",
listLoading: false,
refreshTable: true,
treeList: [],
dataRule: {
userId: [
{ required: true, message: '请选择管理员', trigger: 'click' }
]
userId: [{ required: true, message: "请选择管理员", trigger: "click" }],
},
treeData: [],
menuTreeData: [],
systemData: [],
checkStrictly: false,
treeLoading: false,
defaultProps: { //
value: 'id',
label: 'fullName',
children: 'children'
defaultProps: {
//
value: "id",
label: "fullName",
children: "children",
},
moduleIds: [],
systemIds: [],
key: +new Date()
}
key: +new Date(),
};
},
computed: {
...mapGetters(['userInfo'])
...mapGetters(["userInfo"]),
},
methods: {
onChange(val) {
if (!val) return
this.initData()
if (!val) return;
this.initData();
},
handleClick() {
if (this.activeName === 'gradeManage') return
if (this.activeName === "gradeManage") return;
this.$nextTick(() => {
this.treeData = this.activeName == 'module' ? this.menuTreeData : this.systemData
const parentIds = this.parentIds(this.treeData)
const childrenIds = this[this.activeName + 'Ids'].filter(id => !parentIds.includes(id))
this.$refs.treeData.setCheckedKeys(childrenIds)
})
this.treeData =
this.activeName == "module" ? this.menuTreeData : this.systemData;
const parentIds = this.parentIds(this.treeData);
const childrenIds = this[this.activeName + "Ids"].filter(
(id) => !parentIds.includes(id)
);
this.$refs.treeData.setCheckedKeys(childrenIds);
});
},
parentIds(treeDate) {
const arr = []
const loop = list => {
const arr = [];
const loop = (list) => {
for (let i = 0; i < list.length; i++) {
const e = list[i]
const children = e.children
const e = list[i];
const children = e.children;
if (children && children.length > 0) {
arr.push(e.id)
loop(children)
arr.push(e.id);
loop(children);
}
}
}
loop(treeDate)
return arr
};
loop(treeDate);
return arr;
},
//
selectTreeNodeClick() {
const parentIds = this.$refs.treeData.getHalfCheckedKeys()
const childrenIds = this.$refs.treeData.getCheckedKeys()
const newIds = [...parentIds, ...childrenIds]
const dataIds = [...new Set(newIds)]
this[this.activeName + 'Ids'] = dataIds
const parentIds = this.$refs.treeData.getHalfCheckedKeys();
const childrenIds = this.$refs.treeData.getCheckedKeys();
const newIds = [...parentIds, ...childrenIds];
const dataIds = [...new Set(newIds)];
this[this.activeName + "Ids"] = dataIds;
},
initData() {
this.activeName = 'module'
if (this.dataForm.userId) this.treeLoading = true
this.listLoading = true
getSelectorOrgList(this.dataForm.userId || '').then(res => {
this.treeList = res.data.orgAdminList || []
this.menuTreeData = res.data.modulePermissionList || []
this.systemData = res.data.systemPermissionList || []
this.moduleIds = res.data.moduleIds || []
this.systemIds = res.data.systemIds || []
this.handleClick()
this.listLoading = false
this.btnLoading = false
this.treeLoading = false
}).catch(() => {
this.listLoading = false
this.btnLoading = false
this.treeLoading = false
this.dataForm.userId = ''
this.key = +new Date()
})
this.activeName = "module";
if (this.dataForm.userId) this.treeLoading = true;
this.listLoading = true;
getSelectorOrgList(this.dataForm.userId || "")
.then((res) => {
this.treeList = res.data.orgAdminList || [];
this.menuTreeData = res.data.modulePermissionList || [];
this.systemData = res.data.systemPermissionList || [];
this.moduleIds = res.data.moduleIds || [];
this.systemIds = res.data.systemIds || [];
this.handleClick();
this.listLoading = false;
this.btnLoading = false;
this.treeLoading = false;
})
.catch(() => {
this.listLoading = false;
this.btnLoading = false;
this.treeLoading = false;
this.dataForm.userId = "";
this.key = +new Date();
});
},
onThisLayerSelectChange(val, row) {
if (val) return
if (row.thisLayerAdd === 1) this.$set(row, 'thisLayerAdd', 0)
if (row.thisLayerEdit === 1) this.$set(row, 'thisLayerEdit', 0)
if (row.thisLayerDelete === 1) this.$set(row, 'thisLayerDelete', 0)
if (val) return;
if (row.thisLayerAdd === 1) this.$set(row, "thisLayerAdd", 0);
if (row.thisLayerEdit === 1) this.$set(row, "thisLayerEdit", 0);
if (row.thisLayerDelete === 1) this.$set(row, "thisLayerDelete", 0);
},
onSubLayerSelectChange(val, row) {
if (val) return
if (row.subLayerAdd === 1) this.$set(row, 'subLayerAdd', 0)
if (row.subLayerEdit === 1) this.$set(row, 'subLayerEdit', 0)
if (row.subLayerDelete === 1) this.$set(row, 'subLayerDelete', 0)
if (val) return;
if (row.subLayerAdd === 1) this.$set(row, "subLayerAdd", 0);
if (row.subLayerEdit === 1) this.$set(row, "subLayerEdit", 0);
if (row.subLayerDelete === 1) this.$set(row, "subLayerDelete", 0);
},
init(id) {
this.treeList = []
this.treeData = []
this.dataForm.id = id || ""
this.dataForm.userId = id || ""
this.visible = true
this.formLoading = true
this.treeList = [];
this.treeData = [];
this.dataForm.id = id || "";
this.dataForm.userId = id || "";
this.visible = true;
this.formLoading = true;
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
this.dataForm.id = id || ""
this.dataForm.userId = id || ""
this.initData()
this.formLoading = false
})
this.formLoading = false
this.$refs["dataForm"].resetFields();
this.dataForm.id = id || "";
this.dataForm.userId = id || "";
this.initData();
this.formLoading = false;
});
this.formLoading = false;
},
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
this.$refs["dataForm"].validate((valid) => {
if (valid) {
let query = {
...this.dataForm,
orgAdminModel: this.treeList,
systemIds: this.systemIds,
moduleIds: this.moduleIds
}
this.btnLoading = true
saveGradeManage(query).then(res => {
this.$message({
message: res.msg,
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.btnLoading = false
this.$emit('refreshDataList')
}
moduleIds: this.moduleIds,
};
this.btnLoading = true;
saveGradeManage(query)
.then((res) => {
this.$message({
message: res.msg,
type: "success",
duration: 1500,
onClose: () => {
this.visible = false;
this.btnLoading = false;
this.$emit("refreshDataList");
},
});
})
}).catch(() => {
this.btnLoading = false
})
.catch(() => {
this.btnLoading = false;
});
}
})
}
}
}
});
},
},
};
</script>
<style lang="scss" scoped>
.JNPF-dialog-gradeManage {

Loading…
Cancel
Save