deviceList=[{
address: "江西省九江市都昌县狮山街",
province: "江西省",
city: "九江市",
device_id: "2021041600100001",
device_name: "江西明成水产养殖监测",
},{
address: "江西省九江市都昌县狮山街",
province: "湖北省",
city: "襄阳市",
device_id: "2021041600100001",
device_name: "江西明成水产养殖监测",
}]
var noProvince = { name: "未归类", children: [] };
var zNodes = [],massifNodes=[];
if (!devices || !devices.length) {
return;
}
// console.log("devices,,,",devices);
if (devices.length < 2) {
zNodes = devices.map((device) => {
return { name: device.device_name, device, isParent: false
};
});
} else {
devices.forEach((device) => {
if (!device.province) {
if (!zNodes.find((node) => node.name === "未归类")) {
zNodes.unshift(noProvince);
}
noProvince.children.push({
name: device.device_name,
device
});
return;
}
var provinceNode = zNodes.find(
(item) => item.name === device.province
);
if (!provinceNode) {
provinceNode = {
name: device.province,
children: [],
};
zNodes.push(provinceNode);
}
if (!device.city) {
provinceNode.children.push({
name: device.device_name,
device,
font: { color: device.online_ind ? "green" : "red" },
});
} else {
var cityNode = provinceNode.children.find(
(item) => item.name === device.city
);
if (!cityNode) {
cityNode = {
name: device.city,
children: [],
};
provinceNode.children.push(cityNode);
}
cityNode.children.push({
name: device.device_name,
device,
font: { color: device.is_online ? "green" : "red" },
});
}
});
}