针对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 是根据当前节点获取下级节点的实现