UNPKG

vxe-table-demonic

Version:

一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...

60 lines (59 loc) 2 kB
var getAllColumns = function (columns, parentColumn) { var result = []; columns.forEach(function (column) { column.parentId = parentColumn ? parentColumn.id : null; if (column.visible) { if (column.children && column.children.length && column.children.some(function (column) { return column.visible; })) { result.push(column); result.push.apply(result, getAllColumns(column.children, column)); } else { result.push(column); } } }); return result; }; export var convertToRows = function (originColumns) { var maxLevel = 1; var traverse = function (column, parent) { if (parent) { column.level = parent.level + 1; if (maxLevel < column.level) { maxLevel = column.level; } } if (column.children && column.children.length && column.children.some(function (column) { return column.visible; })) { var colSpan_1 = 0; column.children.forEach(function (subColumn) { if (subColumn.visible) { traverse(subColumn, column); colSpan_1 += subColumn.colSpan; } }); column.colSpan = colSpan_1; } else { column.colSpan = 1; } }; originColumns.forEach(function (column) { column.level = 1; traverse(column); }); var rows = []; for (var i = 0; i < maxLevel; i++) { rows.push([]); } var allColumns = getAllColumns(originColumns); allColumns.forEach(function (column) { if (column.children && column.children.length && column.children.some(function (column) { return column.visible; })) { column.rowSpan = 1; } else { column.rowSpan = maxLevel - column.level + 1; } rows[column.level - 1].push(column); }); return rows; };