效果图:
代码:
function convert(rows) {
function exists(rows, pkparent) {
for (var i = 0; i < rows.rows.length; i++) {
if (rows.rows[i].pkog == pkparent)
return true;
}
return false;
}
var nodes = [];//所有一级父级
for (var i = 0; i < rows.rows.length; i++) {
var row = rows.rows[i];
if (!exists(rows, row.pkparent)) {
nodes.push({
pkog: row.pkog,
pkparent:row.pkparent,
ogname:row.ogname,
ogrange:row.ogrange,
humannumber:row.humannumber,
peoplenumbers:row.peoplenumbers,
pkstaAdmin:row.pkstaAdmin,
pkstaAssistant:row.pkstaAssistant
});
}
}
var toDo = [];
for (var i = 0; i < nodes.length; i++) {
toDo.push(nodes[i]);
}
while (toDo.length) {
var node = toDo.shift();
for (var i = 0; i < rows.rows.length; i++) {
var row = rows.rows[i];
if (row.pkparent == node.pkog) {
var child = {
pkog: row.pkog,
pkparent:row.pkparent,
ogname:row.ogname,
ogrange:row.ogrange,
humannumber:row.humannumber,
peoplenumbers:row.peoplenumbers,
pkstaAdmin:row.pkstaAdmin,
pkstaAssistant:row.pkstaAssistant
};
if (node.children) {
node.children.push(child);
} else {
node.children = [child];
}
toDo.push(child);
}
}
}
return nodes;
} 2''