vue批量新增el-select和el-tree结合使用-树形结构多选框
时间: 2023-07-24 22:40:41 浏览: 156
如果你想要结合`el-select`和`el-tree`,并且希望实现树形结构的多选框,可以按照以下步骤操作:
1. 创建一个`selected`数组,用于存储用户选择的节点。
2. 在`el-select`组件中,设置`multiple`属性为`true`,并将`v-model`指向`selected`数组。
3. 在`el-tree`组件中,设置`show-checkbox`属性为`true`,并将`v-model`指向`selected`数组。
下面是示例代码:
```
<template>
<div>
<el-select v-model="selected" placeholder="请选择" multiple>
<el-option v-for="node in nodes" :key="node.id" :label="node.name" :value="node.id"></el-option>
</el-select>
<el-tree :data="treeData" :node-key="node => node.id" show-checkbox :default-checked-keys="defaultCheckedKeys" :check-strictly="checkStrictly" :props="props" v-model="selected"></el-tree>
</div>
</template>
<script>
export default {
data() {
return {
selected: [],
nodes: [
{ id: 1, name: '节点1' },
{ id: 2, name: '节点2' },
{ id: 3, name: '节点3' },
],
treeData: [
{
id: 1,
label: '一级 1',
children: [
{
id: 4,
label: '二级 1-1',
},
],
},
{
id: 2,
label: '一级 2',
children: [
{
id: 5,
label: '二级 2-1',
},
{
id: 6,
label: '二级 2-2',
},
],
},
],
defaultCheckedKeys: [4, 5],
checkStrictly: true,
props: {
children: 'children',
label: 'label',
value: 'id',
checkStrictly: true,
emitPath: false,
multiple: true,
checkDescendants: true,
},
}
},
}
</script>
```
在这个示例中,我们创建了一个`selected`数组,用于存储用户选择的节点。在`el-select`组件中,我们设置了`multiple`属性为`true`,并将`v-model`指向`selected`数组。在`el-tree`组件中,我们设置了`show-checkbox`属性为`true`,并将`v-model`指向`selected`数组。同时,我们还设置了其他一些属性,例如`checkStrictly`、`props`等,以便实现树形结构的多选框。
阅读全文