针对Ztree的简单使用和后台交互的写法(一)中的树进行改进
1.增加节点的权限
由页面的当前用户,决定树的根节点 然后动态获取树的详细节点:
初始化函数为:
function init(){ //初始化的时候,先将当前用户发送给后台,获取该网评员的权限(所属部门,部门ID) $.ajax({ url:baseCtx+"/media/RootNodebyCuruser.action", data:{ WPY_ID:curuser},//curuser:当前用户的ID,WPY_ID为传入后台数据的字段名 type : 'post', async : false, dataType : "json", success: function(data){ var org_id=data[0].ORG_ID;//获取当前用户对应树的根节点ID var org_name=data[0].ORG_NAME;//当前用户对应的根节点name //成功后回调,向后台发送权限 并获取相应权限下的树节点数据 $.post(baseCtx+"/media/getOrgZTreebyCuruser.action",{id: org_id, name: org_name},function(data){
//其中id和name是传入后台的参数,值分别为根据当前用户获取的 部门ID:org_id和部门名称:org_name var result= $.parseJSON(data);//解析树节点 rw_tree=$.fn.zTree.init($("#tree1"),setting, result); }); }, });
2.页面向后台请求action的写法
/** * 有权限的Ztree树,通过当前用户的ID获取树的根节点信息(节点 的部门ID, 节点的部门名称)--------------------------------------- * @return */ @Action(value = "getOrgZTreebyCuruser") public String getOrgZTreebyCuruser(){ List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>(); //第一级数据(根节点,得加判断) Map<String, Object> orgMap = new HashMap<String, Object>(); orgMap.put("open", true); orgMap.put("id", id); orgMap.put("name", name); resultList.add(orgMap); //第二级数据(下级部门) List<Map<String, Object>> OrgresultList1 = new ArrayList<Map<String, Object>>(); OrgresultList1 = orgZTreeBPO.getOrgList(orgMap); //判断列表是否为空 if(null != OrgresultList1 && OrgresultList1.size() !=0) { //如果不为空,则他有下级部门,那么该节点属于父节点 orgMap.put("isParent", true); for (Map<String, Object> map1 : OrgresultList1) { resultList.add(map1); //获取第三级数据 List<Map<String, Object>> OrgresultList2 = new ArrayList<Map<String, Object>>(); OrgresultList2 = orgZTreeBPO.getOrgList(map1); if(null != OrgresultList2 && OrgresultList2.size() !=0) { for (Map<String, Object> map2 : OrgresultList2) { resultList.add(map2); //获取第四级数据 List<Map<String, Object>> OrgresultList3 = new ArrayList<Map<String, Object>>(); OrgresultList3 = orgZTreeBPO.getOrgList(map2); if(null != OrgresultList3 && OrgresultList3.size() !=0) { for (Map<String, Object> map3 : OrgresultList3) { resultList.add(map3); } } } } } } outputJson(resultList); System.out.println(resultList); return NONE; }
3.xml中访问数据库
增加当前用户ID获取所属部门和部门ID,name的语句
4.其他
在bpo,mapper中分别写入对应的方法接口和实现。
注:getOrgList 是根据当前节点获取下级节点的实现
转载于:https://www.cnblogs.com/Lxiaojiang/p/6054324.html
相关资源:各显卡算力对照表!