首页 > 其他分享 >Layui+dtree实现左边分类列表,右边数据列表

Layui+dtree实现左边分类列表,右边数据列表

时间:2023-05-11 09:56:02浏览次数:33  
标签:function dtree layer title Layui 列表 field var data

效果如下

99a95b9ac593dff728e1e49ef0fd403c.png

代码实现

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>帖子类别</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="${request.contextPath}/static/lib/layui-v2.6.3/css/layui.css" media="all">
    <link rel="stylesheet" href="${request.contextPath}/static/css/public.css" media="all">
    <link rel="stylesheet" href="${request.contextPath}/static/lib/layui_ext/dtree/dtree.css">
    <link rel="stylesheet" href="${request.contextPath}/static/lib/layui_ext/dtree/font/dtreefont.css">
</head>
<body>
<div class="layui-fluid">
    <div class="layui-row layui-col-space15">
        <!-- 左树 -->
        <div class="layui-col-sm12 layui-col-md4 layui-col-lg2">
            <div class="layui-card">
                <div class="layui-card-body mini-bar" id="ltTree">

                </div>
            </div>
        </div>
        <!-- 右表 -->
        <div class="layui-col-sm12 layui-col-md8 layui-col-lg10">
            <div class="layuimini-container">
                <div class="layuimini-main">
                    <fieldset class="table-search-fieldset">
                        <legend>搜索信息</legend>
                        <div style="margin: 10px 10px 10px 10px">
                            <form class="layui-form layui-form-pane" action="">
                                <div class="layui-form-item">
                                    <div class="layui-inline">
                                        <label class="layui-form-label">姓名</label>
                                        <div class="layui-input-inline">
                                            <input type="text" name="keyword" autocomplete="off" class="layui-input">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">性别</label>
                                        <div class="layui-input-inline">
                                            <select name="gender"  lay-filter="aihao">
                                                <option value="" selected=""></option>
                                                <option value="0">男</option>
                                                <option value="1">女</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">是否驱虫</label>
                                        <div class="layui-input-inline">
                                            <select name="expellingParasite"  lay-filter="aihao">
                                                <option value="" selected=""></option>
                                                <option value="0">是</option>
                                                <option value="1">否</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">是否绝育</label>
                                        <div class="layui-input-inline">
                                            <select name="sterilization"  lay-filter="aihao">
                                                <option value="" selected=""></option>
                                                <option value="0">是</option>
                                                <option value="1">否</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">是否接种疫苗</label>
                                        <div class="layui-input-inline">
                                            <select name="vaccination"  lay-filter="aihao">
                                                <option value="" selected=""></option>
                                                <option value="0">是</option>
                                                <option value="1">否</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">数据来源</label>
                                        <div class="layui-input-inline">
                                            <select name="source"  lay-filter="aihao">
                                                <option value="" selected=""></option>
                                                <option value="0">系统录入</option>
                                                <option value="1">用户发布</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">审核状态</label>
                                        <div class="layui-input-inline">
                                            <select name="status"  lay-filter="aihao">
                                                <option value="" selected=""></option>
                                                <option value="0">未审核</option>
                                                <option value="1">已审核</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <button type="submit" class="layui-btn layui-btn-primary"  lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button>
                                    </div>
                                </div>
                            </form>
                        </div>
                    </fieldset>
                    <script type="text/html" id="toolbarDemo">
                        <div class="layui-btn-container">
                            <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加 </button>
                        </div>
                    </script>
                    <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
                    <script type="text/html" id="currentTableBar">
                        <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
                        <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
                    </script>
                </div>
            </div>
        </div>

    </div>
</div>


