mirror of
https://github.com/element-plus/element-plus.git
synced 2026-03-13 07:51:17 +08:00
* style: use prettier * style: just prettier format, no code changes * style: eslint fix object-shorthand, prefer-const * style: fix no-void * style: no-console
31 lines
849 B
Vue
31 lines
849 B
Vue
<script lang="ts">
|
|
import { h, defineComponent, inject } from 'vue'
|
|
|
|
import type { ComponentInternalInstance } from 'vue'
|
|
import type { RootTreeType } from './tree.type'
|
|
|
|
export default defineComponent({
|
|
name: 'ElTreeNodeContent',
|
|
props: {
|
|
node: {
|
|
type: Object,
|
|
required: true,
|
|
},
|
|
renderContent: Function,
|
|
},
|
|
setup(props) {
|
|
const nodeInstance = inject<ComponentInternalInstance>('NodeInstance')
|
|
const tree = inject<RootTreeType>('RootTree')
|
|
return () => {
|
|
const node = props.node
|
|
const { data, store } = node
|
|
return props.renderContent
|
|
? props.renderContent(h, { _self: nodeInstance, node, data, store })
|
|
: tree.ctx.slots.default
|
|
? tree.ctx.slots.default({ node, data })
|
|
: h('span', { class: 'el-tree-node__label' }, [node.label])
|
|
}
|
|
},
|
|
})
|
|
</script>
|