var list = [];
var res = [];
function setList() {
for (var s in data) {
var ori = data[s];
var obj = {};
obj.topparId = ori.顶级对象ID;
obj.parId = ori.父对象ID;
obj.id = ori.对象ID;
obj.空间 = "主卧";
obj.产品名称 = ori.名称;
obj.产品型号 = "";
obj.对方货号 = ori.对接JSON; //以此对方货号;匹配MIS系统全局的产品资料;对方货号建立规则见说明
obj.基材 = ori.材质分类;
obj.面材 = ori.材质;
obj.特殊说明 = "";
obj.宽 = ori.宽;
obj.高 = ori.高;
obj.厚 = ori.深;
obj.块数 = ori.部件数量;
obj.数量 = ori.计价数量;
obj.单位 = ori.单位;
obj.单价 = ori.单价;
obj.开孔 = "";
data[s] = obj;
}
var listmap = {};
for (var s in data) {
var obj = data[s];
var id = obj.id;
listmap[id] = obj;
}
for (var s in data) {
var obj = data[s];
var id = obj.id;
var upId = obj.parId;
var topparId = obj.topparId;
if (upId == 0) {
list.push(obj);
} else {
let parObj = listmap[upId];
if (parObj == null) {
// throw 111;
parObj = listmap[topparId];
}
if (parObj == null) {
list.push(obj);
} else {
parObj.dtls = parObj.dtls == null ? [] : parObj.dtls;
parObj.dtls.push(obj);
}
}
}
}
var 当前明细 = null;
function dealWithList(oripar, list) {
function onAddRoot(ori) {
if (ori.对方货号 != null && ori.对方货号 != "") {
res.push(obj);
当前明细 = ori;
}
}
function onAddToDtl(ori) {
if (ori.对方货号 != null && ori.对方货号 != "") {
if (当前明细 == null) {
onAddRoot(ori)
} else {
当前明细.子表行 == null ? [] : 当前明细.子表行;
当前明细.子表行.push(ori);
}
}
}
for (var s in list) {
if (oripar == null) {
当前明细 = null;
}
var ori = list[s];
if (parent == null) {
onAddRoot(ori);
} else {
onAddToDtl(ori);
}
if (ori.dtls != null) {
dealWithList(ori, ori.dtls);
}
}
}
setList();
//throw JSON.stringify(list);
dealWithList(null, list);
throw JSON.stringify(res);
console