問(wèn)題
在form表單中使用cascader,某些需求下會(huì)將整個(gè)表單disabled蔼紧,如果此時(shí)點(diǎn)擊了cascader婆硬,它會(huì)disabled,但彈出框不會(huì)消失奸例。
查看文檔
給cascader設(shè)置上ref
調(diào)用
// 清空選中的節(jié)點(diǎn)
this.$refs.cascader.$refs.panel.clearCheckedNodes();
// 設(shè)置為空可以讓節(jié)點(diǎn)不高亮顯示
this.$refs.cascader.$refs.panel.activePath = [];
上面的結(jié)果若不能沒(méi)有解決問(wèn)題彬犯。可能clearCheckedNodes有bug查吊,去看看elementui原碼谐区。
找到原碼并應(yīng)用成功了:
let that = this;
if (that.$refs.cascader){
that.$refs.cascader.$refs.panel.clearCheckedNodes()
that.$refs.cascader.$refs.panel.activePath = []
that.$refs.cascader.$refs.panel.scrollIntoView()
that.$refs.cascader.$refs.input.$refs.input.setAttribute('aria-expanded', false)
that.$refs.cascader.$emit('visible-change', false)
that.$refs.cascader.$refs.panel.$emit('visible-change', false)
that.$refs.cascader.$refs.panel.$emit('close')
}