【7.1.1】【menu】设置菜单的半开统计

pull/22/head
fengshuonan 2021-08-08 23:46:58 +08:00
parent 379fa63118
commit ecb05b30e5
2 changed files with 25 additions and 1 deletions

View File

@ -72,6 +72,12 @@ public class ResourceTreeNode implements AbstractTreeNode<ResourceTreeNode> {
@ChineseDescription("能否选择") @ChineseDescription("能否选择")
private Boolean checked; private Boolean checked;
/**
*
*/
@ChineseDescription("是否是半开状态(一部分选中)")
private Boolean indeterminate;
/** /**
* *
*/ */

View File

@ -170,7 +170,10 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
item.setCode(id); item.setCode(id);
item.setParentCode(RuleConstants.TREE_ROOT_ID.toString()); item.setParentCode(RuleConstants.TREE_ROOT_ID.toString());
item.setNodeName(entry.getKey()); item.setNodeName(entry.getKey());
item.setChecked(false);
// 设置临时变量,统计半开状态
int checkedNumber = 0;
//创建二级节点 //创建二级节点
for (SysResource resource : entry.getValue()) { for (SysResource resource : entry.getValue()) {
ResourceTreeNode subItem = new ResourceTreeNode(); ResourceTreeNode subItem = new ResourceTreeNode();
@ -178,6 +181,8 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
if (!resourceCodes.contains(resource.getResourceCode())) { if (!resourceCodes.contains(resource.getResourceCode())) {
subItem.setChecked(false); subItem.setChecked(false);
} else { } else {
checkedNumber++;
// 让父类也选择 // 让父类也选择
item.setChecked(true); item.setChecked(true);
subItem.setChecked(true); subItem.setChecked(true);
@ -188,6 +193,19 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
subItem.setParentCode(id); subItem.setParentCode(id);
res.add(subItem); res.add(subItem);
} }
// 统计选中的数量
if (checkedNumber == entry.getValue().size()) {
item.setChecked(true);
item.setIndeterminate(false);
} else if (checkedNumber == 0) {
item.setChecked(false);
item.setIndeterminate(false);
} else {
item.setChecked(false);
item.setIndeterminate(true);
}
res.add(item); res.add(item);
} }