Files
simrsx-fe/app/handlers/_shared.handler.ts
2025-10-06 10:38:10 +07:00

31 lines
1.4 KiB
TypeScript

// types
import type { Division } from '~/models/division'
import type { TreeItem } from '~/models/_model'
// variables
export const medicineGroups = ref<{ value: string; label: string }[]>([])
export const medicineMethods = ref<{ value: string; label: string }[]>([])
export const encounterClasses = ref<{ value: string; label: string }[]>([])
export const divisions = ref<{ value: string | number; label: string }[]>([])
export const installations = ref<{ value: string; label: string }[]>([])
export const specialists = ref<{ value: string | number; label: string }[]>([])
export const uoms = ref<{ value: string; label: string }[]>([])
export const units = ref<{ value: string | number; label: string }[]>([])
/**
* Convert division response (with childrens) to TreeItem[]
* @param divisions Array of division objects from API
* @returns TreeItem[]
*/
export function convertDivisionToTreeItems(divisions: any[]): TreeItem[] {
return divisions.filter((division: Division) => !division.parent_id).map((division: Division) => ({
value: division.id ? String(division.id) : division.code,
label: division.name,
hasChildren: Array.isArray(division.childrens) && division.childrens.length > 0,
children:
Array.isArray(division.childrens) && division.childrens.length > 0
? convertDivisionToTreeItems(division.childrens)
: undefined,
}))
}