zoukankan      html  css  js  c++  java
  • easyUI 实现异步tree

    html:

      <ul id="relInfoTree" class="easyui-tree"></ul>

    js:

    $(document).ready(function() {
      loadRelTree();
    });

    function loadRelTree(){
      $('#relInfoTree').tree({
        // checkbox: true,
        animate:true,
        lines:true,
        url: '/CrocodileSecret/system/cisweb/loadRelTree?id=0',//这是第一次加载树的url 加载根节点
        loadFilter:function(data){
          return data.treeJson;
        },
        onBeforeExpand:function(node){
          $("#relInfoTree").tree('options').url='/CrocodileSecret/system/cisweb/loadRelTree?id='+node.id;//这是点击父节点的时候发送请求去加载子节点
        }
      });
    }

    java:

    -EasyuiTreeNode.java

    private Integer id;//: 唯一标示;
    private String text;//: 显示的文本;
    private List<EasyuiTreeNode> children;//:子节点;
    private String state;//:closed或open,表示节点是展开还是折叠;
    private String iconCls="icon-blank";//空白图标,可选

    getter...setter...

    -Controller

    @RequestMapping(value = "/loadRelTree", method = RequestMethod.POST)
    @ResponseBody
    public JSONObject loadRelTree(Integer id,@RequestParam(value = "orgid", required = false) Integer orgid,HttpServletRequest request, HttpServletResponse response) {
    JSONObject json = new JSONObject();
      json = cisWebApp.loadRelTree(id);
    return json;
    }

    -service

    public JSONObject loadRelTree(Integer id, Integer orgId) {
      JSONObject object = new JSONObject();
      List<EasyuiTreeNode> list=new ArrayList<EasyuiTreeNode>();
      if(id==null || id==0) {
        EasyuiTreeNode node=new EasyuiTreeNode();
        CisOrg cisOrg=cisComp.getOrgById(orgId);
        node.setId(cisOrg.getOwnerUserId());
        node.setText(cisOrg.getOrgName());
        node.setState("open");
        node.setChildren(cisComp.getSublist(cisOrg.getOwnerUserId()));//start 初始显示一级
        if(node.getChildren().size()>0) {
        node.getChildren().stream().forEach(subNode->{
          subNode.setState(crmComponent.selIsClose(subNode.getId())>0 ? "closed":"open");
        });//end 如果只显示根节点,不用这段
        }
      list.add(node);
      }else {//异步加载
        list=cisComp.getSublist(id);
        if(list.size()>0) {
        list.stream().forEach(node->{
          node.setState(crmComponent.selIsClose(node.getId())>0 ? "closed":"open");
        });
      }
    }
    object.put("treeJson", list);
    object.put("status", "succeed");

    return object;
    }

    -xml

    <!-- 查询下级 -->

    <select id="getSublist" parameterType="java.lang.Integer" resultType="***.util.EasyuiTreeNode">
    SELECT
    u.id,
    u.nickname text
    FROM
    crm_user r
    INNER JOIN cis_user u ON u.id = r.user_id
    WHERE
    parent_user_id = #{userId}
    AND u.deleted=0
    AND r.deleted=0
    AND r.weight=1
    </select>

    <!-- 查询是否有下级 -->
    <select id="selIsClose" parameterType="java.lang.Integer" resultType="java.lang.Integer">
    SELECT
    COUNT(*)
    FROM
    crm_user
    WHERE
    parent_user_id = #{userId}
    AND deleted = 0
    AND weight=1

    </select>

  • 相关阅读:
    AngularJS概念概述和第一个使用例子
    什么是AngularJS
    AngularJS系列-翻译官网
    Unity3d 鼠标滚轮缩放效果
    Unity3d 正方体添加材质
    NGUI 由Empty创建Button
    NGUI Anchor三种type的不同
    【cocos2d-x 手游研发小技巧(5)获取网络图片缓存并展示】
    【cocos2d-x 手游研发小技巧(4)与Android混编实现换“头像图片”】
    【cocos2d-x 手游研发----博彩大转盘】
  • 原文地址:https://www.cnblogs.com/zou-rong/p/10151799.html
Copyright © 2011-2022 走看看