当前位置:首页 > VUE

Vue实现级联多选

2026-02-11 06:28:48VUE

Vue实现级联多选的方法

使用Element UI的Cascader组件

Element UI提供了el-cascader组件,支持多选功能。通过设置props属性中的multipletrue即可启用多选。

<template>
  <el-cascader
    v-model="selectedOptions"
    :options="options"
    :props="{ multiple: true }"
    clearable
  />
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: [],
      options: [
        {
          value: 'guide',
          label: 'Guide',
          children: [
            {
              value: 'disciplines',
              label: 'Disciplines',
              children: [
                { value: 'consistency', label: 'Consistency' }
              ]
            }
          ]
        }
      ]
    }
  }
}
</script>

自定义级联多选组件

如果需要更灵活的控制,可以基于el-selectel-tree自定义级联多选组件。通过组合这两个组件,实现多级选择功能。

Vue实现级联多选

<template>
  <el-select
    v-model="selectedValues"
    multiple
    collapse-tags
    placeholder="请选择"
  >
    <el-option :value="treeDataRef">
      <el-tree
        ref="tree"
        :data="treeData"
        show-checkbox
        node-key="id"
        :props="defaultProps"
        @check-change="handleCheckChange"
      />
    </el-option>
  </el-select>
</template>

<script>
export default {
  data() {
    return {
      selectedValues: [],
      treeData: [
        {
          id: 1,
          label: '一级 1',
          children: [
            { id: 4, label: '二级 1-1' }
          ]
        }
      ],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
    }
  },
  methods: {
    handleCheckChange(data, checked, indeterminate) {
      this.selectedValues = this.$refs.tree.getCheckedNodes()
    }
  }
}
</script>

使用第三方库vue-treeselect

vue-treeselect是一个专门用于树形选择和多选的Vue组件,支持级联多选功能。

Vue实现级联多选

安装依赖:

npm install @riophae/vue-treeselect

使用示例:

<template>
  <treeselect
    v-model="value"
    :multiple="true"
    :options="options"
  />
</template>

<script>
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'

export default {
  components: { Treeselect },
  data() {
    return {
      value: null,
      options: [
        {
          id: 'a',
          label: 'a',
          children: [
            { id: 'aa', label: 'aa' }
          ]
        }
      ]
    }
  }
}
</script>

注意事项

  • 数据结构需要符合组件要求,通常包含value/labelchildren字段
  • 多选时注意性能问题,大数据量情况下建议使用虚拟滚动
  • 清除选择时可能需要手动处理,特别是自定义组件时
  • 移动端适配可能需要额外样式调整

以上方法可以根据项目需求和技术栈选择合适的实现方案。Element UI方案适合快速集成,自定义组件灵活性更高,而vue-treeselect提供了更专业的树形选择功能。

标签: 多选级联
分享给朋友:

相关文章

vue中实现多选

vue中实现多选

Vue中实现多选的方法 使用v-model绑定数组 在Vue中,可以通过v-model绑定一个数组来实现多选功能。当用户选择多个选项时,选中的值会自动添加到数组中。 <template>…

vue 实现多选按钮

vue 实现多选按钮

实现多选按钮的基本方法 在Vue中实现多选按钮可以通过v-model绑定数组来管理选中状态。以下是一个基础示例: <template> <div> <lab…

实现多选删除vue

实现多选删除vue

实现多选删除功能(Vue) 在Vue中实现多选删除功能,通常涉及以下关键步骤: 数据绑定与选择状态管理 创建一个数组存储可选择的数据项,并为每个项添加选中状态属性。例如: data() {…

react实现级联

react实现级联

实现级联选择器的基本思路 级联选择器通常用于处理具有层级关系的数据,例如省市区选择。React中可以通过状态管理和组件联动实现这一功能。 数据结构的组织 采用嵌套结构或扁平化结构存储级联数据。嵌套结…

react native 多选实现

react native 多选实现

实现多选功能的方法 在React Native中实现多选功能可以通过多种方式完成,以下是一些常见的实现方法: 使用FlatList或SectionList结合多选逻辑 通过列表组件渲染选项,并在每个…

兴趣多选实现 php

兴趣多选实现 php

实现兴趣多选功能的PHP方法 表单设计 使用HTML的<select multiple>或复选框组实现多选功能。例如: <form method="post" action…