JS实现 EasyUI-Tree 展示数据格式转换,

先上代码:

function makeEasyTree(data){
 if(!data)
  return [];
 var _newData = []; //最终返回结果
 var _treeArray = {}; //记录一级节点
 var _root = 1; //最顶层fid
 var _idKey = "id"; //主键的键名
 var _fidKey = "fid"; //父ID的键名
 _getChildren(_root);
 function _getChildren($root){
  var $children = [];
  for (var i in data){
   if($root == data[i][_fidKey]){
    data[i]["children"] = _getChildren(data[i][_idKey]);
    $children.push(data[i]);
   }
   //只要一级节点
   if(_root == data[i][_fidKey] && !_treeArray[data[i][_idKey]]){
    _treeArray[data[i][_idKey]] = data[i];
    _newData.push(data[i]);
   }
  }
  return $children;
 }
 return _newData;
 
}

var menuData =  [{"id":"2","fid":"1","text":"一级管理员","nodeUrl":"Admin"},{"id":"5","fid":"1","text":"二级管理员","nodeUrl":"Admin"},

{"id":"3","fid":"2","text":"管理员一","nodeUrl":"Admin&m=Sys&a=manageRole"},{"id":"4","fid":"2","text":"管理员二","nodeUrl":"Admin&m=Sys&a=manageNode"},

{"id":"8","fid":"2","text":"管理员三","nodeUrl":"Admin&m=Sys&a=manageUser"},{"id":"6","fid":"5","text":"管理员一","nodeUrl":"Admin&m=LjbNote"},

{"id":"7","fid":"5","text":"管理员二","nodeUrl":"Admin&m=LjbNote&a=saveNote"},{"id":"9","fid":"5","text":"管理员三","nodeUrl":"Admin&m=LjbNote&a=manageType"}];

menuData = makeEasyTree(menuData);

平行数据集经过该函数转换后变成了Tree需要的父子关系的数据,直接给Tree使用即可。

你可能感兴趣的:(JS实现 EasyUI-Tree 展示数据格式转换,)