php layui的tree案例,layui 分类树案例(springboot layui 分类树实现的完整例子)

前端 cateTree.html

前端 myTree.js

$(function() {

getData();

})

function getData(){

$.ajax({

type: "get",

data: "id=0",

url: "/category/findCategoryJson",

success: function (data) {

layui.use(['tree', 'util'], function() {

var tree = layui.tree

, layer = layui.layer

, util = layui.util

//无连接线风格

tree.render({

elem: '#test13'

,data: data

,showLine: false //是否开启连接线

});

})

},

});

}

Controller中的方法

@RequestMapping(value = "/findCategoryJson")

@ResponseBody

public ListfindTree(){

Listlist=categoryService.getTree();

return list;

}

service中的方法

ListgetTree();

serviceImpl中的方法

@Override

public ListgetTree() {

BuildTree buildTree=new BuildTree();

//获取数据的list

ListtreeNodes=categoryDOMapper.selectTree();

Listlist= buildTree.buildTree(treeNodes);

return list;

}

dao中

ListselectTree();

Treemapper.xml

SELECT id AS id,category_name AS title , parent_id AS pid FROM category

BuildTree 类

import java.util.ArrayList;

import java.util.List;

/**

* Created by fengcai on 2020/7/5.

*/

public class BuildTree {

ListTreeNodes = new ArrayList<>();

public ListbuildTree(ListTreeNodes) {

BuildTree treeBuilder = new BuildTree(TreeNodes);

return treeBuilder.buildJSONTree();

}

public BuildTree() {

}

public BuildTree(ListTreeNodes) {

super();

this.TreeNodes = TreeNodes;

}

// 构建JSON树形结构

public ListbuildJSONTree() {

ListTreeNodeTree = buildTree();

return TreeNodeTree;

}

// 构建树形结构

public ListbuildTree() {

ListtreeTreeNodes = new ArrayList<>();

//获取所有根节点

ListrootTreeNodes = getRootTreeNodes();

//获取每个根节点

for (TreeNode rootTreeNode : rootTreeNodes) {

try {

//递归这个根节点的子节点

buildChildTreeNodes(rootTreeNode);

//用list来存放每个根节点

treeTreeNodes.add(rootTreeNode);

} catch (Exception e) {

e.printStackTrace();

}

}

return treeTreeNodes;

}

// 递归子节点

public void buildChildTreeNodes(TreeNode TreeNode) {

Listchildren = getChildTreeNodes(TreeNode);

if (!children.isEmpty()) {

for (TreeNode child : children)

try {

buildChildTreeNodes(child);

} catch (Exception e) {

e.printStackTrace();

}

TreeNode.setChildren(children);

}

}

/**

* 获取父节点下所有的子节点

* @param pTreeNode

* @return

*/

public ListgetChildTreeNodes(TreeNode pTreeNode) {

ListchildTreeNodes = new ArrayList<>();

for (TreeNode n : TreeNodes) {

// if (pTreeNode.getCode().equals(n.getPcode())) {

if (pTreeNode.getId().equals(n.getPid())) {

childTreeNodes.add(n);

}

}

return childTreeNodes;

}

// 判断是否为根节点

public boolean rootTreeNode(TreeNode TreeNode) {

boolean isRootTreeNode = true;

for (TreeNode n : TreeNodes) {

// if (TreeNode.getPcode().equals(n.getCode())) {

if (TreeNode.getPid().equals(n.getId())) {

isRootTreeNode = false;

break;

}

}

return isRootTreeNode;

}

// 获取集合中所有的根节点

public ListgetRootTreeNodes() {

ListrootTreeNodes = new ArrayList<>();

for (TreeNode n : TreeNodes) {

if (rootTreeNode(n)) {

rootTreeNodes.add(n);

}

}

return rootTreeNodes;

}

}

TreeNode 类

public class TreeNode {

private Integer id;

private Integer cid;

private String title;

private Integer pid;

private Listchildren = new ArrayList();

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public Integer getCid() {

return cid;

}

public void setCid(Integer cid) {

this.cid = cid;

}

/* public String getCname() {

return cname;

}

public void setCname(String cname) {

this.cname = cname;

}*/

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public Integer getPid() {

return pid;

}

public void setPid(Integer pid) {

this.pid = pid;

}

public List getChildren() {

return children;

}

public void setChildren(List children) {

this.children = children;

}

@Override

public String toString() {

return "TreeNode{" +

"id=" + id +

//", cname='" + cname + '\'' +

", title='" + title + '\'' +

", pid=" + pid +

", children=" + children +

'}';

}

}

效果图

7def4e4922e286004e7526358b9ea264.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值