// 里面用到了lodash,第三方的方法,如果不了解可以先学习一下
export default {
// 平级数据变成树形数据
datatree: (datas, idprop, pIdprop) => {
if (!idprop) {
idprop = 'id';
}
if (!pIdprop) {
pIdprop = 'parentId';
}
let nodes = [],
c = function (obj) {
let _c = [];
for (let i = 0; i < datas.length; i++) {
let _d = _.cloneDeep(datas[i]);
if (_d[pIdprop + ''] == obj[idprop + '']) {
_c.push(_d);
c(_d);
}
}
if (_c.length) {
obj.children = _c;
}
};
for (let i = 0; i < datas.length; i++) {
let _d = _.cloneDeep(datas[i]);
if ((!_d[pIdprop + ''] && _d[pIdprop + ''] != '') || (!_.result(_.find(datas, {
[idprop]: _d[pIdprop + '']
}), idprop))) {
c(_d);
nodes.push(_d);
}
}
return nodes;
},
}