fix(tree-select): After deleting the last child node of the parent node, another child node is selected. #3508 #3586 (#4047)

This commit is contained in:
chencc 2021-05-09 20:47:52 +08:00 committed by GitHub
parent b7783aeb1d
commit 5917df205c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -874,12 +874,24 @@ const Select = defineComponent({
},
onSearchInputKeyDown(event) {
const { _searchValue: searchValue, _valueList: valueList } = this.$data;
const { _searchValue: searchValue, _valueList: valueList, _valueEntities: valueEntities } = this.$data;
const { keyCode } = event;
if (KeyCode.BACKSPACE === keyCode && this.isMultiple() && !searchValue && valueList.length) {
const lastValue = valueList[valueList.length - 1].value;
let lastValue = valueList[valueList.length - 1].value;
const { treeCheckStrictly } = this.$props;
if(!treeCheckStrictly) {
let cur = valueEntities[lastValue];
while(cur) {
if(valueList.some(j => j.value === cur.value)) {
lastValue = cur.value;
cur = cur.parent;
}else{
cur = null
}
}
}
this.onMultipleSelectorRemove(event, lastValue);
}
},