UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 6.81 kB
{"version":3,"file":"helper.mjs","sources":["../../../src/cascader/core/helper.ts"],"sourcesContent":["import isNumber from 'lodash/isNumber';\nimport isObject from 'lodash/isObject';\nimport isArray from 'lodash/isArray';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n TreeNode,\n CascaderContextType,\n TdCascaderProps,\n CascaderValue,\n TreeNodeValue,\n TreeOptionData,\n} from '../interface';\n\n/**\n * 单选状态下内容\n * @param isHover\n * @param cascaderContext\n * @returns\n */\nexport function getSingleContent(cascaderContext: CascaderContextType): string {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n if (multiple || (value !== 0 && !value)) return '';\n\n if (isArray(value)) return '';\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!(node && node.length)) {\n return value as string;\n }\n const path = node && node[0].getPath();\n if (path && path.length) {\n return showAllLevels ? path.map((node: TreeNode) => node.label).join(' / ') : path[path.length - 1].label;\n }\n return value as string;\n}\n\n/**\n * 多选状态下选中内容\n * @param isHover\n * @param cascaderContext\n * @returns\n */\nexport function getMultipleContent(cascaderContext: CascaderContextType) {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n\n if (!multiple) return [];\n if (multiple && !isArray(value)) return [];\n\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!node) return [];\n\n return (value as TreeNodeValue[])\n .map((item: TreeNodeValue) => {\n const node = treeStore.getNodes(item);\n return showAllLevels ? getFullPathLabel(node[0]) : node[0].label;\n })\n .filter((item) => !!item);\n}\n\n/**\n * 面板数据计算方法\n * @param treeNodes\n * @returns\n */\nexport function getPanels(treeNodes: CascaderContextType['treeNodes']) {\n const panels: TreeNode[][] = [];\n treeNodes.forEach((node: TreeNode) => {\n if (panels[node.level]) {\n panels[node.level].push(node);\n } else {\n panels[node.level] = [node];\n }\n });\n return panels;\n}\n\n/**\n * 获取node的全部路径\n * @param node\n * @returns\n */\nexport function getFullPathLabel(node: TreeNode, separator = '/') {\n return node\n ?.getPath()\n .map((node: TreeNode) => node.label)\n .join(separator);\n}\n\n/**\n * treeValue计算方法\n * @param value\n * @returns\n */\nexport const getTreeValue = (value: CascaderContextType['value']) => {\n let treeValue: TreeNodeValue[] = [];\n if (isArray(value)) {\n if (value.length > 0 && isObject(value[0])) {\n treeValue = (value as TreeOptionData[]).map((val) => val.value);\n } else if (value.length) {\n treeValue = value as TreeNodeValue[];\n }\n } else if (value) {\n if (isObject(value)) {\n treeValue = [(value as TreeOptionData).value];\n } else {\n treeValue = [value];\n }\n }\n return treeValue;\n};\n\n/**\n * 按数据类型计算通用数值\n * @param value\n * @param showAllLevels\n * @param multiple\n * @returns\n */\nexport const getCascaderValue = (value: CascaderValue, valueType: TdCascaderProps['valueType'], multiple: boolean) => {\n if (valueType === 'single') {\n return value;\n }\n if (multiple) {\n return (value as Array<CascaderValue>).map((item: TreeNodeValue[]) => item[item.length - 1]);\n }\n return value[(value as Array<CascaderValue>).length - 1];\n};\n\n/**\n * 空值校验\n * 补充value为Number时的空值校验逻辑,排除NaN\n * @param value\n * @returns\n */\nexport function isEmptyValues(value: unknown): boolean {\n if (isNumber(value) && !isNaN(value)) return false;\n return isEmpty(value);\n}\n\n/**\n * 初始化数据校验\n * @param value\n * @param cascaderContext\n * @returns boolean\n */\nexport function isValueInvalid(value: CascaderValue, cascaderContext: CascaderContextType) {\n const { multiple, showAllLevels } = cascaderContext;\n return (multiple && !isArray(value)) || (!multiple && isArray(value) && !showAllLevels);\n}\n"],"names":["isArray","node","treeNodes","isObject","treeValue","isNumber"],"mappings":"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"}