
📌 정의
⚙️ 주요 기능
❗ 문제점
🛠 해결 방법
// GridTree 설정 예시
{
prop_id: '',
attr_type: EN_ATTR_TYPE.Renderer,
attr_id: 'grid_tree',
data: {
group_prop_id: 'item_group', // 그룹을 식별하는 prop_id
parent_group_prop_id: 'parent_item_group', // 부모 그룹 prop_id
},
}
// 재귀적 들여쓰기 계산 함수
protected getRowindent(data_model, data_models, grid_tree) {
if (!grid_tree) return;
let result = 1;
const parent_group_prop_id = grid_tree.parent_group_prop_id;
const parent_item_group = data_model[parent_group_prop_id];
if (parent_item_group) {
result = infiniteLoop(parent_item_group, parent_group_prop_id, data_models, result);
}
return result;
function infiniteLoop(parent_item_group, parent_group_prop_id, data_models, result) {
result++;
const parent = data_models.find(dm => dm.item_group === parent_item_group);
const next_parent = parent?.[parent_group_prop_id];
return next_parent ? infiniteLoop(next_parent, parent_group_prop_id, data_models, result) : result;
}
}
✅ 결과