<script src="${request.contextPath}/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
    layui.extend({
        dtree: '${request.contextPath}/static/lib/layui_ext/dtree/dtree'   // {/}的意思即代表采用自有路径,即不跟随 base 路径
    }).use(['layer', 'form', 'table', 'util', 'dtree'], function () {
        var $ = layui.jquery;
        var layer = layui.layer;
        var form = layui.form;
        var table = layui.table;
        var util = layui.util;
        var dtree = layui.dtree;
        var s_categoryId;
        function tableRender(categoryId){
            s_categoryId = categoryId;
            table.render({
                elem: '#currentTableId',
                url: '${request.contextPath}/petInfo/listData',
                toolbar: '#toolbarDemo',
                defaultToolbar: ['filter', 'exports', 'print', {
                    title: '提示',
                    layEvent: 'LAYTABLE_TIPS',
                    icon: 'layui-icon-tips'
                }],
                cols: [[
                    {field: 'categoryName', width: 126, title: '宠物分类'},
                    {field: 'breed', width: 126, title: '宠物品种'},
                    {field: 'name', width: 126, title: '宠物姓名'},
                    {field: 'gender', width: 126, title: '宠物性别',templet: function (d){
                            if (d.gender === 0){
                                return "<span>男</span>";
                            }else {
                                return "<span>女</span>";
                            }
                        }},
                    {field: 'age', width: 126, title: '宠物年龄'},
                    {field: 'weight', width: 126, title: '宠物体重'},
                    {field: 'furColor', width: 126, title: '宠物毛色'},
                    {field: 'expellingParasite', width: 126, title: '是否驱虫',templet: function (d){
                            if (d.expellingParasite === 0){
                                return "<span>是</span>";
                            }else {
                                return "<span>否</span>";
                            }
                        }},
                    {field: 'sterilization', width: 126, title: '是否绝育',templet: function (d){
                            if (d.sterilization === 0){
                                return "<span>是</span>";
                            }else {
                                return "<span>否</span>";
                            }
                        }},
                    {field: 'vaccination', width: 126, title: '是否接种疫苗',templet: function (d){
                            if (d.vaccination === 0){
                                return "<span>是</span>";
                            }else {
                                return "<span>否</span>";
                            }
                        }},
                    {field: 'source', width: 126, title: '数据来源',templet: function (d){
                            if (d.expellingParasite === 0){
                                return "<span>系统录入</span>";
                            }else {
                                return "<span>用户发布</span>";
                            }
                        }},
                    {title: '操作', width: 126, toolbar: '#currentTableBar', align: "center"}
                ]],
                limits: [10, 15, 20, 25, 50, 100],
                limit: 15,
                page: true,
                skin: 'row,line',
                where: {categoryId:categoryId}
            });
        }

        // 监听搜索操作
        form.on('submit(data-search-btn)', function (data) {
            //执行搜索重载
            table.reload('currentTableId', {
                page: {
                    curr: 1
                }
                , where: {
                    keyword: data.field.keyword,
                    categoryId:s_categoryId,
                    gender:data.field.gender,
                    expellingParasite:data.field.expellingParasite,
                    sterilization:data.field.sterilization,
                    vaccination:data.field.vaccination,
                    source:data.field.source,
                    status:data.field.status
                }
            }, 'data');
            return false;
        });
        /**
         * toolbar监听事件
         */
        table.on('toolbar(currentTableFilter)', function (obj) {
            if (obj.event === 'add') {  // 监听添加操作
                var index = layer.open({
                    title: '添加宠物',
                    type: 2,
                    shade: 0.2,
                    maxmin:false,
                    shadeClose: true,
                    area: ['800px', '100%'],
                    content: '${request.contextPath}/petInfo/add',
                    //通过end回调
                    end: function(){
                        table.reload('currentTableId');
                    }
                });
                $(window).on("resize", function () {
                    layer.full(index);
                });
            } else if (obj.event === 'delete') {  // 监听删除操作
                var checkStatus = table.checkStatus('currentTableId')
                    , data = checkStatus.data;
                layer.alert(JSON.stringify(data));
            }
        });
        table.on('tool(currentTableFilter)', function (obj) {
            var data = obj.data;
            if (obj.event === 'edit') {

                var index = layer.open({
                    title: '编辑宠物',
                    type: 2,
                    shade: 0.2,
                    maxmin:false,
                    shadeClose: true,
                    area: ['800px', '100%'],
                    content: '${request.contextPath}/petInfo/edit?id='+data.id,
                    //通过end回调
                    end: function(){
                        table.reload('currentTableId');
                    }
                });
                $(window).on("resize", function () {
                    layer.full(index);
                });
                return false;
            } else if (obj.event === 'delete') {
                layer.confirm('真的删除么', function (index) {
                    layer.close(index);
                    $.ajax({
                        type : "get",
                        url : "${request.contextPath}/petInfo/delete?id="+data.id,
                        async : false,
                        success : function(result){
                            if (result.success){
                                var d_index = layer.alert("删除成功", {
                                    title: '提示'
                                }, function () {
                                    // 关闭弹出层
                                    layer.close(d_index);
                                    table.reload('currentTableId');
                                });
                            }else{
                                layer.alert(result.msg,{icon: 2});
                            }
                        }
                    });
                });
            }
        });
        // 初始化树
        var DemoTree = dtree.render({
            elem: "#ltTree",
            method: 'GET',
            url: "${request.contextPath}/petCategory/listAll", // 使用url加载(可与data加载同时存在)
            toolbar: true, //更多工具栏用法详见工具栏
            toolbarWay:"fixed",
            toolbarShow: []
            , done: function (data, url, first) {
                //默认选中第一个
                var dTreeid = $("cite").attr("data-id");
                dtree.click(DemoTree, dTreeid);
                tableRender(dTreeid);
            },
            toolbarFun:{
                loadToolbarBefore: function(buttons, param, $div){
                    console.log(buttons);
                    console.log(param);
                    console.log($div);
                    buttons.addToolbar = "";  // 取消新增功能
                    buttons.editToolbar = ""; //取消编辑功能
                    buttons.delToolbar = "";
                    return buttons; // 将按钮对象返回
                }
            },
            toolbarExt:[
                {
                    toolbarId: "del",
                    icon: "dtree-icon-roundclose",
                    title: "删除",
                    handler: function (node, $div) {
                        layer.confirm('真的删除么', function (index) {
                            layer.close(index);
                            layer.msg(JSON.stringify(node));
                        });
                    }
                }
            ]
        });
        // 绑定节点点击
        dtree.on("node('ltTree')" ,function(obj){
            table.reload("currentTableId", {
                //点击加载右边表格
                where: {categoryId:obj.param.nodeId}
            })
        });
    });
