elementui级联选择器禁用部分选项

在这里插入图片描述
注意:他的禁用并不是直接 :disabled=“XXX”

<el-form-item label="所属经营单位" prop="institution">
          <el-cascader
            v-model="form.institution"
            :options="institutionList"
            label="name"
            :props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"></el-cascader>
        </el-form-item>

拿取树形列表,进行数据处理

/** 查询经办机构列表 */
    getInstitutionList() {
      this.loading = true;
      listInstitution().then(response => {
        this.institutionList = this.handleTree(response.data, "id", "parentId");
        console.log('aaa', this.institutionList)
        // 处理数据,然后重新赋值
        this.institutionList =  this.getDisableList(this.institutionList)
        console.log('bbb', this.institutionList)
        this.loading = false;
      });
    },

处理数据的方法

getDisableList(list) {
      list.forEach(item => {
        if (item.status === '2') {
          item.disabled = true; // 如果类型2,代表锁定状态
        }
        if (item.children) {
          this.getDisableList(item.children);
        }
      })
      return list;
      console.log('aa', list)
    }

处理数据的方法改进,判断有无children

// 处理返回数据,给status等于1的添加disabled=true属性
    addDisabledForStatus(arr) {
      let newArr = JSON.parse(JSON.stringify(arr));
      newArr.forEach((item) => {
        if (item.status === "1") {
          item.disabled = true;
        }
        // 有无children项
        if (item.children && item.children.length !== 0) {
          let newChildren = [];
          newChildren = this.addDisabledForStatus(item.children);
          item.children = newChildren;
        }
      });
      return newArr;
    },

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值