메뉴 정리

This commit is contained in:
현성필
2025-02-02 15:39:00 +09:00
parent 42d542418a
commit 14a004c9e5
2 changed files with 16 additions and 23 deletions
@@ -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;
}