Ztree新增角色和编辑角色回显问题的解决

这篇文章主要介绍了Ztree新增角色和编辑角色回显问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

最近在项目中使用到了ztree,在回显时候费了点时间,特记录下来供下次参考。

1、新增角色使用ztree加载权限,由于权限不多,所以使用直接全部加载。

效果图:

具体涉及ztree代码:

jsp中导入:/js/ztree/zTreeStyle.css和js/ztree/jquery.ztree.all-3.5.js

页面加入

    js代码(此js中加入了layer弹框效果):

     

    权限中Ztree格式: 

     private String id; private String name; private String code; private String description; // private String page; //private String generatemenu; //private String zindex; private String pid; private boolean isParent; //ztree组件需要格式 public String getpId() { return this.pid==null?"0":this.pid; } ......    

    2、编辑角色回显Ztree

    js代码:

     

    java后台:

    controller:

     /** * 编辑角色,回显角色权限 * @param roleId * @return */ @RequestMapping(value = "queryFunByRoleId", method = RequestMethod.POST) public ResponseEntity>> queryFunByRoleId(String roleId) { try { if(StringUtils.isBlank(roleId)){ // 返回400 return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); } return ResponseEntity.ok(sysService.queryFunByRoleId(roleId)); } catch (Exception e) { e.printStackTrace(); } // 出错 500 return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null); } 

    service:

    由于List中的contains方法校验老是失败,也没纠结什么原因,自己写的根据id校验

     /** * zTree v3回显 * 初始化化权限树 * 拼接treeNode属性 */ @Transactional(readOnly=true) public List> queryFunByRoleId(String roleId) { //查询所有权限 List functions = queryAllAuthFunction(); //查询指定角色的权限 List functionsByRoleId = findFunctionByRoleId(roleId); //包装zTree List> list =new ArrayList>(); Mapmap=null; for(int i=0;i(); //Role role=functions.get(i); AuthFunction fun = functions.get(i); map.put("id", fun.getId()); map.put("pId", fun.getpId()); map.put("name", fun.getName()); map.put("isParent", fun.getIsParent()); //判断指定用户的角色是否在所有角色中包含,有则设置checked=true. if(functionsByRoleId != null && functionsByRoleId.size()>0 && ListIsContainsObj(functionsByRoleId,fun)){ map.put("checked",true); }else { map.put("checked",false); } list.add(map); } return list; } //校验全部权限中是否有某个权限,有返回true private boolean ListIsContainsObj(List functions, AuthFunction fun) { if(fun == null || functions == null || functions.size()<=0){ return false; } for (AuthFunction authFunction : functions) { if(fun.getId().equals(authFunction.getId())){ return true; } } return false; } 

    以上就是Ztree新增角色和编辑角色回显问题的解决的详细内容,更多请关注0133技术站其它相关文章!

    赞(0) 打赏
    未经允许不得转载:0133技术站首页 » JavaScript 教程