• .net core 树形列表(layui框架下)


        说到树形,我们立刻都会想到导航栏,但是这回我要说的是树形列表。由于项目用的是layui框架,所以就在layui框架下实现树形列表

      首先我们要引入layui中的treetable。

     下面就是详细代码了。

    <div class="layui-fluid">
    
        <div style="margin-top: 20px;">
            <div class="layui-btn-group">
                <button class="layui-btn " id="btn-expand"><i class="layui-icon layui-icon-down"></i> 全部展开</button>
                <button class="layui-btn " id="btn-fold"><i class="layui-icon layui-icon-left"></i> 全部折叠</button>
                <button class="layui-btn " id="btn-refresh"><i class="layui-icon layui-icon-loading"></i> 刷新表格</button>
            </div>
            <div class="layui-inline">
                <input class="layui-input" id="edt-search" value="" placeholder="输入关键字">
            </div>
    
            <button class="layui-btn" id="btn-search" type="button">搜索</button>
        </div>
    </div>
    <table id="table1" class="layui-table" lay-filter="table1"></table>
    <script type="text/html" id="toolbarDemo">
    
    </script>
    <script type="text/html" id="auth-state">
        <a class="layui-btn layui-btn-small  layui-btn-xs" lay-event="edit">修改</a>
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>
    <script>
        layui.config({
            base: '/xadmin/lay/modules/'
        }).extend({
            treetable: 'treetable-lay/treetable'
        }).use(['treetable'], function () {
            var treetable = layui.treetable;
    
        });
    
    </script>
    
    <script>
        layui.use(['treetable','layer'], function () {
            var treetable = layui.treetable;
            var layer = layui.layer;
            // 渲染表格
            treetable.render({
                treeColIndex: 0,          // treetable新增参数
                treeSpid: 1,             // treetable新增参数
                treeIdName: 'd_id',       // treetable新增参数
                treePidName: 'd_pid',     // treetable新增参数
                treeDefaultClose: true,   // treetable新增参数
                treeLinkage: true,        // treetable新增参数
                elem: '#table1',
                url: '/UpFile/tree.json',
                toolbar: '#toolbarDemo',
                cols: [[
                    //{ type: 'checkbox' },
                    { field: 'name', title: '任务事项' },
                    { field: 'PlanStart', title: '计划开始时间' },
                    { field: 'PlanEnd', title: '计划结束时间' },
                    { field: 'ActualTime', title: '实际完成时间' },
                    { field: 'FisStatus', title: '完成状态' },
                    { field: 'FisPeriod', title: '完成周期' },
                    { field: 'BuggetMoney', title: '月算费用' },
                    { field: 'FinalMoney', title: '决算费用' },
                    { field: 'RespDepartmentName', title: '责任部门' },
                    { field: 'ResUidName', title: '责任人' },
                    { templet: '#auth-state',  150, align: 'center', title: '操作' }
                ]]
            });
            table.on('tool(table1)', function (obj) {
                var data = obj.data;
                var layEvent = obj.event;
    
                if (layEvent === 'del') {
                
                     alert('你不可以删除' + data.name);
                } else if (layEvent === 'edit') {
                    location.href = "/Projectmanage/BuggetTemp/EditBugget?BuggetTempId=" + data.id;
                        }
                    });
            //全部展开
            $(document).on("click","#btn-expand",function(){
                treetable.expandAll('#table1');
            });
    
            //全部折叠
            $(document).on("click","#btn-fold",function(){
                treetable.foldAll('#table1');
            });
    
            //刷新表格
            $(document).on("click","#btn-refresh",function(){
                renderTable();
            });
            //搜索
            $(document).on("click","#btn-search",function(){
                var keyword = $('#edt-search').val();
                var searchCount = 0;
                $('#table1').next('.treeTable').find('.layui-table-body tbody tr td').each(function () {
                    $(this).css('background-color', 'transparent');
                    var text = $(this).text();
                    if (keyword != '' && text.indexOf(keyword) >= 0) {
                        $(this).css('background-color', 'rgba(250,230,160,0.5)');
                        if (searchCount == 0) {
                            treetable.expandAll('#table1');
                            $('html,body').stop(true);
                            $('html,body').animate({scrollTop: $(this).offset().top - 150}, 500);
                        }
                        searchCount++;
                    }
                });
                if (keyword == '') {
                    layer.msg("请输入搜索内容", {icon: 5});
                } else if (searchCount == 0) {
                    layer.msg("没有匹配结果", {icon: 5});
                }
            });
                });
            </script>

    下面是     url: '/UpFile/tree.json', 中的json格式

    {
        "code": 0,
        "msg": "ok",
        "data": [{
            "id": 1,
            "name": "四期项目管理",
            "PlanStart": "",
            "PlanEnd": "",
            "ActualTime": "",
            "FisStatus": 0,
            "FisPeriod": 0,
            "BuggetMoney": 0,
            "FinalMoney": 0,
            "RespDepartmentName": "",
            "ResUidName": "张三",
            "level": 1,
            "pid": 0
        }, {
            "id": 2,
            "name": "前期设计阶段",
            "PlanStart": "",
            "PlanEnd": "",
            "ActualTime": "",
            "FisStatus": 0,
            "FisPeriod": 0,
            "BuggetMoney": 0,
            "FinalMoney": 0,
            "RespDepartmentName": "",
            "ResUidName": "",
            "level": 2,
            "pid": 1
        }]
    }

    效果图:

    1,  列表展示

     2,全部展开

     

    3,搜索

        

     4,选择列

       

     4,打印

       

      5,导出

  • 相关阅读:
    【网络】IP子网划分详解
    【java】package
    【java】异常
    【java】内部类
    【java】多态
    【java】抽象类和接口区别
    【java】接口
    Java并发编程之volatile关键字解析
    String ,StringBuffer, StringBuilder的区别
    Synchronized关键字、Lock,并解释它们之间的区别
  • 原文地址:https://www.cnblogs.com/zpy1993-09/p/13095090.html
Copyright © 2020-2023  润新知