首先 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>
最后效果图
原文:https://www.cnblogs.com/zhsv/p/12514811.html