<template> <div> <a-directory-tree multiple default-expand-all @select="onSelect" :icon='getIcon' > <a-tree-node key="0-0" title="parent 0"> <a-tree-node key="0-0-0" title="leaf 0-0" is-leaf/> <a-tree-node key="0-0-1" title="leaf 0-1" is-leaf/> </a-tree-node> </a-directory-tree> </div> </template> <script> const treeData = [ { title: 'parent 1', key: '0-0', slots: { icon: 'smile', }, children: [ { title: 'leaf', key: '0-0-0', slots: { icon: 'meh' } }, { title: 'leaf', key: '0-0-1', scopedSlots: { icon: 'custom' } }, ], }, ] export default { data () { return { treeData, dirIcon: '<a-icon slot="smile" type="smile-o" />' } }, methods: { onSelect (selectedKeys, info) { console.log('selected', selectedKeys, info) }, onCheck (checkedKeys, info) { console.log('onCheck', checkedKeys, info) }, getIcon(props) { const { isLeaf, expanded } = props; if (isLeaf) { return <a-icon type="home" />; } return <a-icon type={expanded ? "folder-open" : "folder"} />; } }, } </script>
主要是getIcon這個方法,拉進行目錄和文件的區分,然后返回一個slot給組件即可