el-cascader只让选择第四级,如果不到第四级则禁用

文章讲述了如何在前端实现一个级联选择组件,确保用户只能选择到学校级别。关键在于通过后台接口获取数据后,对数据进行处理,禁用非学校的末级选项。使用的技术包括Vue的el-cascader组件,通过设置props和处理数据来达到目标效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、先看一下要实现的效果
在这里插入图片描述
我想选择学校,如果末级不是学校则禁用,,实现只能选择学校
2、后台接口返回的数据格式
在这里插入图片描述
3、前端实现代码,因为区/县是一定存在的,只需判断他是否有子级并且层级为4,这个可根据你的后台返回数据进行适当调整

        <el-cascader
            v-model="form.deptId"
            :options="schoolIdOptions"
            :props="schoolIdProps"
            :style="{ width: '100%' }"
            placeholder="请选择学校"
            @change="schoolChange"
          ></el-cascader>
          
		schoolIdProps: {
        multiple: false,
        value: "id",
        label: "name",
        emitPath: false,//这个可以直接返回选中的值,不会返回数组,非常好用
        // checkStrictly: true // 可以选择任意一级
      },

// 获取学校树
    getActiveTree() {
      getActiveTree(1).then((response) => {
        let resDate = response.data;
        // 限制只能添加4级分类
        this.setDisable(4, resDate);
        //schoolIdOptions 是我层级联动绑定的值
        this.schoolIdOptions = resDate;
      });
    },
    
    /**
     * level: 当前层级
     * data: 当前层级的数据
     */
    setDisable(level, data) {
      let _this = this;
      data.forEach((v) => {
      //此处判断可根据你后台返回的数据类型适当变换,原理就是将不符合条件的项给禁掉
        if (!v.children && v.level == level) {
          v.disabled = true;
        } else {
          if (!v.children) {
            return;
          } else {
            _this.setDisable(level, v.children);
          }
        }
      });
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值