el-cascader 级联选择器实现第一列固定且不让选中

226 阅读1分钟

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

实现: 通过设置css样式来隐藏

// 设置popper-class的值为cascaderParent 
<el-cascader v-model="form.parentUuid" 
:options="optionsData" 
clearable 
filterable 
:props="{ checkStrictly: true}" //设置为true,则可以使每一级都可以选中,如果不写默认是只能选择叶子节点 
:disabled="isDisabled" 
placeholder="请选择" 
popper-class="cascaderParent" //必须设置当前的级联器的类名,以防止影响其他的级联器 style="width: 100%" >
</el-cascader> 


// css 样式 
<style> 
//样式必须写在根文件中,如果使用less,不可以放在scoped中,否则不生效。 
/ 第一列不可被选择 
// 注意:先找我们指定的类名为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>

注意:对级联器设置样式:设置popperClass,就可以对里面的样式进行修改了

当用/deep/想像往常一样修改,会发现不生效,原因在于这个组件和div#app同级了,如果去掉scoped,是最简单的方法,当然,为了不影响全局我们当然不能这么做。设置popperClass,就可以对里面的样式进行修改了