用JS將後臺返回的JSON資料轉換成EasyUI Tree約定的格式
阿新 • • 發佈:2019-01-28
/**載入根節點樹狀圖*/
function loadParentId_add() {
$.ajax({
url: ''與後臺互動的地址,
success: function (data) {
if (data.success) {
data= formateRows2Tree(data.rows);
//建立根節點
$('#parentId_add').combotree({
required: true
}).combotree("tree").tree ({
data:[{
"id":'-1',
"text":'根節點'
}],
checkbox: false
});
//載入父節點樹狀選擇框資料
$('#parentId_add').combotree({
required: true
}).combotree("tree").tree('append',
{
parent: $ ('#parentId_add').combotree("tree").tree('find','-1').target,
data:data
});
} else {
$.messager.alert('error7', data.msgDesc);
return [];
}
}
});
}
/*————轉換為樹形————*/
function formateRows2Tree(nodes) {
if (!isArray(nodes)) {
nodes = [nodes];
}
return doFormateRows2Tree(nodes);
}
function doFormateRows2Tree(rows) {
//------------------------初步格式化
var newRows = [];
$.each(rows, function (idx, ele) {
newRows.push(_formateSingleNode(ele));
});
//------------------------轉為樹形
var topRowArray = arrayToTree(newRows, 'children', 'id', '_pid');
//------------------------清理無用屬性,設定初始化屬性
$.each(topRowArray, function (idx, ele) {
delete ele['_pid'];
});
return topRowArray;
}
function _formateSingleNode(ele) {
var nodeText = ele['text']?ele['text']:ele['name'];
return {
'id': ele['id'],
'text': nodeText,
'_pid': ele['parentId'],
'state': !ele['_ignoreHasChilren']&&ele['hasChildren'] ? 'closed' : null,
'attributes': {'orgData': ele}
};
}
/*————轉換為樹形————*/