UNPKG

@ohayojp/util

Version:

Universal toolset of ohayojp.

81 lines (80 loc) 3.52 kB
import { NzTreeNode } from 'ng-zorro-antd/core/tree'; import { NzSafeAny } from 'ng-zorro-antd/core/types'; import { OhayoConfigService } from '../config'; export interface ArrayServiceTreeToArrOptions { /** 深度项名,默认:`'deep'` */ deepMapName?: string; /** 扁平后数组的父数据项名,默认:`'parent'` */ parentMapName?: string; /** 源数据子项名,默认:`'children'` */ childrenMapName?: string; /** 是否移除 `children` 节点,默认:`true` */ clearChildren?: boolean; /** 转换成数组结构时回调 */ cb?: (item: NzSafeAny, parent: NzSafeAny, deep: number) => void; } export interface ArrayServiceArrToTreeOptions { /** 编号项名,默认:`'id'` */ idMapName?: string; /** 父编号项名,默认:`'parent_id'` */ parentIdMapName?: string; /** 子项名,默认:`'children'` */ childrenMapName?: string; /** 转换成树数据时回调 */ cb?: (item: NzSafeAny) => void; } export interface ArrayServiceArrToTreeNodeOptions { /** 编号项名,默认:`'id'` */ idMapName?: string; /** 父编号项名,默认:`'parent_id'` */ parentIdMapName?: string; /** 标题项名,默认:`'title'` */ titleMapName?: string; /** 设置为叶子节点项名,若数据源不存在时自动根据 `children` 值决定是否为叶子节点,默认:`'isLeaf'` */ isLeafMapName?: string; /** 节点 Checkbox 是否选中项名,默认:`'checked'` */ checkedMapname?: string; /** 节点本身是否选中项名,默认:`'selected'` */ selectedMapname?: string; /** 节点是否展开(叶子节点无效)项名,默认:`'expanded'` */ expandedMapname?: string; /** 设置是否禁用节点(不可进行任何操作)项名,默认:`'disabled'` */ disabledMapname?: string; /** 转换成树数据后,执行的递归回调 */ cb?: (item: NzSafeAny, parent: NzSafeAny, deep: number) => void; } export interface ArrayServiceGetKeysByTreeNodeOptions { /** 是否包含半选状态的值,默认:`true` */ includeHalfChecked?: boolean; /** 是否重新指定 `key` 键名,若不指定表示使用 `NzTreeNode.key` 值 */ keyMapName?: string; /** 回调,返回一个值 `key` 值,优先级高于其他 */ cb?: (item: NzTreeNode, parent: NzTreeNode, deep: number) => NzSafeAny; } export declare class ArrayService { private c; constructor(cog: OhayoConfigService); /** * 将树结构转换成数组结构 */ treeToArr(tree: NzSafeAny[], options?: ArrayServiceTreeToArrOptions): NzSafeAny[]; /** * 数组转换成树数据 */ arrToTree(arr: NzSafeAny[], options?: ArrayServiceArrToTreeOptions): NzSafeAny[]; /** * 数组转换成 `nz-tree` 数据源,通过 `options` 转化项名,也可以使用 `options.cb` 更高级决定数据项 */ arrToTreeNode(arr: NzSafeAny[], options?: ArrayServiceArrToTreeNodeOptions): NzTreeNode[]; /** * 递归访问整个树 */ visitTree(tree: NzSafeAny[], cb: (item: NzSafeAny, parent: NzSafeAny, deep: number) => void, options?: { /** 子项名,默认:`'children'` */ childrenMapName?: string; }): void; /** * 获取所有已经选中的 `key` 值 */ getKeysByTreeNode(tree: NzTreeNode[], options?: ArrayServiceGetKeysByTreeNodeOptions): NzSafeAny[]; }