ztree 简单使用demo

@(JAVA开发)

ztree 简单使用demo

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

官网链接

首先需要后台获取需要的数据,注意设置map 里面的关键字等。返回的结果是一个map 的list

 /**
     * 机构树(只查已启用)
     * 
     * @param request
     * @return
     */
    @RequestMapping(value = "/selectDeptInfoConditionByUser", method = RequestMethod.POST)
    @ResponseBody
    public List<Map<String, Object>> selectDeptInfoConditionByUser(Long orgId) {
        log.debug("数据orgId=" + orgId);
        try {
            OrganizationListVo systemOrganizationListVo = systemOrganizationService.selectOrgTreeByUser(orgId);
            List<OrganizationVo> systemOrganizationVos = systemOrganizationListVo.getSystemOrganizationVos();
            List<Map<String, Object>> treeMapList = new ArrayList<Map<String, Object>>();
            for (OrganizationVo organizationVo : systemOrganizationVos) {
                Map<String, Object> treeMap = new HashMap<String, Object>();
                treeMap.put("id", organizationVo.getOrgId());
                treeMap.put("pId", organizationVo.getParentId());
                treeMap.put("name",
                        /* "("+organizationVo.getExtOrgCode()+")"+ */organizationVo.getOrgName());
                treeMap.put("organization", organizationVo);
                treeMapList.add(treeMap);
            }
            return treeMapList;
        } catch (Exception e) {
            throw new PurchaseException(OperCodeDefine.OPER_DB_FAILED, OperCodeDefine.OPER_DB_FAILED_NAME);
        }
    }

这是需要展示 ztree 的地方

<div class="tree-wrapper">
        <div id="publish-region-tree" class="ztree" data-orgid="${manageAcctInfo.orgId }">
        </div>
/div>

接下来就是最主要的js代码了

 //获取机构树
    UserManagement.prototype.initOrgTree = function (loginId){
        //初始化selectpicker插件
        $('.selectpicker').selectpicker();
        var orgId = $publishRegionTree.data('orgid');
        $.ajax({
            url: organizationLinkUrl,
            type: 'POST',
            dataType: 'json',
            data: {loginId:loginId},
            async: true
        }).done(function (data) {
            if (data !== null) {
                //展示机构树
                treeObj = $.fn.zTree.init($('#publish-region-tree'), setting, data);
                var nodes = treeObj.getNodes();
                var node = treeObj.getNodeByParam("id", nodes[0].id, null);
                /*var node = treeObj.getNodeByParam("id", orgId, null);*/
                treeObj.expandNode(node, true, false, true);
                treeObj.selectNode(node);

                //获取所有机构树
                var nodeListArray = new Array();
                for(var i=0;i<data.length;i++){
                    nodeListArray.push(data[i].name);
                }

                $("#treeSearch").autocomplete({
                    showNoSuggestionNotice:true,
                    noSuggestionNotice:'搜索无结果',
                    triggerSelectOnValidInput: false,
                    lookup:nodeListArray,
                    minChars: 1,
                    onSelect: function(result) {
                         var node = treeObj.getNodeByParam("name", result.value, null);

                         treeObj.selectNode(node);
                         treeObj.expandNode(node, true, false, true);
                         UserManagement.prototype.loadDataTable(node.orgId);
                     }
                });
            } else {
                $.msg('fail', '操作失败!');
            }
        });
    }

ztree 的使用大概如此,上面还有一个根据关键字进行的模糊匹配。autocomplete这个插件的使用会再写一片博文介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值