tree.md 2.1 KB

树形表格

1、树形表格

  • 如果数据之间含有上下级关系,我们就可以将表格渲染成一个树状表格,如图所示:

树形表格

2、怎么做呢?

  • 很简单,只需要声明表注释[tree], 如下所示:

    	CREATE TABLE `sys_dept` (
    		// ... 
    	) COMMENT='部门表 [tree]';
    
  • 只要在表注释里写上了 [tree],就可以生成一个树形表格

3、参数详解

其还有一些参数,用于指定各种数据

  • idkey = 指定哪个字段代表数据唯一标识,默认取表的主键,例如:[tree idkey=id]
  • fkey = 指定哪个字段代表[父id],默认值=parent_id,例如:[tree fkey=parent_id]
  • ckey = 指定生成的代码中,子节点存储的字段名,默认值=children,例如:[tree ckey=children]
  • top = 指定顶级数据parent_id字段应该取的值,默认-1,例如:[tree top=-1] 代表,当一行数据的parent_id=-1时,这行数据不是其他节点的子节点,而是一个顶级节点

注:以上参数均有默认值,当取值与参数默认值相同时均可以省略不写

在需要拼接多个参数时,以如下格式填写:

	[tree idkey=id, fkey=parent_id, ckey=children]

4、综合示例

-- 在演示sql文件中,表sys_dept即为树形表,可运行sql和代码生成器进行查看,其最终效果与最上方展示图类似

5、懒加载模式

  • [tree]适用于表数据量少于1000的情形,因为其会在初始化时加载全表数据,这样会使得界面操作流畅,但是在数据量过多时造成页面卡顿现象
  • 因此,如果你的表数据量大于1000或在将来的业务中预测将大于1000, 则推荐你打开懒加载模式 (点击展开按钮时,才会加载子级别数据)
  • 如何打开懒加载模式呢?很简单,只需要将[tree] 更换为 [tree-lazy] 即可
  • 如下所示:

    	CREATE TABLE `sys_dept` (
    		// ... 
    	) COMMENT='部门表 [tree-lazy]';
    
  • 其余参数均与 [tree] 一致