diff --git a/src/pages/01_branch-management/MainPage.vue b/src/pages/01_branch-management/MainPage.vue index 2370a4ca..df584464 100644 --- a/src/pages/01_branch-management/MainPage.vue +++ b/src/pages/01_branch-management/MainPage.vue @@ -157,14 +157,21 @@ const { locale } = useI18n(); const { data: branchData } = storeToRefs(branchStore); const treeData = computed(() => { - const arr: BranchWithChildren[] = []; + const map: Record = {}; + const children: Branch[] = []; - branchData.value?.result.forEach((a) => { - if (a.isHeadOffice) arr.push(Object.assign(a, { branch: [] })); - else arr.find((b) => b.id === a.headOfficeId)?.branch.push(a); + branchData.value?.result.forEach((v) => { + if (v.isHeadOffice) map[v.id] = Object.assign(v, { branch: [] }); + else children.push(v); }); - return arr; + children.forEach((v) => { + if (v.headOfficeId && map[v.headOfficeId]) { + map[v.headOfficeId].branch.push(v); + } + }); + + return Object.values(map); }); async function calculateStats() {