import type { DslDefinition } from '@oinone/kunlun-dsl'; import type { ActiveRecord, Pagination, RefreshCallChainingParameters } from '@oinone/kunlun-engine'; import { TreeNode } from '@oinone/kunlun-shared'; import type { Slot } from 'vue'; export type SimpleTreeModelField = { model?: string; fieldName: string; }; /** * 树节点元数据 */ export interface TreeNodeMetadata { /** * 唯一键 */ key: string; /** * 标题 */ title?: string; /** * 模型编码 */ model: string; /** * 数据标题 */ label?: string; /** * 数据标题字段 */ labelFields?: string[]; /** * 树搜索字段 */ searchFields?: string[]; /** * 上级节点 */ parent?: TreeNodeMetadata; /** * 子节点 */ child?: TreeNodeMetadata; /** * 与上级节点之间的关系字段 */ references?: SimpleTreeModelField; /** * 自关联的关系字段 */ selfReferences?: SimpleTreeModelField; /** * 过滤条件 */ filter?: string; /** * 点击搜索字段 */ search?: SimpleTreeModelField; /** * 行内按钮插槽 */ rowActionsSlot?: Slot; /** * 当配置了 nodes 节点时,根元数据节点具有该属性 */ nodes?: DslDefinition; /** * 图标 iconfont/https */ icon?: string; /** * 是否翻译label 默认为false */ translate?: boolean; /** * 是否为自动展开层级的末端 默认为 undefined/false */ expandEndLevel?: boolean; /** * 其他属性 */ [key: string]: unknown; } export interface TreeData { label?: string; metadata: TreeNodeMetadata; pagination?: Pagination; data?: ActiveRecord; isLeaf?: boolean; } export interface TreeRefreshCallChainingParameters extends RefreshCallChainingParameters { node?: TreeNode; isSkipRefreshSelf?: boolean; } export declare enum DropMode { DropCurrent = "current", DropEarliest = "earliest" }