提交 f3d4d014 authored 作者: 姚鑫国's avatar 姚鑫国

优化 getColumnsMaxLevel 函数

上级 9d256612
......@@ -157,8 +157,7 @@ export function getColumns(columns) {
v: '序号',
s: 'header',
};
let columnsHeight = 0;
getColumnsMaxLevel(columns); //递归行数
let columnsHeight = getColumnsMaxLevel(columns); //递归行数
let columnsKey = [];
const columnsList = new Array(columnsHeight).fill([]);
let col = 1;
......@@ -192,29 +191,32 @@ export function getColumns(columns) {
}
return res;
} catch (e) {
debugger;
console.table("getColumnsData",e);
return false;
}
}
//递归行数
function getColumnsMaxLevel(data = [], level = 1) {
for (let item of data) {
let isLast = !item.children;
if (!isLast && Array.isArray(item.children)) {
let x = level + 1;
if (columnsHeight < x) {
columnsHeight = x;
}
getColumnsMaxLevel(item.children, x);
function getColumnsMaxLevel(arr = [] ) {
//递归计算树形数据最大的层级数
let maxLevel = 0;
(function multiArr(arr, level=0) {
++level;
maxLevel = Math.max(level, maxLevel);
for (let i = 0; i < arr.length; i++) {
let item = arr[i];
item.level = level;
if (item.children && item.children.length > 0) {
multiArr(item.children, level);
} else {
columnsHeight += 1;
delete item.children;
}
}
return level;
})(arr, 0);
return maxLevel;
}
//递归当前数据宽度
function getColumnsWidth(data = [], sum = 0) {
for (let item of data) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论