vue-treeselect组件使用

官网传送门

  1. 安装依赖
npm install --save @riophae/vue-treeselect
  1. 引入组件
<template>
</template>

<script>
  // 引入组件
  import Treeselect from '@riophae/vue-treeselect'
  // 引入样式
  import '@riophae/vue-treeselect/dist/vue-treeselect.css'

  export default {
    // 注册组件
    components: { Treeselect },
    data() {
      return {}
    },
  }
</script>
  1. template中添加组件
<template>
  <div id="app">
    <treeselect 
      v-model="value" 
      :multiple="true" 
      :options="options" 
      placeholder="请选择"
      noChildrenText="暂无数据"
      noOptionsText="暂无数据"
      noResultsText="暂无数据"
      flattenSearchResults="true"
      :normalizer="normalizerTree"
    />
  </div>
</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
        options: [ {
          id: 'a',
          label: 'a',
          children: [ {
            id: 'aa',
            label: 'aa',
          }, {
            id: 'ab',
            label: 'ab',
          } ],
        }, {
          id: 'b',
          label: 'b',
        }, {
          id: 'c',
          label: 'c',
        } ],
        normalizerTree(node) {
          if (node.children && !node.children.length) {
            delete node.children
          }
          return {
            id: node.id,
            label: node.label,
            children: node.children
          }
        }
      }
    },
  }
</script>
  1. 添加方法
<template>
  <div id="app">
    <treeselect 
      v-model="value" 
      :multiple="true" 
      :options="options" 
      placeholder="请选择"
      noChildrenText="暂无数据"
      noOptionsText="暂无数据"
      noResultsText="暂无数据"
      flattenSearchResults="true"
      :normalizer="normalizerTree"
      @input="handleChange"
    />
  </div>
</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
        options: [ {
          id: 'a',
          label: 'a',
          children: [ {
            id: 'aa',
            label: 'aa',
          }, {
            id: 'ab',
            label: 'ab',
          } ],
        }, {
          id: 'b',
          label: 'b',
        }, {
          id: 'c',
          label: 'c',
        } ],
        normalizerTree(node) {
          if (node.children && !node.children.length) {
            delete node.children
          }
          return {
            id: node.id,
            label: node.label,
            children: node.children
          }
        }
      }
    },
    methods: {
      handleChange() {
        //根据当前有效值添加操作
        console.log(this.value)
      }
    }
  }
</script>
  1. 重新定义颜色
/deep/ .vue-treeselect__multi-value-item {
  color: green;
}
/deep/ .vue-treeselect__value-remove {
  color: green;
}
/deep/ .vue-treeselect .vue-treeselect__control:focus-widthin {
  border: green;
  box-shadow: 0 0 2pcx 2px green;
}
/deep/ .vue-treeselect .vue-treeselect__checkbox--checked {
  border: green;
  background: green;
}
/deep/ .vue-treeselect .vue-treeselect__checkbox--checked:hover {
  border: green;
  background: green;
}
/deep/ .vue-treeselect .vue-treeselect__checkbox--indeterminate{
  border: green;
  background: green;
}
/deep/ .vue-treeselect .vue-treeselect__checkbox--indeterminate:hover {
  border: green;
  background: green;
}
/deep/ .vue-treeselect .vue-treeselect__label--container:hover  .vue-treeselect__checkbox--checked{
  border: green;
  background: green;
}
/deep/ .vue-treeselect .vue-treeselect__label--container:hover  .vue-treeselect__checkbox--indeterminate{
  border: green;
  background: green;
}
/deep/ .vue-treeselect .vue-treeselect__label--container:hover  .vue-treeselect__checkbox--unchecked{
  border: green;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值