element-ui+vue实现懒加载的树形图选择器

在,开发的过程中,有这样一个需求
需要选择资源,并且是多选,但是资源是放在文件夹里的,并且未知层数,因此需要树状图展示,并且树状图的选中的节点需要展示在select选择器的input框内
实现效果如下
在这里插入图片描述
代码:

<el-form-item id="specialItem" label="资源" class="resource-select">
   <el-select
     v-model="nodeForm.resourceList"
     multiple
     filterable
     placeholder="请选择资源"
     :disabled="disabled"
     popper-class="node-setting-popper"
   >
     <el-tree
       class="select-tree"
       :props="props"
       :load="loadNode"
       lazy
     >
       <span slot-scope="{ node, data }" class="custom-tree-node-select">
         <el-option :value="node.label"><span>{{ node.label }}</span></el-option>
       </span>
     </el-tree>
   </el-select>
 </el-form-item>
data() {
    return {
      props: {
        label: 'name',
        children: 'zones',
        isLeaf: 'leaf'
      }
    }
  },
methods: {
    loadNode(node, resolve) {
      if (node.level === 0) {
        return resolve([{ name: 'region' }])
      }
      if (node.level > 1) return resolve([])

      setTimeout(() => {
        const data = [{
          name: 'leaf',
          leaf: true
        }, {
          name: 'zone'
        }]

        resolve(data)
      }, 500)
    }
}

注意这里的样式:检查元素可以发现,select下拉选择的样式是在整个body外面的,因此不能写在scoped内,不生效

<style lang='scss'>
.custom-tree-node-select{
  width: 100% !important;
}
.select-tree {
  .el-select-dropdown__item.selected{
     background-color: transparent !important;
     color: #e8834d !important;
  }
  .el-select-dropdown__item.hover{
    background-color: transparent !important;
  }
}
</style>

点击树状图的节点,即可以实现选中和取消选中

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值