|
@@ -1,12 +1,12 @@
|
|
|
/**
|
|
|
* Created by Tony on 2017/1/23.
|
|
|
*/
|
|
|
-const NODE_ID = "ID", P_ID = "ParentID", NEXT_ID = "NextSiblingID", ADHOC_PRE_ID="Previous_ID", CHILDREN_NODE = "items", SUB_ID = "sub_ids", EMPTY_ID_VAL = -1;
|
|
|
+const NODE_ID = "ID", P_ID = "ParentID", NEXT_ID = "NextSiblingID", ADHOC_PRE_ID="Previous_ID", CHILDREN_NODE = "items", SUB_ID = "sub_ids", EMPTY_ID_VAL = -1, TREE_LEVEL = 'treeLevel';
|
|
|
|
|
|
let tree_Data_Helper = {
|
|
|
- buildTreeNodeDirectly: function(data) {
|
|
|
+ buildTreeNodeDirectly: function(data, addLevel) {
|
|
|
let topArr = [], rst = [], tmpNodes = {}, prefix = "id_";
|
|
|
- let private_getTopNode = function (idArr) {
|
|
|
+ let private_getStartNode = function (idArr) {
|
|
|
let tmpNodeRst = null;
|
|
|
for (let i = 0; i < idArr.length; i++) {
|
|
|
if (parseInt(tmpNodes[prefix + idArr[i]][ADHOC_PRE_ID]) === EMPTY_ID_VAL) {
|
|
@@ -16,8 +16,8 @@ let tree_Data_Helper = {
|
|
|
}
|
|
|
return tmpNodeRst;
|
|
|
};
|
|
|
- let private_buildNodeData = function(parentItem, idArr) {
|
|
|
- let iter = [], nextNode = private_getTopNode(idArr);
|
|
|
+ let private_buildNodeData = function(parentItem, idArr, treeLevel) {
|
|
|
+ let iter = [], nextNode = private_getStartNode(idArr);
|
|
|
while (nextNode !== null && nextNode !== undefined ) {
|
|
|
if (parentItem) {
|
|
|
parentItem[CHILDREN_NODE].push(nextNode);
|
|
@@ -25,10 +25,11 @@ let tree_Data_Helper = {
|
|
|
rst.push(nextNode);
|
|
|
}
|
|
|
iter.push(nextNode);
|
|
|
+ if (addLevel) nextNode[TREE_LEVEL] = treeLevel;
|
|
|
nextNode = tmpNodes[prefix + nextNode[NEXT_ID]];
|
|
|
}
|
|
|
for (let i = 0; i < iter.length; i++) {
|
|
|
- private_buildNodeData(iter[i], iter[i][SUB_ID]);
|
|
|
+ private_buildNodeData(iter[i], iter[i][SUB_ID], (treeLevel + 1));
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -51,7 +52,7 @@ let tree_Data_Helper = {
|
|
|
tmpNodes[prefix + data[i][P_ID]][SUB_ID].push(data[i][NODE_ID]);
|
|
|
}
|
|
|
}
|
|
|
- private_buildNodeData(null, topArr);
|
|
|
+ private_buildNodeData(null, topArr, 0);
|
|
|
//try to release and return
|
|
|
tmpNodes = null;
|
|
|
topArr.length = 0;
|