UNPKG

vxe-pc-ui

Version:
46 lines (40 loc) 1.64 kB
import XEUtils from 'xe-utils' import type { VxeTreeConstructor } from '../../../types' export function enNodeValue (nodeid: string | number | null) { return XEUtils.eqNull(nodeid) ? '' : encodeURIComponent(`${nodeid}`) } export function deNodeValue (nodeid: string | number | null) { return nodeid ? decodeURIComponent(`${nodeid}`) : nodeid } function countTreeExpand ($xeTree: VxeTreeConstructor, prevNode: any) { let count = 1 if (!prevNode) { return count } const props = $xeTree.props const { transform } = props const reactData = $xeTree.reactData const { updateExpandedFlag } = reactData const internalData = $xeTree.internalData const { treeExpandedMaps } = internalData const { computeChildrenField, computeMapChildrenField } = $xeTree.getComputeMaps() const childrenField = computeChildrenField.value const mapChildrenField = computeMapChildrenField.value const nodeChildren = prevNode[transform ? mapChildrenField : childrenField] if (nodeChildren && updateExpandedFlag && treeExpandedMaps[$xeTree.getNodeId(prevNode)]) { for (let index = 0; index < nodeChildren.length; index++) { count += countTreeExpand($xeTree, nodeChildren[index]) } } return count } export function calcTreeLine ($xeTree: VxeTreeConstructor, node: any, prevNode: any) { const internalData = $xeTree.internalData const { scrollYStore } = internalData const { rowHeight } = scrollYStore let expandSize = 1 if (prevNode) { expandSize = countTreeExpand($xeTree, prevNode) } return (rowHeight || 28) * expandSize - (prevNode ? 1 : 12) }