# 树形表格 ### 1、树形表格 - 如果数据之间含有上下级关系,我们就可以将表格渲染成一个树状表格,如图所示: ![树形表格](http://oss.dev33.cn/sa-plus/tree-table-pre.png) ### 2、怎么做呢? - 很简单,只需要声明表注释`[tree]`, 如下所示: ``` js 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`时,这行数据不是其他节点的子节点,而是一个顶级节点 注:以上参数均有默认值,当取值与参数默认值相同时均可以省略不写 **在需要拼接多个参数时,以如下格式填写:** ``` js [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]` 一致**