element-ui 中el-select 嵌套 tree树形控件(转帖)

参考位置:https://blog.csdn.net/weixin_45140661/article/details/90898558

主要代码:

控件部分

<template>
  <div>
    <el-form ref="form" :model="form" label-width="130px">
      <el-form-item label="xx:">
        <el-select v-model="form.selects" @change="selectChange" style="width: 100%;" popper-class="treeOption" multiple  placeholder="xx">
          <el-option :value="mineStatusValue" style="height: auto;">
            <el-tree ref="tree"
                     node-key="ORGID" // 设置这才能设值
                     :data="options"
                     :props="optionProps"
                     show-checkbox
                     @check="handleCheckChange"></el-tree>
          </el-option>
        </el-select>
      </el-form-item>
    </el-form>
  </div>
</template>

逻辑部分:

methods:{
    handleCheckChange(){
      let res = this.$refs.tree.getCheckedNodes(true, true) // 设置两个true 只选中勾选部分的子节点,不考虑父节点
      let arrLabel = []
      let arr = []
      let temp =[]
      res.forEach(item => {
        arrLabel.push(item.ORGNAME); // lable值
        arr.push(item); // lable和其他值的对象集合
      });
      this.mineStatusValue = arr;
      this.form.selects = arrLabel
      this.mineStatusValue.forEach(element => {
        temp.push('.' + element + '.')
      });
      this.$emit('allocationCenterCall', temp.toString())
    },
    selectChange(e){
      console.log(e,'ee')
      var arrNew = [];
      var dataLength = this.mineStatusValue.length;
      var eleng = e.length;
      for(let i = 0; i< dataLength ;i++){
        for(let j = 0; j < eleng; j++){
          if(e[j] === this.mineStatusValue[i].ORGNAME){
            arrNew.push(this.mineStatusValue[i])
          }
        }
      }
      this.$refs.tree.setCheckedNodes(arrNew);//设置勾选的值 注意:node-key值
    }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风细雨_林木木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值