</script>
</body>
</html>

标签:function,dtree,layer,title,Layui,列表,field,var,data
From: https://www.cnblogs.com/fxsen/p/17390136.html

相关文章

  • Layui 2.8.0 正式发布,官网全新文档站朴实归来
    前言两年前Layui官网宣布了下线声明,说实话当时内心确实感慨万千毕竟这个免费为我们后端程序员提供的一个前端快熟开发框架的官网就这样下线了确实十分的惋惜,但是庆幸的是官网的下线,只是单纯一个网站自身生命周期的结束,它并不意味着Layui这样一个开源项目的停更,Layui仍然......
  • python基础学习-列表
    """数据容器""""""列表:list#字面量[元素1,元素2,元素3]#定义变量变量名称=[元素1,元素2,元素3]#定义空列表变量名称=[]变量名称=list()#列表可以存储多个数据,且可以为不同的数据类型,支持嵌套my_list=[1,[2,3],4]下标索引,从0开始my_list=["it","my",34,......
  • C++ 类和对象: 初始化列表
    1.回顾构造函数构造函数是6个默认的成员函数之一,完成对象初始化的工作而在构造函数中,有两种初始化对象的方式,初始化列表和函数体内赋值首先来回顾一下用函数体内赋值方法进行初始化#include<iostream>usingnamespacestd;classDate{public: Date(intyear=1,......
  • ibatis查询返回java.util.HashMap结果列表
    DAO的实现类中的代码:Java代码returnMapgetItemNames(){ returngetSqlMapClientTemplate().queryForMap("getItemNameMap",null,"key","value");}SqlMap配置文件中的代码:Java代码<resultMapid=map-item-name"class=......
  • 解决在线用户列表和重复登录
    解决在线用户列表和重复登录解决两个问题:1.实现在线用户列表2.当用户在异地登录后,使前一次登录自动退出实现方法:用户登录时,会创建一个session,用于保存用户信息。将所有用户登录时的session值与ID存入ServletContext中,显示在线列表的时候,就从ServletContext中取得......
  • 聚合报告列表项介绍
    聚合报告列表项介绍1、Label:请求的名称,就是脚本中Sampler的名称。2、#Samples(样本):总共发给服务器的请求数量,如果模拟10个用户,每个用户迭代10次,那么总的请求数为:10*10=100次。3、Average(平均值):默认情况下是单个Request的平均响应时间,当使用了TransactionController(事务控制器)......
  • React笔记-渲染列表Key(五)
    React学习笔记-渲染列表Key(五)渲染列表需要添加key属性importReactfrom"react"exportdefaultclassLearnKeyextendsReact.Component{state={infos:[{name:'Bob',age:18},{name:'kitty',age:20},{name:......
  • 10. 列表
    列表是可变的1.1什么是列表一个排列整齐的队伍,Python采用顺序表实现列表内的个体称作元素,由若干元素组成列表元素可以是任意对象(数字、字符串、对象、列表等)列表内元素有顺序,可以使用索引线性的数据结构使用[]表示列表是可变的1.2列表的构造ls1=[]ls2=li......
  • HTML 列表
    5.1无序列表ul<ul><li>无序列表</li><li>无序列表</li></ul>-ul里只能放li标签-默认黑色实心圆-type属性:-disc-黑色实心圆,-circle-黑色空心圆,-square-黑色实心正方形,-none-取消样式5.2有序列表ol<ol><li>有序列表</li><......
  • python 小技巧, 列表生成式比 filter(lambda x:x>=0,data) 快, iteritems()方法,
    题目经timeit测试列表生成式比filter(lambdax:x>=0,data)快python2的dict的iteritems()方法,pyhton3可以看看有没有......