UNPKG

infogo-tree

Version:

A vue tree component using virtual list.

198 lines (197 loc) 7.64 kB
import Vue, { CreateElement, VNode } from 'vue'; import TreeStore, { TreeNode } from '../store'; import { FilterFunctionType } from '../store/tree-store'; import { ITreeNodeOptions } from '../store/tree-node'; import { TreeNodeKeyType, dragHoverPartEnum } from '../const'; declare type AnyPropsArrayType = Array<{ [key: string]: any; }>; declare type VModelType = TreeNodeKeyType | TreeNodeKeyType[]; declare const _default: import("vue/types/vue").ExtendedVue<Vue & { $refs: { scrollArea: HTMLDivElement; iframe: HTMLIFrameElement; }; /** 非响应数据,不会被 Vue 监听 */ nonReactive: { /** Tree Store */ store: TreeStore; /** block 节点(所有可见节点) */ blockNodes: TreeNode[]; }; }, { /** 未加载选中的节点,展示已选时生成,其他情况下没用 */ unloadCheckedNodes: TreeNode[]; /** 可见节点个数 */ blockLength: number; /** 可见节点总高度 */ blockAreaHeight: number; /** 顶部填充高度 */ topSpaceHeight: number; /** 底部填充高度 */ bottomSpaceHeight: number; /** 实际渲染节点个数 */ renderAmount: number; /** renderAmount 缓存 */ renderAmountCache: number; /** 渲染节点(实际渲染节点) */ renderNodes: TreeNode[]; /** 渲染开始下标 */ renderStart: number; /** renderStart 缓存 */ renderStartCache: number; /** 是否正在载入根节点,组件内部调用 load 时会改变此值 */ isRootLoading: boolean; /** 缓存的 value ,用于 value 变化时与之做比对 */ valueCache: VModelType; /** 防抖计时器 id */ debounceTimer: number | undefined; }, { /** 使用此方法重置树数据,可避免大量数据被 vue 监听 */ setData(data: AnyPropsArrayType): void; setChecked(key: TreeNodeKeyType, value: boolean): void; setCheckedKeys(keys: TreeNodeKeyType[], value: boolean, triggerEvent?: boolean, triggerDataChange?: boolean, isCheckAll?: boolean): void; checkAll(): void; clearChecked(): void; setSelected(key: TreeNodeKeyType, value: boolean): void; clearSelected(): void; setExpand(key: TreeNodeKeyType, value: boolean, expandParent?: boolean): void; setExpandKeys(keys: TreeNodeKeyType[], value: boolean): void; setExpandAll(value: boolean): void; getCheckedNodes(ignoreMode?: "children" | "none" | "parents" | undefined): TreeNode[]; getCheckedKeys(ignoreMode?: "children" | "none" | "parents" | undefined): TreeNodeKeyType[]; getIndeterminateNodes(): TreeNode[]; getSelectedNode(): TreeNode | null; getSelectedKey(): string | number | null; getExpandNodes(): TreeNode[]; getExpandKeys(): TreeNodeKeyType[]; getCurrentVisibleNodes(): TreeNode[]; getNode(key: TreeNodeKeyType): TreeNode | null; /** 返回树形结构的节点数据 */ getTreeData(): TreeNode[]; /** 返回扁平化后的节点数据 */ getFlatData(): TreeNode[]; getNodesCount(): number; insertBefore(insertedNode: string | number | ITreeNodeOptions, referenceKey: TreeNodeKeyType): TreeNode | null; insertAfter(insertedNode: string | number | ITreeNodeOptions, referenceKey: TreeNodeKeyType): TreeNode | null; append(insertedNode: string | number | ITreeNodeOptions, parentKey: TreeNodeKeyType): TreeNode | null; prepend(insertedNode: string | number | ITreeNodeOptions, parentKey: TreeNodeKeyType): TreeNode | null; remove(removedKey: TreeNodeKeyType): TreeNode | null; filter(keyword: string, filterMethod?: FilterFunctionType | undefined): void; /** * 展示已选节点 */ showCheckedNodes(showUnloadCheckedNodes?: boolean | undefined): void; /** * 从远程加载根节点 */ loadRootNodes(): Promise<void>; /** * 滚动到指定节点位置 * @param key 要滚动的节点 * @param verticalPosition 滚动的垂直位置,可选为 'top', 'center', 'bottom' 或距离容器可视顶部距离的数字,默认为 'top' */ scrollTo(key: TreeNodeKeyType, verticalPosition?: number | "top" | "center" | "bottom"): void; /** 更新展开的节点 */ updateExpandedKeys(): void; updateUnloadStatus(): void; handleNodeCheck(node: TreeNode): void; handleNodeSelect(node: TreeNode): void; handleNodeExpand(node: TreeNode): void; handleNodeDrop(data: TreeNode, e: DragEvent, hoverPart: dragHoverPartEnum): void; /** * 触发多选 input 事件 */ emitCheckableInput(checkedNodes: TreeNode[], checkedKeys: TreeNodeKeyType[]): void; /** * 触发单选 input 事件 */ emitSelectableInput(selectedNode: TreeNode | null, selectedKey: string | number | null): void; /** * 转发 store 所触发的事件,通过 vue 组件触发事件可被其他组件监听 */ attachStoreEvents(): void; /** * 重置空白与滚动高度 */ resetSpaceHeights(): void; /** * 计算可见节点 */ updateBlockNodes(): void; /** * 更新 block 数据相关信息 */ updateBlockData(): void; /** * 计算渲染节点数量,并计算渲染节点 */ updateRender(): void; /** * 计算需要渲染的节点的数量,只要容器高度(clientHeight)不变,这个数量一般就不会变 */ updateRenderAmount(): void; /** * 计算渲染的节点,基于 scrollTop 计算当前应该渲染哪些节点 */ updateRenderNodes(isScroll?: boolean): void; handleTreeScroll(): void; initializeNonReactiveData(): void; defaultClassName(node: TreeNode): string; }, { topSpaceStyles: object; bottomSpaceStyles: object; wrapperCls: string[]; scrollAreaCls: string[]; blockAreaCls: string[]; emptyCls: string[]; emptyTextDefaultCls: string[]; loadingCls: string[]; loadingWrapperCls: string[]; loadingIconCls: string[]; iframeCls: string[]; treeNodeListeners: object; }, { value: string | number | TreeNodeKeyType[]; data: AnyPropsArrayType; unloadDataList: AnyPropsArrayType; showUnloadCheckedNodes: boolean; emptyText: string; titleField: string; selectShowField: string; keyField: string; childStr: string; replenishSelect: boolean; disabledFn: Function; separator: string; checkable: boolean; selectable: boolean; filteredNodeCheckable: boolean; cascade: boolean; cascadeLoose: boolean; enableLeafOnly: boolean; disableAll: boolean; defaultExpandAll: boolean; defaultExpandedKeys: TreeNodeKeyType[]; expandedKeys: TreeNodeKeyType[]; draggable: boolean; droppable: boolean; beforeDropMethod: (dragKey: TreeNodeKeyType, dropKey: TreeNodeKeyType, hoverPart: dragHoverPartEnum) => boolean; allowDrag: (dragKey: TreeNode) => boolean; ignoreMode: "children" | "none" | "parents"; autoLoad: boolean; load: (node: TreeNode | null, resolve: Function, reject: Function) => any; render: (h: CreateElement, node: TreeNode) => VNode; filterMethod: FilterFunctionType; expandOnFilter: boolean; unselectOnClick: boolean; loading: boolean; nodeMinHeight: number; nodeIndent: number; renderNodeAmount: number; bufferNodeAmount: number; nodeClassName: any; usePadding: boolean; itemSize: number; }>; export default _default;