记: vue element Cascader 级联选择器 子级全选则传父级, 子级未全选则传子级

在思否一位大佬的评论中学到的, 但是忘记在哪个帖子了…

需求: 级联选择器中 子级全选则传父级key, 子级未全选则传子级key
element Cascader 级联选择器 中有一个方法: getCheckedNodes()

let CheckedNodes = this.$refs.region.getCheckedNodes()
CheckedNodes = CheckedNodes.filter(option => !(option.parent && option.parent.checked))

其中 this.$refs.region 是对应赋予 Cascader 组件的 ref

通过 getCheckedNodes() 方法, 可以获取所有已勾选的节点

已知条件: 当父级勾选, 子级必定全选, 子级未全选, 则父级为不勾选状态

那么后面的 filter 方法中过滤条件的是 : !(父级存在 且 父级的勾选状态为true), 取反.

个人理解: 当父级不存在或父级的勾选状态为false时, 保留该节点.

效果图:
在这里插入图片描述
一直没注意看消息, 现补充上当时的代码 ( 2023.03.16 )

            <!-- 地区 城市 -->
            <el-form-item class="cities local">
              <el-cascader-panel ref="region" size="large" :options="citiesOptions"
                :props="citiesProps" v-model="checkedCities" @change="handleCheckedCitiesChange">
              </el-cascader-panel>
              <div class="citiesRight">
                <div class="citiesSelected">
                  <span>已选</span>
                  <div type="text" plain class="citiesEmpty" @click="emptyCitiesBtn">清空</div>
                </div>
                <div class="addCities">
                  <div class="addCitiesList" v-for="(item, index) in citiesList" :key="index.id">
                   
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值