sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
137 lines (136 loc) • 4.79 kB
TypeScript
import { type StyleValue } from 'vue';
import { type DefaultProps } from '../config';
import { type NodeRect } from '../../utils';
export interface TreeNode {
title?: string | number;
key?: any;
children?: TreeNode[];
disabled?: boolean;
isLeaf?: boolean;
[prop: string]: any;
}
export interface TreeCleanNode {
title: string | number;
key: string | number;
children?: TreeCleanNode[];
}
export interface TreeStateNode {
title: string | number;
key: string | number;
expanded: boolean;
checked: boolean;
children?: TreeStateNode[];
parent: TreeStateNode | null;
indeterminate: boolean;
level: number;
offsetLevel: number;
visible: boolean;
disabled: boolean;
isLeaf: boolean;
loadStatus: 'idle' | 'loading' | 'loaded';
depth: number;
}
export interface TreeNodeKeys {
title?: string;
key?: string;
children?: string;
isLeaf?: string;
}
export declare const defaultNodeKeys: {
title: string;
key: string;
children: string;
isLeaf: string;
};
export type TreeDropType = 'before' | 'after' | 'prepend' | 'append';
export type TreeEditType = 'addSibling' | 'addChild' | 'addRoot' | 'edit' | 'delete';
export interface TreeEditOption {
type: TreeEditType;
icon?: string;
text?: string;
}
export interface TreeProps {
rootStyle?: StyleValue;
rootClass?: string;
data?: TreeNode[];
nodeKeys?: TreeNodeKeys;
defaultExpandAll?: boolean;
defaultExpandedKeys?: (string | number)[];
accordion?: boolean;
selectable?: boolean;
checkStrictly?: boolean;
singleSelectable?: boolean;
leafOnly?: boolean;
current?: string | number;
defaultCheckedKeys?: (string | number)[];
draggable?: boolean;
editable?: boolean;
filterMode?: 'lenient' | 'strict';
filterMethod?: (value: string, node: TreeStateNode) => boolean;
lazy?: boolean;
load?: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[];
autoHeight?: boolean;
allowDrag?: (node: TreeStateNode) => boolean;
beforeDrop?: (draggingNode: TreeStateNode, dropNode: TreeStateNode, type: TreeDropType) => any | Promise<any>;
beforeEdit?: (node: TreeStateNode, title: string, type: TreeEditType) => any | Promise<any>;
editOptions?: TreeEditOption[];
}
export declare const defaultTreeProps: () => DefaultProps<TreeProps>;
export interface TreeEmits {
(e: 'update:current', key: string | number, node: TreeStateNode): void;
(e: 'select', key: string | number, node: TreeStateNode): void;
(e: 'check', event: {
checked: boolean;
node: TreeStateNode;
}): void;
(e: 'node-click', event: {
event: any;
node: TreeStateNode;
}): void;
}
export interface TreeExpose {
setExpanded: (key: string | number, expanded: boolean) => void;
toggleExpanded: (key: string | number) => void;
setExpandedKeys: (keys: (string | number)[]) => void;
getExpandedKeys: () => (string | number)[];
getCheckedKeys: () => (string | number)[];
getHalfCheckedKeys: () => (string | number)[];
setCheckedKeys: (keys: (string | number)[]) => void;
setChecked: (key: string | number, checked: boolean) => void;
addRootNode: () => void;
getCleanTreeData: () => TreeCleanNode[];
filter: (searchString: string) => void;
}
export interface TreeNodeProps {
node: TreeStateNode;
index: number;
}
export interface TreeBranchProps {
nodes: TreeStateNode[];
}
export interface TreeContext {
selectable: TreeProps['selectable'];
draggable: TreeProps['draggable'];
autoHeight: TreeProps['autoHeight'];
editable: TreeProps['editable'];
singleSelectable: TreeProps['singleSelectable'];
leafOnly: TreeProps['leafOnly'];
allowDrag: TreeProps['allowDrag'];
treeData: TreeStateNode[];
setExpandedByNode: (node: TreeStateNode, expanded: boolean) => void;
toggleExpandedByNode: (node: TreeStateNode) => void;
setCheckedByNode: (node: TreeStateNode, checked: boolean) => void;
toggleCheck: (node: TreeStateNode, checked: boolean) => void;
levelup: (node: TreeStateNode) => any | Promise<any>;
leveldown: (node: TreeStateNode) => any | Promise<any>;
edit: (node: TreeStateNode, getEditRect: () => Promise<NodeRect>) => void;
drop: (draggingNode: TreeStateNode, dropNode: TreeStateNode, position: number) => any | Promise<any>;
currentKey: string | number | undefined;
singleSelect: (node: TreeStateNode) => void;
nodeClick: (node: TreeStateNode, event: any) => void;
load: TreeProps['load'];
lazy: boolean;
toTreeStateNodes: (nodes: TreeNode[], parent: TreeStateNode | null) => TreeStateNode[];
setRenderPosition: () => void;
}
export declare const treeContextSymbol: unique symbol;