@ithinkdt/cloud
Version:
iThinkDT Cloud
33 lines (29 loc) • 1.12 kB
TypeScript
import { MaybeRef, Ref } from 'vue'
import { ModuleItem, Icon } from '@ithinkdt/core'
export interface DtModuleItem extends ModuleItem {
labelEn?: string
parent?: DtModuleItem | undefined
children?: DtModuleItem[]
}
export interface DtModuleData extends PartialKeys<Omit<DtModuleItem, 'icon' | 'children'>, 'key' | 'appCode'> {
icon?: DtModuleItem['icon'] | PartialKeys<Icon, 'id' | 'type'>
children?: DtModuleData[]
}
export declare function useModuleTree(options?: {
appCode?: MaybeRef<string | undefined>
immediate?: boolean
includeApp?: boolean
includeEmptyApp?: boolean
includeAction?: boolean
}): {
tree: Ref<DtModuleItem[]>
loading: Ref<boolean>
getByKey: (key: string) => DtModuleItem | undefined
getParentByKey: (key: string) => DtModuleItem | undefined
refresh: () => Promise<DtModuleItem[]>
save<M extends MaybeArray<RequiredKeys<DtModuleData, 'appCode'>>>(
this: void,
m: M,
): Promise<M extends unknown[] ? DtModuleItem[] : DtModuleItem>
del: (m: Pick<DtModuleItem, 'key'> | DtModuleItem['key']) => Promise<void>
}