vue-admin-core
Version:
A Component Library for Vue 3
1 lines • 7.02 kB
Source Map (JSON)
{"version":3,"file":"TreeLine.mjs","sources":["../../../../../../package/components/tree/src/TreeLine.tsx"],"sourcesContent":["/* eslint-disable indent */\nimport { computed, defineComponent, h } from \"vue\";\nimport { treeNodeProps } from \"element-plus/es/components/tree-v2/src/virtual-tree\";\nimport { getPrefixCls } from \"@vue-admin-core/utils/const\";\nconst prefixCls = getPrefixCls(\"tree-node\");\nexport default defineComponent({\n name: \"VacTreeLine\",\n props: {\n node: treeNodeProps.node,\n treeData: {\n type: Array\n },\n indent: {\n type: Number,\n default() {\n return 16;\n }\n }\n },\n setup(props, { slots }) {\n const lastnodeArr = computed(() => {\n const lastnodeArr = [];\n let currentNode: any = props.node;\n while (currentNode) {\n let parentNode = currentNode.parent;\n // 兼容element-plus的 el-tree-v2 (Virtualized Tree 虚拟树)\n if (currentNode.level === 1 && !currentNode.parent) {\n // el-tree-v2的第一层node是没有parent的,必需 treeData 创建一个parent\n if (!props.treeData || !Array.isArray(props.treeData)) {\n throw Error(\n \"if you using el-tree-v2 (Virtualized Tree) of element-plus,element-tree-line required data.\"\n );\n }\n parentNode = {\n children: Array.isArray(props.treeData)\n ? props.treeData.map((item: any) => {\n return { ...item, key: item.id };\n })\n : [],\n level: 0,\n key: \"node-0\",\n parent: null\n };\n }\n if (parentNode) {\n // element-plus的 el-tree-v2 使用的是children和key, 其他使用的是 childNodes和id\n const index = (parentNode.children || parentNode.childNodes).findIndex(\n (item: any) => (item.key || item.id) === (currentNode.key || currentNode.id)\n );\n lastnodeArr.unshift(index === (parentNode.children || parentNode.childNodes).length - 1);\n }\n currentNode = parentNode;\n }\n return lastnodeArr;\n });\n\n const lineNodes = computed(() => {\n const lineNodes = [];\n for (let i = 1; i < props.node.level; i++) {\n if (lastnodeArr.value[i] && props.node.level - 1 !== i) {\n continue;\n }\n lineNodes.push(\n h(\"span\", {\n class: {\n [`${prefixCls}-line-var`]: true,\n \"last-node-isLeaf-line\": lastnodeArr.value[i] && props.node.level - 1 === i\n },\n style: { left: props.indent * i - 6 + \"px\" }\n })\n );\n }\n\n return lineNodes;\n });\n return () => {\n return h(\n \"span\",\n {\n class: `${prefixCls}-label-wrapper`\n },\n [\n slots.default\n ? slots.default({ node: props.node, data: props.node.data })\n : h(\"span\", { class: \"el-tree-node__label\" }, [props.node.label]),\n ...lineNodes.value,\n props.node.level !== 1\n ? h(\"span\", {\n class: `${prefixCls}-line-hor`,\n style: {\n width: \"10px\",\n left: (props.node.level - 1) * props.indent - 6 + \"px\"\n }\n })\n : null\n ]\n );\n };\n }\n});\n"],"names":["prefixCls","getPrefixCls","defineComponent","name","props","node","treeNodeProps","treeData","type","Array","indent","Number","default","setup","slots","lastnodeArr","computed","currentNode","parentNode","parent","level","isArray","Error","children","map","item","key","id","index","childNodes","findIndex","unshift","length","lineNodes","i","value","push","h","class","style","left","data","label","width"],"mappings":"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"}