首页 > 其他 > 详细

dtree的简单实现

时间:2020-03-18 10:13:17      阅读:83      评论:0      收藏:0      [点我收藏+]

首先 layui 的模型dtree

var data={
                status:{code:200,message:"操作成功"},
                data: [
                {id:"001",title: "湖南省",parentId: "0"},
                {id:"002",title: "湖北省",parentId: "0"},
                {id:"003",title: "广东省",parentId: "0"},
                {id:"004",title: "浙江省",parentId: "0"},
                {id:"005",title: "福建省",parentId: "0"},
                {id:"001001",title: "长沙市",parentId: "001"},
                {id:"001002",title: "株洲市",parentId: "001"},
                {id:"001003",title: "湘潭市",parentId: "001"},
                {id:"001004",title: "衡阳市",parentId: "001"},
                {id:"001005",title: "郴州市",parentId: "001"},
                {id:"002001",title: "武汉市",parentId: "002"},
                {id:"003001",title: "广州市",parentId: "003"},
                {id:"004001",title: "杭州市",parentId: "004"}
            ]
        }

 效果图

技术分享图片

数据库字段名尽量与模板一致,不一致可以使用别名

技术分享图片

controller层

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author ZHS
 * @since 2020-03-17
 */
@RestController
@RequestMapping("/dept")
public class DeptController {
    @Autowired
    private DeptService deptService;


    /**
     * 加载部门管理左边的部门树的json
     */
    @RequestMapping("loadDeptManageLeftTreeJson")
    public DataGridView loadDeptManageLeftTreeJson(DeptVo deptVo){
        List<Dept> list = deptService.list();
        List<TreeNode> treeNodes = new ArrayList<>();
        for (Dept dept : list) {
            boolean spread = dept.getOpen() == 1 ? true : false;
            treeNodes.add(new TreeNode(dept.getId(),dept.getPid(),dept.getTitle(),spread));
        }
        return new DataGridView(treeNodes);
    }
}

 前端代码

<!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 http-equiv="Access-Control-Allow-Origin" content="*">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="format-detection" content="telephone=no">
    <link rel="icon" href="/favicon.ico">
    <link rel="stylesheet" href="/resources/layui/css/layui.css" media="all" />
    <link rel="stylesheet" href="/resources/css/public.css" media="all" />
    <link rel="stylesheet" href="/resources/layui_ext/dtree/dtree.css" media="all" />
    <link rel="stylesheet" href="/resources/layui_ext/dtree/font/dtreefont.css" media="all" />
</head>
<body>
<!-- 存放树的容器 -->
<ul id="deptTree" class="dtree" data-id="0"></ul>

<script type="text/javascript" src="/resources/layui/layui.js"></script>
<script type="text/javascript">
    layui.extend({
        dtree: ‘/resources/layui_ext/dtree/dtree‘   // {/}的意思即代表采用自有路径,即不跟随 base 路径
    }).use([‘dtree‘,‘layer‘,‘jquery‘], function(){
        var dtree = layui.dtree;
        var layer = layui.layer;
        $ = layui.jquery;


        // 初始化树
        var deptTree = dtree.render({
            elem: "#deptTree",
            dataStyle:"layuiStyle", //使用layui 数据风格的格式
            dataFormat: "list",  //配置data风格为list
            response:{message:"msg",statusCode:0},  //修改response中返回数据的定义
            url: "/dept/loadDeptManageLeftTreeJson" // 使用url加载(可与data加载同时存在)
        });

        // 绑定节点点击
        dtree.on("node(‘deptTree‘)" ,function(obj){
            layer.msg(JSON.stringify(obj.param));
        });
    });


</script>
</body>
</html>

 最后效果图

技术分享图片

dtree的简单实现

原文:https://www.cnblogs.com/zhsv/p/12514811.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!