UNPKG

@jdlinker/linker

Version:

jdLinker 系统模块

56 lines (52 loc) 1.22 kB
import { isBoolean, isEqual } from 'lodash-es'; export type DropdownButtonOptions = { label: string; value: string; children?: DropdownButtonOptions[]; [key: string]: any; }; export const getComponent = (type: string): string => { switch (type) { case 'int': case 'long': case 'float': case 'double': return type; case 'metric': case 'enum': case 'boolean': return 'menu'; case 'date': return 'date'; case 'tree': return 'tree'; case 'file': return 'file'; case 'geoPoint': return 'geoPoint'; default: return 'input'; } }; export const getOption = ( data: any[], value?: string | number | boolean, key: string = 'name' ): DropdownButtonOptions | any => { let option; if (value === undefined && value === null) return option; const _value = isBoolean(value) ? String(value) : value; for (let i = 0; i < data.length; i++) { const item = data[i]; if (isEqual(item[key], _value)) { option = data[i]; break; } else if (item.children && item.children.length) { option = getOption(item.children, value, key); if (option) { break; } } } return option; };