main
tamguo 7 years ago
parent 22ffc928af
commit 11ecb7e569

@ -18,6 +18,10 @@ import com.tamguo.modules.sys.model.enums.SysMenuStatusEnum;
@TableName(value="sys_menu") @TableName(value="sys_menu")
public class SysMenuEntity implements Serializable { public class SysMenuEntity implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public static final String ROOT_MENU_CODE = "0";
public static final String TREE_CODE_MENU_SEPARATE = ",";
public static final String TREE_NAME_MENU_SEPARATE = "/";
@TableId @TableId
private String menuCode; private String menuCode;

@ -89,10 +89,12 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity
sysMenuMapper.insert(menu); sysMenuMapper.insert(menu);
} }
@SuppressWarnings("unchecked")
@Transactional(readOnly=false) @Transactional(readOnly=false)
@Override @Override
public void update(SysMenuEntity menu) { public void update(SysMenuEntity menu) {
SysMenuEntity entity = sysMenuMapper.selectById(menu.getMenuCode()); SysMenuEntity entity = sysMenuMapper.selectById(menu.getMenuCode());
String oldParentCode = entity.getParentCode();
entity.setUpdateBy(ShiroUtils.getUserCode()); entity.setUpdateBy(ShiroUtils.getUserCode());
entity.setUpdateDate(new Date()); entity.setUpdateDate(new Date());
@ -107,7 +109,51 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity
entity.setPermission(menu.getPermission()); entity.setPermission(menu.getPermission());
entity.setRemarks(menu.getRemarks()); entity.setRemarks(menu.getRemarks());
entity.setWeight(menu.getWeight()); entity.setWeight(menu.getWeight());
entity.setParentCode(menu.getParentCode());
this.handleTreeData(entity);
sysMenuMapper.updateById(entity); sysMenuMapper.updateById(entity);
// 更新旧的节点
Integer count = sysMenuMapper.selectCount(Condition.create().eq("parent_code", oldParentCode).ne("menu_code", oldParentCode));
if(count == 0) {
SysMenuEntity oldParentMenu = sysMenuMapper.selectById(oldParentCode);
oldParentMenu.setTreeLeaf(true);
sysMenuMapper.updateById(oldParentMenu);
}
}
// 处理树形结构
@SuppressWarnings("unchecked")
private SysMenuEntity handleTreeData(SysMenuEntity menu) {
if(StringUtils.isEmpty(menu.getParentCode())) {
menu.setParentCode(SysMenuEntity.ROOT_MENU_CODE);
menu.setParentCodes(SysMenuEntity.ROOT_MENU_CODE + SysMenuEntity.TREE_CODE_MENU_SEPARATE);
menu.setTreeLeaf(true);
menu.setTreeLevel(new BigDecimal(0));
menu.setTreeNames(menu.getMenuName());
menu.setTreeSorts(menu.getTreeSort().multiply(new BigDecimal(10000000)).toString() + SysMenuEntity.TREE_CODE_MENU_SEPARATE);
} else {
SysMenuEntity parentMenu = sysMenuMapper.selectById(menu.getParentCode());
menu.setParentCodes(parentMenu.getParentCodes() + parentMenu.getMenuCode() + SysMenuEntity.TREE_CODE_MENU_SEPARATE);
menu.setTreeLeaf(true);
menu.setTreeLevel(parentMenu.getTreeLevel().add(new BigDecimal(1)));
menu.setTreeNames(parentMenu.getTreeNames() + SysMenuEntity.TREE_NAME_MENU_SEPARATE + parentMenu.getMenuName());
menu.setTreeSorts(parentMenu.getTreeSorts() + menu.getTreeSort().multiply(new BigDecimal(10000000)).toString() + SysMenuEntity.TREE_CODE_MENU_SEPARATE);
if(parentMenu.getTreeLeaf()) {
parentMenu.setTreeLeaf(false);
sysMenuMapper.updateById(parentMenu);
}
}
Integer count = sysMenuMapper.selectCount(Condition.create().eq("parent_code", menu.getMenuCode()));
if(count > 0) {
menu.setTreeLeaf(false);
}else {
menu.setTreeLeaf(true);
}
return menu;
} }
} }

@ -8,6 +8,7 @@ import org.springframework.web.servlet.ModelAndView;
public class CommonController { public class CommonController {
private final String TREE_SELECT_PAGE = "modules/sys/common/treeselect"; private final String TREE_SELECT_PAGE = "modules/sys/common/treeselect";
private final String TREE_ICON_PAGE = "modules/sys/common/iconselect";
private final String SYS_DESKTOP_PAGE = "modules/sys/common/desktop"; private final String SYS_DESKTOP_PAGE = "modules/sys/common/desktop";
@RequestMapping(path="sys/treeselect") @RequestMapping(path="sys/treeselect")
@ -16,6 +17,12 @@ public class CommonController {
model.setViewName(TREE_SELECT_PAGE); model.setViewName(TREE_SELECT_PAGE);
return model; return model;
} }
@RequestMapping(path="sys/iconselect")
public ModelAndView iconselect(ModelAndView model) {
model.setViewName(TREE_ICON_PAGE);
return model;
}
@RequestMapping(path="sys/desktop") @RequestMapping(path="sys/desktop")
public ModelAndView index(ModelAndView model) { public ModelAndView index(ModelAndView model) {

@ -224,7 +224,7 @@ $("#menuIconButton").click(function(){
title: '图标选择', title: '图标选择',
area: [(js.layer.$(js.layer.window).width() - 100) + 'px', area: [(js.layer.$(js.layer.window).width() - 100) + 'px',
(js.layer.$(js.layer.window).height() - 100) + 'px'], (js.layer.$(js.layer.window).height() - 100) + 'px'],
content: '/js/tags/iconselect?value='+$("#menuIcon").val(), content: ctx + 'sys/iconselect?value='+$("#menuIcon").val(),
success: function(layero, index){ success: function(layero, index){
var info = '<font color="red" class="pull-left mt10">提示:双击选择图标。</font>'; var info = '<font color="red" class="pull-left mt10">提示:双击选择图标。</font>';
layero.find('.layui-layer-btn').append(info); layero.find('.layui-layer-btn').append(info);

@ -224,7 +224,7 @@ $("#menuIconButton").click(function(){
title: '图标选择', title: '图标选择',
area: [(js.layer.$(js.layer.window).width() - 100) + 'px', area: [(js.layer.$(js.layer.window).width() - 100) + 'px',
(js.layer.$(js.layer.window).height() - 100) + 'px'], (js.layer.$(js.layer.window).height() - 100) + 'px'],
content: '/js/tags/iconselect?value='+$("#menuIcon").val(), content: 'sys/iconselect?value='+$("#menuIcon").val(),
success: function(layero, index){ success: function(layero, index){
var info = '<font color="red" class="pull-left mt10">提示:双击选择图标。</font>'; var info = '<font color="red" class="pull-left mt10">提示:双击选择图标。</font>';
layero.find('.layui-layer-btn').append(info); layero.find('.layui-layer-btn').append(info);

Loading…
Cancel
Save