el-cascader 最后一级不显示出来

1、业务背景

业务需要做一个父级查询,父级查询的级联组件不显示最后一级,其他层级均显示

2、解决办法

1、页面设计见上文

TypeError: Cannot read properties of null (reading ‘level‘)

2、代码实现

// 获取父子层级列表
 async parentSelected  (val) {
   this.loading = true
   try {
     const data = await GetXXXList({
       XXX: val,
     })
     const tree = []
     const childrenOf = {}
     ++this.isChangeSelectKeyNum
     data.forEach((item) => {
       const newItem = { ...item }
       const { PId } = newItem
       childrenOf[newItem.Id] = childrenOf[newItem.Id] || []
       newItem.children = childrenOf[newItem.Id]
       if (PId) {
         childrenOf[PId] = childrenOf[PId] || []
         if (newItem.children.length > 0) {
           childrenOf[PId].push({ value: newItem.Id, label: newItem.Name, children: newItem.children })
         } else {
           childrenOf[PId].push({ value: newItem.Id, label: newItem.Name })
         }
       } else {
         tree.push({ value: newItem.Id, label: newItem.Name, children: newItem.children })
       }
     })
     this.options = tree
   } catch (error) {
     this.options = []
   }
   this.loading = false
 },

通过对options的数据源处理,将数据源这棵“树”构造成不含最后一级,只有其所有父级,依次需求得以实现。

若本文有帮助到阅读本文的同学,欢迎点赞、关注、收藏,互相学习交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!对于el-cascader组件的最后一级加入输入框,您可以通过以下步骤实现: 1. 首先,确保您已经安装了element-ui库。如果没有安装,可以通过npm或者yarn进行安装。 2. 在需要使用el-cascader的页面中,引入el-cascader和el-input组件: ```javascript import { Cascader, Input } from 'element-ui'; ``` 3. 在页面的template中,使用el-cascader组件,并监听最后一级选中的事件: ```html <template> <el-cascader v-model="selectedOptions" :options="options" @change="handleCascaderChange" ></el-cascader> <el-input v-model="inputValue" v-if="showInput"></el-input> </template> ``` 4. 在页面的script中,定义相应的数据和方法: ```javascript export default { data() { return { selectedOptions: [], // 选中的级联选项 options: [ // 级联选项的数据 { value: 'option1', label: 'Option 1', children: [ { value: 'option1-1', label: 'Option 1-1', children: [ { value: 'option1-1-1', label: 'Option 1-1-1', }, ], }, ], }, ], showInput: false, // 是否显示输入框 inputValue: '', // 输入框的值 }; }, methods: { handleCascaderChange(value) { if (value.length > 0 && value[value.length - 1].includes('option1-1-1')) { this.showInput = true; } else { this.showInput = false; } }, }, }; ``` 在上述代码中,我们通过监听el-cascader的change事件,判断最后一级是否选中了'Option 1-1-1',如果是,则显示输入框;否则隐藏输入框。 这样,您就可以在el-cascader的最后一级加入输入框了。希望对您有所帮助!如果有任何问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GoodTimeGGB

鼓励一下!

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

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

打赏作者

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

抵扣说明:

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

余额充值