一 提出需求
先看一下我们的需求,我们的需求是要实现下面这个页面的树形展示。使用的技术是MyBatis-plus。
二 分析需求
首先分析一下这个页面,这个页面是以树形结构的方式展示权限(资源)列表。虽然是树形展示,本质上,它还是一个表。我们可以这样定义权限(资源)表。
CREATE TABLE `sys_resource` (
`id` varchar(30) NOT NULL,
`name` varchar(50) NOT NULL,
`parent_id` varchar(30) DEFAULT NULL,
`type` int(1) NOT NULL DEFAULT '0',
`url` varchar(100) DEFAULT NULL,
`permission` varchar(50) DEFAULT NULL,
`color` varchar(10) DEFAULT NULL,
`icon` varchar(30) DEFAULT NULL,
`sort` int(11) NOT NULL DEFAULT '0',
`verification` tinyint(1) NOT NULL DEFAULT '0',
`create_date` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
看上去,还是有点抽象,我们拿表数据说话。
我们分析一下这个表。其中绿色标识出来的是一级节点。红色标识出来的是二级节点,其它都是三级节点。一级节点和二级节点是通过parent_id进行关联,二级节点和三级节点也是通过parent_id进行关联。
关于不同级别节点的关联关系,上面这个表格看得不是太清楚。我们看下面这个图就比较清楚了。