00:00
大家好,下面呢,我们开发菜单列表接口,刚才咱们把controller已经完成了service里边创建的方法,那最终我们实现这个方法,菜单管理按照菜单的树形结构进行显示,那这怎么做?首先给各位同学先做个分析,我在这里写一下。菜单的列表实现,我们用树形进行实现,那怎么做呢?咱们这么来看啊,首先第一个我们先。查看一下这个element UI里边这个表格组件,看组建是怎么做的,因为咱们前端用实现,所以咱要参考组件,看组件中要求咱们怎么来做,那下面我们来看一下。咱们找到IUY啊,那我到这里找一下啊,咱找到前端里边的这个位置IUY,把这个网站打开,打开之后呢,我们找到里边那个组件中的表格组件,然后往下看在这里。
01:06
找到之后咱们往下拉,找一下里边那个树形的结构,咱往下看应该是在下面部分。我们来找啊。应该是在这个地方啊,就是以它为例,或者说以这个为例都是一样的,咱以它为例,那这里显示叫数形数据与懒加载,咱们就要看这个数形数据的显示,我现在把源码打开,然后咱们做一个详细的分析,看它到底是怎么做的。各位同学啊,要明确,因为咱们前端用的是element UI组件,所以UI要求咱们接口中数据有一个固定结构,所以咱们看一下这个结构,首先我把这个代码给各位复制出来。咱用它来做个查看,这个代码有很多,我先都复制,然后找到我们需要的这个结构。
02:01
咱们先拿过来,然后我放到一个T文件中。到这里,咱们来看一下这个效果到底是怎么样的。它的这里边啊,有两段代码,咱们把第二段去掉,就保留第一段咱们看啊,第一段里边呢,有一个叫table date,就是它这个数据,那咱们找到table date,其他数据给它就删掉了,还一个TABLE1这段我就去掉。那咱们啊,看一下这个效果到底是怎么样,首先第一个啊,大家看这里,就是IVUI中的表格组件,要求咱们传个数据,这个数据传完之后,它会自动给我们按照数用显示,然后显示中主要用到里边的这个地方,大家看啊,是不是有一个叫children,然后有一个叫has children,最主要是children children是不是叫孩子,意思表示它的下一层数据也是咱们看到的,大家看这里。
03:02
就是里边的。这么一个效果是不是有多层显示,所以咱们要做的也就这个样子,那他怎么做的呢?咱们主要看它的数据部分,它的数据呢,长这个样子。我把这段数据呢,给各位复制出来,咱到外边来看一下这个数据,因为咱们最终我们要写接口,我们就返回跟它相同结构的数据。那咱们啊,看一下这个数据,首先我们看啊,第一部分这个数据是个什么结构,是不是一个Jason的数组结构,然后在里边有很多的对象,展开对象啊,这里边我就保留几个,其他的我就删掉了啊,比如说我们看里边有第一个对象。就是这个对象,然后有第二个对象,包括还有更多的对象,咱保留这个结构,然后大家看第二个对象中啊,有这么一个特点,我们仔细看啊,ID是三,这个叫王小虎,然后他下面是不是一个children children代表孩子,就是他的下一层节点,然后在它的下一层中里边,你看是不是又是一个数组,也就说这个效果是咱看到的这个地方,这个是第一层,这是它的第二层,所以咱们现在要把数据变成的也是这个样子,这数据我们再看一遍啊,首先是一个数组结构。
04:24
然后数组中呢,有多个对象,对象里边如果还有相同数据,咱加个children准,Children准中又是一个数组,最终能看到就是一个树形结构,当然这里边呢,如果还有下一层,那咱们再加children准,再进行显示,这是我们看到这个数据,所以咱们一会儿写接口,让我们的接口就返回这么一个结构数据,然后用UI中的table组件就能进行显示,所以各位把这数据要看明白,是这么一个结构。然后数据看完之后呢,下面咱们要怎么来做呢?给各位说明啊,也就是咱们按照前端要求要编写接口,返回这个结构数据,那怎么做给各位写这个过程啊。
05:13
我在图里边给大家写一下。就是我们的做法就是第二部分按照。Element UI组件要求的格式来编写接口,返回数据。它的数据呢,要求是这么一个结构,我在里边把这结构简单写一下啊,首先是一个Jason的数组格式,然后数组里边呢是有多个对象。这里边啊,我写一下。这个稍等我重新写一下啊。我们有一个数度格式。然后数组里边有多个对象啊,比如咱就简单写个结构,多个对象加个逗号,然后咱们可以再有一个对象,然后在对象中呢,还可以再来嵌套,那嵌套的话我们写一个准。
06:14
然后children准里边又有数组又有对象,所以以上是咱们要做的这么一种结构,咱们就把数据变成这个样子就可以了,那这样子怎么来变,给大家说明啊,首先我们的第一步。咱们需要就是。根据你返回的数据创建一个实体类,通过实体类我们进行操作,这是第一步,这个实体类我这里边已经创建过了,咱们看一下啊,System menu大家看里边首先有一些基本的属性,然后大家重点看这个位置,看这里啊,说一下这个什么意思,你看啊这什么。是不是历次集合,然后里边有children准,它就表示我数据的下层列表用一个集合性表示,这是我们看到的这么一个类。
07:08
然后这个结构在图里边给大家简单写一下。System menu是咱们的这个类。然后在里边有它的相关的这些属性,另外有一个历史集合代表它的下层数据,我就简写了。所以我们看到的是这么一个试题类。这个我们完成了一个创建,就是system menu中它就是这个样子,然后在这个是一类的属性中啊,有个特点,大家看我是一类中的这一行,就是注释。大家看这里叫什么table field,一个this等于false,这句话什么意思呢?我强调啊,如果说你不写这句话,那我表里边要有字段跟它对应,而我写这句话之后,那表里边就可以没有字段跟它对应,它就表示只是用于数据封装的表中没有这个字段,这个注解各位给他知道。
08:14
Table field,一个等于false表,里边没有对应的字段,所以现在我们的第一步完成,完成之后呢,下面我们开始写这个接口,接口中呢,咱要把所有的这个菜单都进行查询,然后最终转换成这个样子,然后写一下啊,就是第二步操作。咱们查询所有的菜单,然后转换成要求的数据考试这个过程中注意啊,因为咱们要查询所有菜单,这查询所有中啊,有一个特点给大家特别说明,因为咱们就是菜单是不是有多层的,比如说我们第一层,第二层,第三层有多层,所以大家要查询多层菜端,这里边我们使用一个操作,这个操作各位应该都听过,叫递归查询。
09:07
什么叫递归查询?比如现在我查第一层,如果第一层卡边还有,我查第二层,如果还有查第三层,直到下边没有数据为止,这个叫递归,所以咱们第二部分查的时候用到递归来编写这个代码。以上就是咱们对于菜单列表数形结构的分析,各位知道这个特点,第一个数据结构要能看懂,它是这个样子,然后第二部分我们该怎么做,建实体类,包括递归经查询地归,各位注意啊,特别提一下什么叫地归,大家想一下什么是地归,通俗说是不是自己调自己啊,直到满足条件为止。包括递归有一个入口,有一个结束条件以上啊,咱就是一个分析,咱们先分析到这里,然后下面呢,咱们开始用代码把输赢结构进行显示。
我来说两句