在最近做到一个项目,有一个需求,要求我根据数据库中的商品类型表中的数据生成一个多级树形组件。
如上图所示,在开始部署项目时,我并没有太关注这个需求,在数据库设计阶段,由于我是第一次做这个树形组件,我就做了两个商品类型表。后来我们做这个树形组件时,发现我只能生成两级的树形组件,如果是三级四级的树形组件就不能使用这种方式。
我是这样解决这个问题的,我就使用一个表来实现这个需求。
我重新对数据库中的商品类型表进行了修改,在Parent属性中我就存放进这个商品类型的上级类型ID值,根据这个ID值判断是什么类型是它的父级。而一级(最大的类型)就使用0来表示是最大的类型。
当这个表设计完成后,又有一个疑问。该怎么实现这个功能呢?这时候我想到了递归(简单来说:就是在一个方法中调用自身,这个要注意的是要有一个终止方法的条件,不然就是一个死循环了)。
我先创建一个类,这个类中 title属性就是它当前级别的名称,而List<LayuiTree>集合中存储可能存在多个的下级信息
后端代码:
前端代码,我在前端偷了个懒,使用的是Layui插件中的树形组件。具体可以在Layui插件官网中进行查看