el-select和el-tree结合使用-树形结构多选框

本文介绍了如何在前端开发中结合使用el-select和el-tree组件,实现树形结构的多选功能。通过el-tree获取选中节点,关闭el-select的默认选择,并利用数据关联el-select的输入内容。关键点包括:getCheckedNodes获取选中节点,调整cursor样式,监听check-change事件。文章适合有一定前端基础,需要实现类似功能的开发者参考。
摘要由CSDN通过智能技术生成

接上篇文章需求,选择树形结构的时候有多选的情况,用上一篇的单选并不能解决问题,下图是这次达到的效果

话不多说,上代码

html

<el-select v-model="value" multiple placeholder="请选择" :popper-append-to-body="false">
    <el-option :value="selectTree" class="setstyle" disabled>
		<el-tree :data="list" :props="defaultProps" ref="tree"
		show-checkbox check-strictly :expand-on-click-node="false"
		check-on-click-node @check-change="handleNodeClick"></el-tree>
	</el-option>
</el-select>

js

<script>
	export default {
		data() {
			return {
				value:[],
				selectTree:[],
				defaultProps:{
					children: 'children',
					label: 'label'
				},
				list: [{
					id: 1,
					label
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想要结合`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`等,以便实现树形结构多选框
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值