fix: normalizeTreeData

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2026-06-09 17:39:55 +07:00
parent 136a17ce8c
commit 7d1bfd33ff

View file

@ -13,6 +13,27 @@ import type {
const { showLoader, hideLoader } = useCounterMixin();
/**
* children array
* q-tree children undefined
*/
function normalizeTreeData(nodes: DataStructureTree[]): DataStructureTree[] {
return nodes.map((node) => {
// Set children to [] for orgLevel: 4, otherwise recurse if children exist
const normalizedChildren =
node.orgLevel === 4
? []
: node.children
? normalizeTreeData(node.children)
: node.children;
return {
...node,
children: normalizedChildren,
};
});
}
export const useStructureTree = defineStore("structureTree", () => {
const activeId = ref<string>("");
const dataStore = ref<{ [key: string]: DataStructureTree[] }>({});
@ -27,11 +48,11 @@ export const useStructureTree = defineStore("structureTree", () => {
*/
async function fetchStructureTree(sysKey: string, isLoad: boolean = false) {
if (dataStore.value[sysKey]) {
return dataStore.value[sysKey] || [];
return normalizeTreeData(dataStore.value[sysKey]) || [];
} else {
activeId.value === "" && (await fetchActive());
const data = await fetchData(sysKey, isLoad);
return data || [];
return normalizeTreeData(data || []);
}
}