// 以下是转换为树形结构的方法 --> getRootList, getTransformItemAndChildren, getNextChildrenList, transformItem 等
getRootList(list) {
console.time('getrootlist')
list = list || []
// const rootTask = list.filter(task => task.upperCompanyCode == 0);
const rootTask = list.find(task => task.upperCompanyCode === undefined || task.comCode === task.upperCompanyCode);
if (rootTask) {
const result = [this.getTransformItemAndChildren(rootTask, this.getNextChildrenList(rootTask.comCode, list))]
console.timeEnd('getrootlist')
return result
}
console.timeEnd('getrootlist')
return []
},
getTransformItemAndChildren(task, children) {
return this.transformItem(Object.assign(task, { children }))
},
/**
* @param { Array<any> } list
*/
getNextChildrenList: memoize(
function(
upperCompanyCode,
list,
deep = 0,
filter = (task, parentcode) => task.upperCompanyCode !== task.comCode && task.upperCompanyCode === upperCompanyCode
) {
list = list || []
const filterChildren = []
forEach(list, task => {
if (filter(task, upperCompanyCode)) {
filterChildren.push(
this.transformItem(
Object.assign(task, { children: deep < 5 && this.getNextChildrenList(task.comCode, list, deep + 1) })
)
)
}
})
return filterChildren
},
code => code
),
transformItem(item, index) {
// console.log('transform', item)
return {
...item,
key: item.comCode,
title: item.comCode +'--'+ item.companyCname,
value: item.comCode,
children: item.children || []
}
},
将平级数据转换为antd vue tree组件可识别的树形结构
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 写在前面 首先,本篇文章所开发的组件并非一个已经开源的上线组件,所以如果你急于需要一个插件来只做你的项目,那么并不...
- 其实最开始并没有采用Vuex,因为Vuex相对于$emit这类事件监听需要多写很多代码,而且步骤也是比较繁琐...
- 效果 支持新增、编辑、删除节点 支持拖拽调整节点 Live Demo 地址 https://www.npmjs.c...