如何在页面中搭建树状表格|飞书低代码平台

如何在页面中搭建树状表格|飞书低代码平台

飞书低代码平台手册精选NaN-NaN-NaN
产品功能
预期效果
支持在同一个表格中展示父、子级数据,可以逐级展开来获取/查看下一级数据
250px|700px|reset
搭建步骤
目前通过引导式搭建已经可以一键生成树状表格,本文用于阐明树状表格逻辑细节及原理,用于参考学习
Step1. 通过引导式搭建生成树状表格
  • 搭建演示:
250px|700px|reset
  • 注意:仅具备「层级关系」的对象支持生成树状表格
250px|700px|reset
Step2. 查看生成的数据请求
树状表格一般会生成 3 个主要的数据请求
  1. 查询根层级的父级数据:getParent
用于获取没有父级的根层级数据,此处通过「过滤条件」设置来实现这个逻辑
  • 过滤条件:父客户 = 空
250px|700px|reset
image.png
  1. 根据指定父数据查询其子级数据:getChildren
用户在点击某一行父级数据时,查询其子级数据,此处通过「过滤条件」设置来实现这个逻辑。
  • 过滤条件:父客户 = 当前想要展开的行
  • { { table1.selectedRow._id } }
250px|700px|reset
  1. 模糊搜索全部数据,不区分父子级(结果平铺展示):search
用户在输入搜索框内容进行搜索时,通过此请求来获取搜索结果。
250px|700px|reset
Step3. 查看生成的 JS Code、变量
用户在展开子级后,通过此 JS 动作来自动组装父级、自己数据为一个完整的数据列表,用于整体提供给表格进行消费。
  • JS Code 输出的结果会设值给一个自定义变量,表格则消费此变量来呈现数据。
250px|700px|reset
image.png
代码内容
const parentId = params.parentIdconst children = params.childrenfunction searchAndUpdate(parent) { if(parent._id === parentId) { parent.children = children; return true } else if (Array.isArray(parent.children) ) { for (let item of parent.children) { const find = searchAndUpdate(item) if(find) { return true; } } } return false;}const clonedData = JSON.parse(JSON.stringify(tableData.value))for(let item of clonedData) { const find = searchAndUpdate(item) if(find) break}tableData.setValue(clonedData))
Step4. 查看生成的变量
会生成两个变量,其用户如下
  • tableData:用于缓存 Step1-3 返回的数据结果,便于表格直接消费,而不用与多个请求进行关联
  • currentItem:用于缓存点击展开的是哪一行,便于在表格展开按钮展示 Loading 状态时,精准的控制仅被点击的行会 Loading
250px|700px|reset
image.png
Step5. 查看生成的表格配置
表格会支持「树状表格」配置,此场景下
  • 通过「展开行」事件,来触发 getChildren 获取下一级数据
  • 通过打开「树状表格」开关,使得表格能够接受嵌套格式的树状数据
  • 通过「展开按钮隐藏」,来控制没有下一级的数据行不要展示展开按钮;展开按钮加载同理
250px|700px|reset
image.png
先进生产力和业务协同平台
联系我们立即试用

先进团队,先用飞书

欢迎联系我们,飞书效能顾问将为您提供全力支持
分享先进工作方式
输送行业最佳实践
全面协助组织提效
联系我们立即试用