目录

layui-支持搜索的树形组件eleTree实现

目录

layui 支持搜索的树形组件eleTree实现

没有废话直接上效果图,如果符合需求就往下看吧。

https://i-blog.csdnimg.cn/blog_migrate/a5e8077991f4d099217dd674354c902c.png

H5代码

  <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm"     id="getChecked" >勾选指定节点</button>
  </div>

   <input type="text" placeholder="请输入关键字进行搜索" autocomplete="off" class="layui-input eleTree-search" >
   <div class="eleTree ele6" lay-filter="data6" id="treeInfo"  ></div>

js代码

<script>

    layui.config({
        base: "/admin/lib/layui/lay/mymodules/"
    }).use(['eleTree' ], function(){
        var $ = layui.jquery;
        var eleTree = layui.eleTree;

        var data=[
            {
                "id": 1,
                "label": "dababase1",
                spread: false,
                "children": [
                    {
                        "id": 2,
                        "label": "table1",
                        //"disabled": true,
                        "children": [
                            {
                                "id": 3,
                                "label": "id"
                            },
                            {
                                "id": 4,
                                "label": "name"
                                //"checked": true
                            }
                        ]
                    },
                    {
                        "id": 22,
                        "label": "table2",
                        "children": [
                            {
                                "id": 23,
                                "label": "sex"
                            },
                            {
                                "id": 24,
                                "label": "age",
                                "checked": true
                            }
                        ]
                    }
                ]
            },
            {
                "id": 10,
                "label": "dababase2",
                "children": [
                    {
                        "id": 12,
                        "label": "table1",
                        "children": [
                            {
                                "id": 13,
                                "label": "status"
                            },
                            {
                                "id": 14,
                                "label": "id"
                            }
                        ]
                    }
                ]
            }
        ];

        $(".eleTree-search").keydown(function(){
            el6.search($(this).val());
        });
        $(".eleTree-search").keyup(function(){
            el6.search($(this).val());
        });

        var el6=eleTree.render({
            elem: '#treeInfo',
            data: data,
            id: 'demoId1',
            showCheckbox: true,
            defaultExpandAll: true,
            defaultCheckedKeys: [23,24],
            searchNodeMethod: function(value,data) {
                if (!value) return true;
                return data.label.indexOf(value) !== -1;
            }
        });

        //获取指定的选中信息
        $("#getChecked").click(function(){
            var checkedData = el6.getChecked(false,true); //获取选中节点的数据

            layer.alert(JSON.stringify(checkedData), {shade:0});
            console.log(checkedData);
        });


    });


</script>

引入文件

 <link rel="stylesheet" href="/admin/lib/layui/css/eleTree.css">
<script src="/admin/lib/layui/layui.js" charset="utf-8"></script>

layui的样式部分结构图

https://i-blog.csdnimg.cn/blog_migrate/2d9fd55d94c032b253b71a699bf2aac0.png