메뉴 정리
This commit is contained in:
@@ -1,17 +1,24 @@
|
||||
class ApiLayoutItemTreeBuilder {
|
||||
static createTree(layoutItems) {
|
||||
layoutItems.sort((a, b) => a.loutItemSerno - b.loutItemSerno);
|
||||
const rootId = layoutItems.length === 0 ? 0 : parseInt(layoutItems[0].parent);
|
||||
const itemsCopy = layoutItems.map(item => ({
|
||||
...item,
|
||||
children: [] // 기존의 children 배열을 초기화합니다.
|
||||
}));
|
||||
|
||||
// 2. 정렬 (필요한 경우)
|
||||
itemsCopy.sort((a, b) => a.loutItemSerno - b.loutItemSerno);
|
||||
|
||||
const rootId = itemsCopy.length === 0 ? 0 : parseInt(itemsCopy[0].parent);
|
||||
const root = {id: rootId, children: [], loutItemSerno: 0, loutItemName: 'Root', loutItemDesc: 'Root', loutItemType: '', loutItemDepth: 0, parent: null};
|
||||
|
||||
const nodeMap = new Map();
|
||||
nodeMap.set(rootId, root);
|
||||
|
||||
for (const item of layoutItems) {
|
||||
for (const item of itemsCopy) {
|
||||
if (['Grid', 'Group'].includes(item.loutItemType)) {
|
||||
if (item.loutItemOccCnt !== null) {
|
||||
if (item.loutItemOccCnt === '*') {
|
||||
let refItem = layoutItems.find(p => p.loutItemName === item.loutItemOccRef);
|
||||
let refItem = itemsCopy.find(p => p.loutItemName === item.loutItemOccRef);
|
||||
if (refItem) {
|
||||
item.childOccCnt = parseInt(refItem.value, 10);
|
||||
}
|
||||
@@ -31,6 +38,7 @@ class ApiLayoutItemTreeBuilder {
|
||||
nodeMap.set(item.id, item);
|
||||
}
|
||||
|
||||
console.log(root);
|
||||
return root;
|
||||
}
|
||||
|
||||
@@ -68,7 +76,7 @@ class ApiLayoutItemTreeBuilder {
|
||||
}
|
||||
|
||||
static getNodeById(node, id) {
|
||||
if (node.id == id) {
|
||||
if (Number(node.id) === Number(id)) {
|
||||
return node;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user