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

网友投稿 268 2023-07-01


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

map=new HashMap<>();

//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;

}

map=new HashMap<>();

//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;

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Mybatis中注解@MapKey的使用详解
下一篇:Java设计模式之策略模式详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~