后台接口返回的数据格式:
var data = [
{sucode1:"1",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"1",sucode2:"02",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"1",sucode2:"02",sucode3:"002",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"2",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"3",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
{sucode1:"3",sucode2:"02",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
];
js转换树的方法:
function treeData(data){
var code1 = "-1";
var code2 = "-1";
var root1=[];
var rootData1={};
var tmp1=-1;
var tmp2=-1;
for(var info of data){
if(code1 != info.sucode1){
rootData1={title:info.subName1,code:info.sucode1,level:1,children:[{title:info.subName2,code:info.sucode2,level:2,children:[{title:info.subName3,level:3,code:info.sucode3}]}]};
root1.push(rootData1);
code1 = info.sucode1;
code2 = info.sucode2;
tmp1++;
tmp2=0;
}else{
var children = root1[tmp1].children;
if(code2 == info.sucode2){
var children2 = children[tmp2].children;
children2.push({title:info.subName3,level:3,code:info.sucode3});
children[tmp2].children = children2;
}else{
children.push({title:info.subName2,code:info.sucode2,level:2,children:[{title:info.subName3,level:3,code:info.sucode3}]});
rootData1.children = children;
root1[tmp1]=rootData1;
tmp2++;
}
code2 = info.sucode2;
code1 = info.sucode1;
}
}
return root1;
}