刘光辉
9 小时以前 0dfe84494048ce27ba8449831782128412d3eb13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import type { FieldNames } from './props';
 
export const TREE_PATH_LABEL_FIELD = '__jnpfTreePathLabel';
 
export function setTreePathLabels(treeData: any[], fieldNames: Required<FieldNames>, parentLabels: string[] = []) {
  for (const node of treeData) {
    const label = node[fieldNames.label];
    const labels = label === undefined || label === null || label === '' ? parentLabels : [...parentLabels, String(label)];
    node[TREE_PATH_LABEL_FIELD] = labels.join('/');
 
    const children = node[fieldNames.children];
    if (Array.isArray(children) && children.length) setTreePathLabels(children, fieldNames, labels);
  }
  return treeData;
}