# 初始化
import LazyTreeTableUtils from '@/utils/lazyTreeTableUtils'// 工具所在路径
let lazyTreeTableUtils = null
export default {
...
methods:{
getLazyTreeTableUtils() {
lazyTreeTableUtils = new LazyTreeTableUtils({
api: this.getTreeList,// 调用列表接口的api
queryParams: ['id', 'type'], // 查询子节点参数的字段名;默认[]
showCheckBox: true, // 是否有checkbox的存在 用于钩选状态的恢复;默认false
init: true, // 初始化是否需要加载根节点;默认true
process: this.process, // 对于返回数据的加工
defaultExpandAll: false, // 是否默认展开所有节点;默认false
defaultExpandedKeys: null // 默认展开的节点id数组;默认null
}),
}
},
...
}
# 初始化数据
lazyTreeTableUtils.initData(data)
提示
initData
方法是实现数据初始化,把数据赋值到lazyTreeTableUtils
工具中的data
属性上。以便在lazyTreeTableUtils
方法中可以直接对data
进行处理,并且通过lazyTreeTableUtils.data
可以获取。
# 参数处理
lazyTreeTableUtils.dealParams(row)
提示
dealParams
方法是根据初始化的queryParams
,把传入的row
参数提取出queryParams
响应参数对应的值。
# 滚动位置恢复
lazyTreeTableUtils.resetScrollTop(ref)
提示
resetScrollTop
方法是将ref元素恢复到之前scroll的位置。
# 懒加载
lazyTreeTableUtils.loadMoreData(val, ref)
提示
loadMoreData
方法参数有三:当前行的数据、当前dom元素(通过ref指向)、对于返回数据的加工方法(不传使用初始化时传入的方法)。这个方法在收缩子级时触发。触发后根据参数处理后的参数来调用初始化时传入的列表接口,根据process
方法处理获取的参数之后;如果之前showCheckBox
值为true
,则触发dealChildrenChecked
方法根据参数_checked
参数来判断是否勾选。然后根据resetScroll
方法来使列表保持在调用接口前的滚动位置上。
# 列表数据刷新
lazyTreeTableUtils.refreshData(process, ref)
提示
refreshData
根据最新的data
来重新渲染列表。根据当前展示的层级,一层层请求接口来获取最新的渲染效果。还会根据resetStatusLazy
方法来还原到刷新前的效果。
# 组件源码及综合示例参考
源码 (opens new window)示例 (opens new window)文档 (opens new window)