1.以Element 2.14.1 版本为例子(旧版指的是2.14.1之前的版本)
2.change-on-select (是否选择任意一级的选项) 旧版 此属性已取消
3.新版本属性为 checkStrictly 默认为false 是否严格的遵守父子节点不互相关联
:props="{ expandTrigger: 'hover' , checkStrictly: true}"
4.这时候会出现俩个问题 (1.点击一级分类前面小圆点,弹框并不会立即关闭,2.label标题点击不可选择)
5.解决4.1选择一级标题不关闭弹窗问题
el-cascader 有@change数据改变事件
<el-cascader ref="refHandle" @change="parentCateChanged" > </el-cascader>
方法中dropDownVisible 改为 false 即可
parentCateChanged () { this.$refs.refHandle.dropDownVisible = false }
6.解决4.2 label标题也可选择问题
办法1:定时器 不推荐 消耗性能
mounted () { // 点击文字的时候也自动选择radio标签 不推荐此用法 setInterval(function () { document.querySelectorAll('.el-cascader-node__label').forEach(el => { el.onclick = function () { if (this.previousElementSibling) this.previousElementSibling.click() } }) }, 1000) }
办法2:css将小圆圈透明,之后定位在文字之上 (相对推荐,但少了小圆点)
.el-cascader-panel .el-radio{ position:absolute; z-index:10; padding:0 10px; 132px; height:34px; line-height:34px; } .el-cascader-panel .el-radio__input{ visibility:hidden; } .el-cascader-panel .el-input-node__postfix{ top:10px;
目前的解决办法,都不太理想,如果各位大神有更好的解决办法,欢迎评论留言
7. 如果数据项过多,就会出现如下情况
解决办法:规定框的高度即可
.el-cascader-panel{height: 200px;}