element ui的Cascader级联选择器选择任意一级选项时实现指定列不可选

5 篇文章 0 订阅
4 篇文章 0 订阅

element ui的Cascader级联选择器选择任意一级选项时实现某一指定列或者第一列不可被选中

应用场景

在使用element的Cascader级联选择器选择任意一级选项模式时,需要实现第一列是固定的,不让选中其他可以选中

问题
在这里插入图片描述

最终目标
在这里插入图片描述

解决方案

解决思路:如果不让第一列选中,那么将级联面板的第一列下面的选择器按钮禁用或者隐藏掉即可,同理指定某一列也是如此
但是如果页面上同时出现多个级联选择器,直接将面板下面的某一列选择按钮隐藏,那么会导致当前页所有的级联面板某一列的选择器都会被隐藏,显然我们只想要隐藏特定的某一个选择器,在这里我们需要用到Cascader的 popper-class 属性来指定某一个选择器
popper-class:自定义浮层类名

// 设置popper-class的值为cascaderParent
<el-cascader
  v-model="form.parentUuid"
  :options="optionsData"
  clearable
  filterable
  :props="propsId"
  :disabled="isDisabled"
  placeholder="请选择"
  popper-class="cascaderParent"
  style="width: 100%"
></el-cascader>

// css 样式
<style>
// 第一列不可被选择
// 注意:先找我们指定的类名为cascaderParent的面板
.cascaderParent .el-cascader-panel .el-scrollbar:first-child .el-radio {
  display: none;
}

// 指定的第n列不可被选择
.cascaderParent .el-cascader-panel .el-scrollbar:nth-child(n+1) .el-radio {
  display: none;
}
</style>

以上是我个人的解决方案,希望对大家有所帮助!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
element-ui 中的 Cascader 级联选择器需要一个级联的数据源,这个数据源可以是一个普通的数组或者是一个包含子节点的树形结构。如果数据源是一个普通的数组,需要通过递归处理将其转化为树形结构。 以下是一个示例代码,将普通的数组转化为树形结构: ```js function convertToTree(data) { let result = [] let map = {} // 先将所有数据按照 id 存入一个 map 中 for (let i = 0; i < data.length; i++) { map[data[i].id] = data[i] } // 将所有数据遍历一遍,如果当前数据有 parentId,将其作为父节点的子节点存入父节点的 children 中 for (let i = 0; i < data.length; i++) { let item = data[i] if (item.parentId) { let parent = map[item.parentId] if (parent) { if (!parent.children) { parent.children = [] } parent.children.push(item) } } else { result.push(item) } } return result } ``` 在上述代码中,首先将所有数据按照 id 存入一个 map 中,然后遍历所有数据,如果当前数据有 parentId,就将其作为父节点的子节点存入父节点的 children 中,最后返回处理后的树形结构。 使用示例: ```js let data = [ { id: 1, name: '选项1' }, { id: 2, parentId: 1, name: '选项1-1' }, { id: 3, parentId: 1, name: '选项1-2' }, { id: 4, name: '选项2' }, { id: 5, parentId: 4, name: '选项2-1' }, { id: 6, parentId: 4, name: '选项2-2' } ] let treeData = convertToTree(data) console.log(treeData) ``` 输出结果: ```js [ { "id": 1, "name": "选项1", "children": [ { "id": 2, "parentId": 1, "name": "选项1-1" }, { "id": 3, "parentId": 1, "name": "选项1-2" } ] }, { "id": 4, "name": "选项2", "children": [ { "id": 5, "parentId": 4, "name": "选项2-1" }, { "id": 6, "parentId": 4, "name": "选项2-2" } ] } ] ``` 将转换后的数据源作为 Cascader 的 options 属性即可完成级联选择器的数据递归处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值