31 lines
1.4 KiB
TypeScript
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,
|
|
}))
|
|
}
|