当前位置:首页 > VUE

vue-treeselect实现多选

2026-02-22 19:51:36VUE

vue-treeselect 多选实现方法

安装 vue-treeselect 包

npm install @riophae/vue-treeselect

引入并注册组件

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

export default {
  components: { Treeselect },
  // ...
}

基础多选配置

data() {
  return {
    value: [], // 多选值必须是数组
    options: [
      {
        id: 'group1',
        label: 'Group 1',
        children: [
          { id: 'item1', label: 'Item 1' },
          { id: 'item2', label: 'Item 2' }
        ]
      }
    ]
  }
}

模板中使用

<treeselect
  v-model="value"
  :multiple="true"
  :options="options"
  placeholder="Select items..."
/>

高级多选功能

限制选择数量

props: {
  limit: 3, // 最多选择3项
  limitText: count => `已选 ${count} / 3`
}

扁平化显示选项

props: {
  flattenSearchResults: true
}

禁用选项

options: [
  {
    id: 'item1',
    label: 'Item 1',
    isDisabled: true // 禁用此项
  }
]

样式自定义

修改默认样式

.vue-treeselect__control {
  border-radius: 5px;
}

.vue-treeselect__multi-value-item {
  background-color: #409eff;
}

注意事项

多选时必须将 v-model 初始化为数组

value: [] // 正确
value: null // 错误,会导致单选模式

异步加载选项时处理多选

async loadOptions({ action, parentNode, callback }) {
  if (action === 'LOAD_CHILDREN_OPTIONS') {
    const res = await api.getChildren(parentNode.id)
    callback(null, res.data)
  }
}

多选值变化监听

vue-treeselect实现多选

watch: {
  value(newVal) {
    console.log('Selected values:', newVal)
  }
}

标签: 多选vue
分享给朋友:

相关文章

vue实现选中单元格

vue实现选中单元格

Vue 实现选中单元格的方法 基础实现思路 在 Vue 中实现选中单元格功能,通常可以通过动态绑定 class 或 style 来实现。以下是一个基于表格的简单实现示例: <templ…

vue实现排序

vue实现排序

Vue 实现排序的方法 在 Vue 中实现排序可以通过多种方式完成,以下是一些常见的方法: 使用计算属性排序数组 计算属性非常适合对数据进行排序,因为它会在依赖的数据变化时自动更新。以下是一个示例:…

vue实现复选

vue实现复选

Vue 实现复选框 在 Vue 中实现复选框可以通过 v-model 指令绑定数据,同时结合 input 元素的 type="checkbox" 属性来实现。以下是几种常见的实现方式: 单个复选框…

vue如何实现

vue如何实现

Vue 实现方法 在 Vue 中实现功能通常涉及组件化开发、状态管理和响应式数据绑定。以下是几种常见的实现方式: 组件化开发 使用 Vue 的单文件组件(.vue 文件)结构,将 UI 拆分为可复用…

vue监听实现

vue监听实现

Vue 监听实现方法 在 Vue 中可以通过多种方式实现监听数据变化或事件触发,以下是常见的几种方法: 使用 watch 选项 watch 是 Vue 提供的核心功能之一,用于观察和响应 Vue 实…

vue实现滚屏

vue实现滚屏

实现滚屏的基本方法 在Vue中实现滚屏效果可以通过多种方式完成,常见的有原生JavaScript滚动方法、第三方库或CSS动画。以下是几种常见实现方式: 使用window.scrollTo或Elem…