Ztree的简单使用和后台交互的写法(二)

针对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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值