Files
vxe-table/examples/views/table/tree/Basic.vue
xuliangzhan ec0f0aa14d 更新文档
2019-12-07 13:51:47 +08:00

151 lines
5.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div>
<p class="tip">
树表格通过配置 <table-api-link prop="tree-config"/> 和指定列 <table-column-api-link prop="tree-node"/> 属性来开启树表格还可以通过 <table-api-link prop="trigger"/> 指定触发方式<br>
<span class="red">(不支持大量数据大数据你可以将树结构铺平为列表进行展示)</span>
</p>
<vxe-toolbar>
<template v-slot:buttons>
<vxe-button @click="getTreeExpansionEvent">获取已展开</vxe-button>
<vxe-button @click="$refs.xTree.setAllTreeExpansion(true)">展开所有</vxe-button>
<vxe-button @click="$refs.xTree.clearTreeExpand()">关闭所有</vxe-button>
</template>
</vxe-toolbar>
<vxe-table
border
resizable
tree-config
ref="xTree"
:data="tableData">
<vxe-table-column field="name" title="app.body.label.name"></vxe-table-column>
<vxe-table-column field="size" title="Size" tree-node></vxe-table-column>
<vxe-table-column field="type" title="Type"></vxe-table-column>
<vxe-table-column field="date" title="Date"></vxe-table-column>
</vxe-table>
<p class="demo-code">{{ $t('app.body.button.showCode') }}</p>
<pre>
<code class="xml">{{ demoCodes[0] }}</code>
<code class="javascript">{{ demoCodes[1] }}</code>
</pre>
<p class="tip">默认展开所有树节点通过 <table-api-link prop="tree-config"/>={<table-api-link prop="expandAll"/>: true} 参数设置默认展开所有树节点</p>
<vxe-table
border
:data="tableData"
:tree-config="{children: 'children', expandAll: true}">
<vxe-table-column type="index" width="180" title="序号" tree-node></vxe-table-column>
<vxe-table-column field="name" title="app.body.label.name"></vxe-table-column>
<vxe-table-column title="基本信息">
<vxe-table-column field="size" title="Size"></vxe-table-column>
<vxe-table-column field="type" title="Type"></vxe-table-column>
</vxe-table-column>
<vxe-table-column field="date" title="Date"></vxe-table-column>
</vxe-table>
<p class="demo-code">{{ $t('app.body.button.showCode') }}</p>
<pre>
<code class="xml">{{ demoCodes[2] }}</code>
<code class="javascript">{{ demoCodes[3] }}</code>
</pre>
</div>
</template>
<script>
import hljs from 'highlight.js'
export default {
data () {
return {
tableData: [],
demoCodes: [
`
<vxe-toolbar>
<template v-slot:buttons>
<vxe-button @click="getTreeExpansionEvent">获取已展开</vxe-button>
<vxe-button @click="$refs.xTree.setAllTreeExpansion(true)">展开所有</vxe-button>
<vxe-button @click="$refs.xTree.clearTreeExpand()">关闭所有</vxe-button>
</template>
</vxe-toolbar>
<vxe-table
border
resizable
tree-config
ref="xTree"
:data="tableData">
<vxe-table-column field="name" title="app.body.label.name"></vxe-table-column>
<vxe-table-column field="size" title="Size" tree-node></vxe-table-column>
<vxe-table-column field="type" title="Type"></vxe-table-column>
<vxe-table-column field="date" title="Date"></vxe-table-column>
</vxe-table>
`,
`
export default {
data () {
return {
tableData: []
}
},
created () {
this.tableData = window.MOCK_TREE_DATA_LIST.slice(0)
},
methods: {
getTreeExpansionEvent () {
let treeExpandRecords = this.$refs.xTree.getTreeExpandRecords()
this.$XModal.alert(treeExpandRecords.length)
}
}
}
`,
`
<vxe-table
border
:data="tableData"
:tree-config="{children: 'children', expandAll: true}">
<vxe-table-column type="index" width="180" title="序号" tree-node></vxe-table-column>
<vxe-table-column field="name" title="app.body.label.name"></vxe-table-column>
<vxe-table-column title="基本信息">
<vxe-table-column field="size" title="Size"></vxe-table-column>
<vxe-table-column field="type" title="Type"></vxe-table-column>
</vxe-table-column>
<vxe-table-column field="date" title="Date"></vxe-table-column>
</vxe-table>
`,
`
export default {
data () {
return {
tableData: []
}
},
created () {
this.tableData = window.MOCK_TREE_DATA_LIST.slice(0)
}
}
`
]
}
},
created () {
this.tableData = this.$utils.clone(window.MOCK_TREE_DATA_LIST, true)
},
mounted () {
Array.from(this.$el.querySelectorAll('pre code')).forEach((block) => {
hljs.highlightBlock(block)
})
},
methods: {
getTreeExpansionEvent () {
let treeExpandRecords = this.$refs.xTree.getTreeExpandRecords()
this.$XModal.alert(treeExpandRecords.length)
}
}
}
</script>