当前位置:首页 > VUE

vue级联实现多选

2026-02-20 14:07:05VUE

Vue级联多选实现方法

使用Element UI的Cascader组件

Element UI的Cascader组件支持多选功能,通过设置props.multipletrue即可启用。

安装Element UI:

npm install element-ui

引入组件并配置:

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

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

使用Ant Design Vue的Cascader

Ant Design Vue的Cascader组件同样支持多选,需要设置multiple属性。

安装Ant Design Vue:

vue级联实现多选

npm install ant-design-vue

组件使用示例:

<template>
  <a-cascader
    v-model:value="value"
    :options="options"
    multiple
    placeholder="Please select"
  />
</template>

<script>
import { ref } from 'vue';
export default {
  setup() {
    const value = ref([]);
    const options = [
      {
        value: 'zhejiang',
        label: 'Zhejiang',
        children: [
          {
            value: 'hangzhou',
            label: 'Hangzhou',
          }
        ]
      }
    ];
    return {
      value,
      options
    };
  }
};
</script>

自定义实现级联多选

如果需要高度定制化的级联多选,可以结合多个select组件或tree组件自行实现。

基础结构示例:

vue级联实现多选

<template>
  <div>
    <select v-model="selectedProvince" @change="loadCities">
      <option v-for="province in provinces" :value="province.id">
        {{ province.name }}
      </option>
    </select>

    <select v-model="selectedCities" multiple>
      <option v-for="city in cities" :value="city.id">
        {{ city.name }}
      </option>
    </select>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedProvince: null,
      selectedCities: [],
      provinces: [],
      cities: []
    }
  },
  methods: {
    loadCities() {
      // 根据selectedProvince加载对应的城市数据
    }
  }
}
</script>

注意事项

级联多选组件的数据结构通常需要嵌套格式,确保每个节点包含labelvaluechildren属性。

多选时返回的值通常是数组形式,包含所有选中节点的value值。某些组件可能支持返回完整节点对象。

对于大型数据集,考虑使用懒加载方式动态加载子节点数据,以优化性能。

清除已选项的功能通常通过组件的clearable属性控制,部分UI库可能需要手动实现清除逻辑。

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

相关文章

vue 实现级联

vue 实现级联

Vue 实现级联选择 级联选择(Cascader)是一种常见的前端交互组件,通常用于多层级数据的选择(如省市区选择)。以下是基于 Vue 2 和 Vue 3 的实现方法。 使用 Element UI…

vue循环实现多选

vue循环实现多选

Vue循环实现多选的方法 在Vue中实现多选功能,可以通过v-for循环渲染选项,结合v-model绑定数组来记录选中的值。以下是具体实现方式: 基础实现方案 数据准备 在组件的data中定义选…

vue 实现列表多选

vue 实现列表多选

Vue 实现列表多选的方法 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动处理多选逻辑。适用于复选框(checkbox)场景。 <template> &…

js 多选 实现

js 多选 实现

实现多选的 JavaScript 方法 使用复选框(Checkbox)实现多选 通过 HTML 的 checkbox 元素配合 JavaScript 实现多选功能。用户可以选择多个选项,提交时获取所有…

vue中实现多选

vue中实现多选

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

vue实现多选删除

vue实现多选删除

实现多选删除功能 在Vue中实现多选删除功能通常涉及以下几个关键步骤:数据绑定、选择状态管理、删除逻辑处理。以下是具体实现方法: 数据准备与渲染 创建包含选择状态的数据结构,通常是一个对象数组,每个…