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; width: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;}