forked from opentiny/tiny-vue
76 lines
1.9 KiB
Vue
76 lines
1.9 KiB
Vue
<template>
|
|
<div>
|
|
<div>
|
|
<tiny-button @click="insertBefore">添加前节点</tiny-button>
|
|
<tiny-button @click="insertAfter">添加后节点</tiny-button>
|
|
<tiny-button @click="append">添加子节点</tiny-button>
|
|
<tiny-button @click="updateKeyChildren">更新子节点</tiny-button>
|
|
<tiny-button @click="remove">删除当前节点</tiny-button>
|
|
</div>
|
|
<tiny-tree
|
|
ref="treeRef"
|
|
:data="data"
|
|
node-key="id"
|
|
default-expand-all
|
|
:current-node-key="currentNodeKey"
|
|
></tiny-tree>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="jsx">
|
|
import { ref } from 'vue'
|
|
import { Tree as TinyTree, Button as TinyButton } from '@opentiny/vue'
|
|
|
|
let id = 1000
|
|
const treeRef = ref()
|
|
const data = ref([
|
|
{
|
|
id: '1',
|
|
label: '数据 1',
|
|
children: [{ id: '1-1', label: '数据 1-1', children: [{ id: '1-1-1', label: '数据 1-1-1' }] }]
|
|
},
|
|
{
|
|
id: '2',
|
|
label: '数据 2',
|
|
children: [
|
|
{ id: '2-1', label: '数据 2-1' },
|
|
{ id: '2-2', label: '数据 2-2' }
|
|
]
|
|
},
|
|
{
|
|
id: '3',
|
|
label: '数据 3',
|
|
children: [{ id: '3-1', label: '数据 3-1' }]
|
|
}
|
|
])
|
|
const currentNodeKey = ref('1-1')
|
|
function insertBefore() {
|
|
const currentKey = treeRef.value.getCurrentKey()
|
|
|
|
treeRef.value.insertBefore({ id, label: 'insertBefore ' + id }, currentKey)
|
|
id++
|
|
}
|
|
|
|
function insertAfter() {
|
|
const currentKey = treeRef.value.getCurrentKey()
|
|
treeRef.value.insertAfter({ id, label: 'insertAfter ' + id }, currentKey)
|
|
id++
|
|
}
|
|
function append() {
|
|
const currentKey = treeRef.value.getCurrentKey()
|
|
treeRef.value.append({ id, label: 'append ' + id }, currentKey)
|
|
|
|
id++
|
|
}
|
|
function updateKeyChildren() {
|
|
const currentKey = treeRef.value.getCurrentKey()
|
|
|
|
treeRef.value.updateKeyChildren(currentKey, [{ id, label: 'update ' + id }])
|
|
id++
|
|
}
|
|
function remove() {
|
|
const currentKey = treeRef.value.getCurrentKey()
|
|
treeRef.value.remove(currentKey)
|
|
}
|
|
</script>
|