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

  • 相关阅读:
    Asp.net读取AD域信息的方法(一)
    登录时记住用户名和密码及cookie案例应用
    Web项目,要求:保存用户名和密码在Cookie中,下次登录不再重新输入
    ASP.net 学习路线(详细)
    vs调试技巧(二)
    vs断点调试技巧(一)
    flexPaper +swftools实现文档在线阅读
    OC 类 的声明
    OC extern和函数
    OC extern和变量
  • 原文地址:https://www.cnblogs.com/Lxiaojiang/p/6054324.html
Copyright © 2020-2023  润新知