vue+element 全国+指定地区 地区级联选择器

1.实现效果(全国禁选,指定地区可选)

2. 思路(级联选择器无法直接添加禁用,只能子地区数据里添加disabled=true)

1.单选组

    <el-radio-group v-model="radio">
      <el-radio :label="1" @change="allCountryChangeHandle">全国</el-radio>
      <el-radio :label="2" @change="allCountryChangeHandle">指定地区</el-radio>
    </el-radio-group>

2. 全国----只给第一层数据

    指定地区---给三层数据

methods:{   
     init() {
      // 获取地区
      getRegionList(this.level).then(({ data }) => {
        let dataBuild = data
        if (this.showAllCountry) {
          dataBuild = [{
            d: '0',
            h: '全国',
            c: data
          }
          ]
        }
        // this.regionList = dataBuild
        // 获取三级地区数据
        this.regionListBase = dataBuild
        // console.log(data, 'data')

        // 将一级地区数据赋值给level1
        const level1 = data.map(item => {
          return { d: item.d, h: item.h }
        })
        // 给每一条以及地区数据里添加disbled=true
        level1.map((item) => {
          this.$set(item, 'disabled', true)
        })
        // console.log(level1)

        // 将处理好的level1 赋值
        this.regionListLevet1 = level1

        if (this.radio === 1) {
          //  当时全国时只赋值一级地区数据切禁用
          this.regionList = this.regionListLevet1
        } else {
          // 指定地区时赋值三级地区数据不禁用
          this.regionList = this.regionListBase
        }
      })
    }
}

3.单选组切换(使用element radio的事件change)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值